当前位置:首页 > Matlab - 第二章
syms a b c d W
[V,D]=eig([a b;c d]) [RVD,W]=subexpr([V;D],W) V = [ -(1/2*d-1/2*a-1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2))/c, -(1/2*d-1/2*a+1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2))/c] [ 1, 1] D = [ 1/2*d+1/2*a+1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2), 0] [ 0, 1/2*d+1/2*a-1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2)] RVD =
[ -(1/2*d-1/2*a-1/2*W)/c, -(1/2*d-1/2*a+1/2*W)/c] [ 1, 1] [ 1/2*d+1/2*a+1/2*W, 0] [ 0, 1/2*d+1/2*a-1/2*W] W =
(d^2-2*a*d+a^2+4*b*c)^(1/2)
二 通用置换指令
【例2.2-4】用简单算例演示subs的置换规则。 (1)
syms a x;f=a*sin(x)+5
f =
a*sin(x)+5
(2)
f1=subs(f,'sin(x)',sym('y'))
class(f1) f1 = a*y+5 ans = sym
(3)
f2=subs(f,{a,x},{2,sym('pi/3')})
class(f2) f2 =
3^(1/2)+5 ans = sym
(4)
f3=subs(f,{a,x},{2,pi/3})
class(f3) f3 =
6.7321 ans = double
(5)
f4=subs(subs(f,a,2),x,0:pi/6:pi) class(f4) f4 =
5.0000 6.0000 6.7321 7.0000 6.7321 6.0000 5.0000 ans = double
5
%<2>
%<3>
%<4>
%<5>
(6)
f5=subs(f,{a,x},{0:6,0:pi/6:pi}) %<6> class(f5) f5 =
5.0000 5.5000 6.7321 8.0000 8.4641 7.5000 5.0000 ans = double
2.3
符号微积分
2.3.1
极限和导数的符号计算
【例2.3-1】试求lim?x????1?1?kxx??。
syms x k
Lim_f=limit((1-1/x)^(k*x),x,inf) Lim_f = exp(-k)
【例2.3-2】求f???at3?dfd2fd2tcosxlnx?求f?dx, dt2,dtdx。
?syms a t x;f=[a,t^3;t*cos(x), log(x)]; df=diff(f) dfdt2=diff(f,t,2) dfdxdt=diff(diff(f,x),t) df =
[ 0, 0] [ -t*sin(x), 1/x] dfdt2 =
[ 0, 6*t] [ 0, 0] dfdxdt =
[ 0, 0] [ -sin(x), 0]
??f?xx1e2??1??x1【例2.3-3】求f(x?1,x2)??x?2??f2??的Jacobian矩阵?cos(x)sin(x??x?112)????f3???x1syms x1 x2;f=[x1*exp(x2);x2;cos(x1)*sin(x2)];
v=[x1 x2];fjac=jacobian(f,v) fjac =
[ exp(x2), x1*exp(x2)] [ 0, 1] [ -sin(x1)*sin(x2), cos(x1)*cos(x2)]
【例2.3-4】f(x)?sinx,求fx?(0),fx?(x)。 (1)
clear
6
?f1??x??f2?2??x?。 ?f23??x?2??syms x
syms d positive
f_p=sin(x); % df_p=limit((subs(f_p,x,x+d)-f_p)/d,d,0) % <4>
df_p0=limit((subs(f_p,x,d)-subs(f_p,x,0))/d,d,0) % <5> df_p = cos(x) df_p0 = 1
(2)
f_n=sin(-x); df_n=limit((f_n-subs(f_n,x,x-d))/d,d,0) % <7> df_n0=limit((subs(f_n,x,0)-subs(f_n,x,-d))/d,d,0) %<8> df_n = -cos(x) df_n0 = -1
(3)
f=sin(abs(x));
dfdx=diff(f,x) dfdx =
cos(abs(x))*abs(1,x)
% <10>
(4)
xn=-3/2*pi:pi/50:0;xp=0:pi/50:3/2*pi;xnp=[xn,xp(2:end)]; hold on
plot(xnp,subs(f,x,xnp),'k','LineWidth',2.5) % <13> plot(xn,subs(df_n,x,xn),'--r','LineWidth',2.5) plot(xp,subs(df_p,x,xp),':r','LineWidth',2.5)
legend(char(f),char(df_n),char(df_p),'Location','NorthEast')% <16> grid on
xlabel('x') hold off
图 2.3-1 函数及其导函数
【例2.3-5】设cos(x?siny)?siny,求(1)
clear
dy。 dx 7
syms x
g=sym('cos(x+sin(y(x)))=sin(y(x))') % <3> dgdx=diff(g,x) % <4> g =
cos(x+sin(y(x)))=sin(y(x)) dgdx =
-sin(x+sin(y(x)))*(1+cos(y(x))*diff(y(x),x)) = cos(y(x))*diff(y(x),x)
(2)
disp(maple('isolate',dgdx,diff('y(x)',x))) % <5> diff(y(x),x) = sin(x+sin(y(x)))/(-sin(x+sin(y(x)))*cos(y(x))-cos(y(x)))
【例2.3-6】求f(x)?xex在x?0处展开的8阶Maclaurin级数。
syms x
r=taylor(x*exp(x),9,x,0) %忽略9阶及9阶以上小量的展开 r =
x+x^2+1/2*x^3+1/6*x^4+1/24*x^5+1/120*x^6+1/720*x^7+1/5040*x^8
【例2.3-7】求sin(x2?y)在x?0,y?0处的截断8阶小量的Taylor展开近似。
TL1=maple('mtaylor(sin(x^2+y),[x=0,y=0],8)') class(TL1) TL1 =
y+x^2-1/6*y^3-1/2*x^2*y^2+1/120*y^5-1/2*x^4*y+1/24*x^2*y^4-1/6*x^6-1/5040*y^7+1/12*x^4*y^3 ans = char
2.3.2 序列/级数的符号求和
t?13??1(?1)k?,【例2.3-8】求?[t,k],???。 2(2k?1)kk?1?t?0?syms k t;f1=[t k^3];f2=[1/(2*k-1)^2,(-1)^k/k];
s1=simple(symsum(f1)) s2=simple(symsum(f2,1,inf)) s1 =
[ 1/2*t*(t-1), k^3*t] s2 =
[ 1/8*pi^2, -log(2)]
2.3.3
【例2.3-9】求
符号积分
11?x?xxdx。
clear syms x
f=sqrt((1+x)/x)/x s=int(f,x)
s=simple(simple(s)) f =
((1+x)/x)^(1/2)/x s =
((1+x)/x)^(1/2)/x*(-2*(x^2+x)^(3/2)+2*(x^2+x)^(1/2)*x^2+log(1/2+x+(x^2+x)^(1/2))*x^2)/((1+x)*x)^(1/2) s =
8
共分享92篇相关文档