第八讲_MATLAB符号计算

上传人:人*** 文档编号:585371138 上传时间:2024-09-02 格式:PPT 页数:43 大小:101KB
返回 下载 相关 举报
第八讲_MATLAB符号计算_第1页
第1页 / 共43页
第八讲_MATLAB符号计算_第2页
第2页 / 共43页
第八讲_MATLAB符号计算_第3页
第3页 / 共43页
第八讲_MATLAB符号计算_第4页
第4页 / 共43页
第八讲_MATLAB符号计算_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第八讲_MATLAB符号计算》由会员分享,可在线阅读,更多相关《第八讲_MATLAB符号计算(43页珍藏版)》请在金锄头文库上搜索。

1、第八讲第八讲 MATLABMATLAB符号计算符号计算8.1 8.1 符号计算基础符号计算基础8.2 8.2 符号导数及其应用符号导数及其应用8.3 8.3 符号积分符号积分8.4 8.4 级数级数8.5 8.5 代数方程的符号求解代数方程的符号求解8.6 8.6 常微分方程的符号求解常微分方程的符号求解8.1 8.1 符号计算基础符号计算基础MATLAB中中符号计算函数是数值计算函数的重载,符号计算函数是数值计算函数的重载,符号计算工具箱采用的函数和数值计算的函数有一部符号计算工具箱采用的函数和数值计算的函数有一部分同名,为得到准确的在线帮助,应该用分同名,为得到准确的在线帮助,应该用hel

2、p sym/函数名函数名例如:例如: help sym/inv8.1.1 8.1.1 符号对象符号对象1. 建立符号变量和符号常数建立符号变量和符号常数(1)sym函数函数 sym函数用来建立单个符号变量和符号表达式,例如,函数用来建立单个符号变量和符号表达式,例如,a=sym(a) 建立符号变量建立符号变量a,此后,用户可以在表达式此后,用户可以在表达式中使用变量中使用变量a进行各种运算。进行各种运算。 rho = sym(1+sqrt(5)/2) f = rho2-rho-1rho = (1+sqrt(5)/2 f = (1/2+1/2*5(1/2)2-3/2-1/2*5(1/2)例例8.

3、1 考察符号变量和数值变量的差别。考察符号变量和数值变量的差别。 a=sym(a); b=sym(b);c=sym(c); d=sym(d); %定义定义4个符号变量个符号变量w=10; x=5; y=-8; z=11; %定义定义4个数值变量个数值变量A=a, b; c, d %建立符号矩阵建立符号矩阵AB=w, x; y, z %建立数值矩阵建立数值矩阵Bdet(A) %计算符号矩阵计算符号矩阵A的行列式的行列式det(B) %计算数值矩阵计算数值矩阵B的行列式的行列式A = a, b c, d B = 10 5 -8 11ans = a*d-b*c ans = 150例例8.2 比较符号

4、常数与数值在代数运算时的差别。比较符号常数与数值在代数运算时的差别。pi1=sym(pi); k1=sym(8);k2=sym(2); k3=sym(3); % 定义符号变量定义符号变量pi2=pi; r1=8; r2=2; r3=3; % 定义数值变量定义数值变量sin(pi1/3) % 计算符号表达式值计算符号表达式值 sin(pi2/3) % 计算数值表达式值计算数值表达式值sqrt(k1) % 计算符号表达式值计算符号表达式值sqrt(r1) % 计算数值表达式值计算数值表达式值sqrt(k3+sqrt(k2) % 计算符号表达式值计算符号表达式值sqrt(r3+sqrt(r2) %

5、计算数值表达式值计算数值表达式值ans = 1/2*3(1/2)ans = 0.8660ans = 2*2(1/2)ans = 2.8284ans =(3+2(1/2)(1/2)ans = 2.1010(2)syms函数函数syms函数的一般调用格式为:函数的一般调用格式为:syms var1 var2 varn 函数定义符号变量函数定义符号变量var1,var2,varn等。用这等。用这种格式定义符号变量时种格式定义符号变量时不要不要在变量名上加字符在变量名上加字符分界符分界符(),变量间用空格而,变量间用空格而不要不要用逗号分隔。用逗号分隔。 syms a b c dv符号计算的结果是符号

6、或符号表达式,如果其符号计算的结果是符号或符号表达式,如果其中的符号要用具体数值代替,可以用中的符号要用具体数值代替,可以用subs函数,函数,例如将例如将A中的符号中的符号a以数值以数值5代替,可以用代替,可以用B=subs(A,a,5)clear;clear;symssyms a b c d; a b c d;A1=a,b;c,d;A1=a,b;c,d;A2=det(A1);A2=det(A1);A3=subs(A2,a,1);A3=subs(A2,a,1);A3=subs(A3,b,2);A3=subs(A3,b,2);A3=subs(A3,c,3);A3=subs(A3,c,3);A3

7、=subs(A3,d,4) 例例8.3 计算行列式计算行列式 ,当,当 时计算时计算A的的数值结果。数值结果。A3 = -22. 建立符号表达式建立符号表达式例例8.4 用两种方法建立符号表达式用两种方法建立符号表达式。在在MATLAB窗口,输入命令:窗口,输入命令:U=sym(3*x2+5*y+2*x*y+6) %定义符号表达式定义符号表达式Usyms x y; %建立符号变量建立符号变量x、yV=3*x2+5*y+2*x*y+6 %定义符号表达式定义符号表达式V2*U-V+6 %求符号表达式的值求符号表达式的值U = 3*x2+5*y+2*x*y+6V = 3*x2+5*y+2*x*y+6

8、ans = 3*x2+5*y+2*x*y+12例例8.5 计算计算3阶范得蒙矩阵行列式的值。设阶范得蒙矩阵行列式的值。设A是一是一个由符号变量个由符号变量a,b,c确定的范得蒙矩阵确定的范得蒙矩阵。syms a b cU=a,b,cA=1,1,1;U;U.2 %建立范得蒙符号矩阵建立范得蒙符号矩阵det(A) %计算计算A的行列式值的行列式值U = a, b, cA = 1, 1, 1 a, b, c a2, b2, c2ans = b*c2-c*b2-a*c2+a*b2+a2*c-a2*b例例8.6 建立建立x,y的一般二元函数。的一般二元函数。在在MATLAB命令窗口,输入命令:命令窗口,

9、输入命令:syms x y;f=sym(f(x,y)f = f(x,y)8.1.2 8.1.2 基本的符号运算基本的符号运算1. 符号表达式运算符号表达式运算(1) (1) 符号表达式的四则运算符号表达式的四则运算例例8.7 符号表达式的四则运算示例。符号表达式的四则运算示例。在在 MATLAB命令窗口,输入命令:命令窗口,输入命令:syms x y z; f=2*x+x2*x-5*x+x3 %符号表达式的结果为最简形式符号表达式的结果为最简形式f=2*x/(5*x) %符号表达式的结果为最简形式符号表达式的结果为最简形式f=(x+y)*(x-y) %符号表达式的结果不是符号表达式的结果不是x

10、2-y2,而是而是 %(x+y)*(x-y)f =-3*x+2*x3f =2/5f =(x+y)*(x-y)(2)(2)因式分解与展开因式分解与展开factor(S) 对对S分解因式,分解因式,S是符号表达式或符号是符号表达式或符号矩阵。矩阵。expand(S) 对对S进行展开,进行展开,S是符号表达式或符号是符号表达式或符号矩阵。矩阵。collect(S) 对对S合并同类项,合并同类项,S是符号表达式或符是符号表达式或符号矩阵。号矩阵。collect(S,v) 对对S按变量按变量v合并同类项,合并同类项,S是符号表是符号表达式或符号矩阵。达式或符号矩阵。例例8.8 对符号矩阵对符号矩阵A的每

11、个元素分解因式。的每个元素分解因式。命令如下:syms a b x y;A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4, 3*x*y-5*x2; 4, a3-b3;factor(A) %对对A的每个元素分解因式的每个元素分解因式A = 2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4, 3*x*y-5*x2 4, a3-b3ans = 2*a*b3*x2*(5*b3*x2-2*b*x+a), -x*(-3*y+5*x) 4, (a-b)*(a2+a*b+b2)例例8.9 计算表达式计算表达式S的值。的值。syms x y;s=(-7*x2-8*y2)*(-x2

12、+3*y2);expand(s) %对对s展开展开collect(s,x) %对对s按变量按变量x合并同类项合并同类项(无同类项无同类项)factor(ans) % 对对ans分解因式分解因式expand(cos(x+y)ans =7*x4-13*x2*y2-24*y4 ans =7*x4-13*x2*y2-24*y4 ans =(8*y2+7*x2)*(x2-3*y2)ans =cos(x)*cos(y)-sin(x)*sin(y)(3)(3)表达式化简表达式化简MATLAB提供的对符号表达式化简的函数有:提供的对符号表达式化简的函数有:simplify(S) 应用函数规则对应用函数规则对S

13、进行化简。进行化简。simple(S) 调用调用MATLAB的其他函数对表达式进行的其他函数对表达式进行综合化简,并显示化简过程。综合化简,并显示化简过程。例:例:syms x y;s=(x2+y2)2+(x2-y2)2;simple(s) %MATLAB自动调用多种函数对自动调用多种函数对s进行进行%化简,并显化简,并显示每步结果示每步结果ans = 2*x4+2*y42. 符号矩阵运算符号矩阵运算transpose(S) 返回返回S矩阵的转置矩阵。矩阵的转置矩阵。8.1.3 8.1.3 符号表达式中变量的确定符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。中的符号可以

14、表示符号变量和符号常数。findsym可可以帮助用户查找一个符号表达式中的符号变量。以帮助用户查找一个符号表达式中的符号变量。该函数的调该函数的调用格式为:用格式为:findsym(S,n)函数返回符号表达式函数返回符号表达式S中的中的n个符号变量,若没有指定个符号变量,若没有指定n,则返则返回回S中的全部符号变量。中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确指定自变在求函数的极限、导数和积分时,如果用户没有明确指定自变量,量,MATLAB将按缺省原则确定主变量并对其进行相应微积将按缺省原则确定主变量并对其进行相应微积分运算。可用分运算。可用findsym(S,1)查找系统

15、的缺省变量,事实上,查找系统的缺省变量,事实上,MATLAB按离字符按离字符x最近原则确定缺省变量最近原则确定缺省变量。syms a x y z tfindsym(sin(pi*t) ans = t findsym(x+i*y-j*z) ans = x, y, zfindsym(a+y,1) returns y.8.2 8.2 符号导数及其应用符号导数及其应用8.2.1 8.2.1 函数的极限函数的极限limit函数的调用格式为:函数的调用格式为:limit(f,x,a)limit函数的另一种功能是求单边极限,其调用格函数的另一种功能是求单边极限,其调用格式为:式为:limit(f,x,a,r

16、ight) 或或 limit(f,x,a,left)数学表达式数学表达式命令格式命令格式limit(f)limit(f,x,a)或或limit(f,a) limit(f,x,a,left) limit(f,x,a,right)例例8.10 求极限。求极限。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:syms a m x;f=(x(1/m)-a(1/m)/(x-a);limit(f,x,a) %求极限求极限(1)f=(sin(a+x)-sin(a-x)/x;limit(f) %求极限求极限(2)limit(f,inf) %求求f函数在函数在x(包括包括+和和-) %处的极限处的极限l

17、imit(f,x,inf,left) %求极限求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right) %求极限求极限(4)8.2.2 8.2.2 符号函数求导及其应用符号函数求导及其应用MATLAB中的求导的函数为:中的求导的函数为:diff(f,x,n)diff 函数求函数函数求函数 f 对变量对变量 x 的的 n 阶导数阶导数。参数。参数x的的用法同求极限函数用法同求极限函数limit,可以缺省,缺省值与可以缺省,缺省值与limit相同,相同,n的缺省值是的缺省值是1。 例例8.11 求函数的导数。求函数的导数

18、。syms a b t x y z;f=sqrt(1+exp(x);diff(f) %求求(1)。未指定求导变量和阶数,按缺省规则处理。未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2) %求求(2)。求。求f 对对x的二阶导数的二阶导数diff(f,x,3) %求求(2)。求。求f 对对x的三阶导数的三阶导数f1=a*cos(t); f2=b*sin(t);diff(f2)/diff(f1) %求求(3)。按参数方程求导公式求。按参数方程求导公式求y对对x的导数的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f

19、1)3 %求求(3)。求。求y对对x %的二阶导数的二阶导数f=x*exp(y)/y2;diff(f,x) %求求(4)。z对对x的偏导数的偏导数diff(f,y) %求求(4)。z对对y的偏导数的偏导数f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z) %求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对x的偏导数的偏导数zy=-diff(f,y)/diff(f,z) %求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对y的偏导数的偏导数 ans = 1/2/(1+exp(x)(1/2)*exp(x) ans = -2*sin(x)-x*cos(x) an

20、s = -3*cos(x)+x*sin(x) ans = -b*cos(t)/a/sin(t) ans = -(a*sin(t)2*b+a*cos(t)2*b)/a3/sin(t)3 ans = exp(y)/y2 ans = x*exp(y)/y2-2*x*exp(y)/y3 zx = -x/z zy = -y/z例例8.12 在曲线在曲线y=x3+3x-2上哪一点的切线与直线上哪一点的切线与直线y=4x-1平行。平行。命令如下:命令如下:x=sym(x); y=x3+3*x-2; %定义曲线函数定义曲线函数f=diff(y); %对曲线求导数对曲线求导数g=f-4;solve(g) %求方

21、程求方程f-4=0的根,即求曲线的根,即求曲线%何处的导数为何处的导数为4ans = 1/3*3(1/2) -1/3*3(1/2)8.3 8.3 符号积分符号积分8.3.18.3.1不定积分不定积分在在MATLAB中,求不定积分的函数是中,求不定积分的函数是int,其调其调用格式为:用格式为:int(f,x)int 函数求函数函数求函数 f 对变量对变量 x 的不定积分的不定积分。参数。参数x可可以缺省,缺省原则与以缺省,缺省原则与diff函数相同。函数相同。例例8.13 求不定积分。求不定积分。x=sym(x);f=(3-x2)3;int(f) %求不定积分求不定积分(1)f=sqrt(x3

22、+x4);int(f) %求不定积分求不定积分(2)g=simple(ans) %调用调用simple函数对结果化简函数对结果化简ans = 27*x-1/7*x7+9/5*x5-9*x3ans = -1/48*(x3+x4)(1/2)*(-16*(x2+x)(3/2)+12*(x2+x)(1/2)*x+6*(x2+x)(1/2)-3*log(1/2+x+(x2+x)(1/2)/x/(x+1)*x)(1/2) g = 1/3*(x+1)*x)(1/2)*x2+1/12*(x+1)*x)(1/2)*x-1/8*(x+1)*x)(1/2)+1/16*log(1/2+x+(x+1)*x)(1/2)8

23、.3.2 8.3.2 符号函数的定积分符号函数的定积分定积分在实际工作中有广泛的应用。在定积分在实际工作中有广泛的应用。在MATLAB中,定中,定积分的计算使用函数:积分的计算使用函数:int(f,x,a,b)例例6.14 求定积分。求定积分。x=sym(x); t=sym(t);int(abs(1-x),1,2) %求定积分求定积分(1)f=1/(1+x2);int(f,-inf,inf) %求定积分求定积分(2)int(4*t*x, x, 2, sin(t) %求求定积分定积分(3)f=x3/(x-1)100;I=int(f, 2, 3) %求定积分求定积分(4)double(I) %将上

24、述符号结将上述符号结果转换为数值果转换为数值ans = 1/2ans = pi ans = 2*t*(sin(t)2-4) I = 97893129180187301565519001875382615 /1192978373971185320372138406360121344 ans = 0.0821例例8.15 求椭球的体积。求椭球的体积。命令如下:命令如下:syms a b c z;f=pi*a*b*(c2-z2)/c2;V=int(f,z,-c,c)V =4/3*pi*a*b*c例例8.16 轴的长度为轴的长度为10米,若该轴的线性密度计算公式是米,若该轴的线性密度计算公式是f(x)

25、=6+0.3x千克千克/米米(其中其中x为距轴的端点距离为距轴的端点距离),求轴,求轴的质量。的质量。(1)符号函数积分。在符号函数积分。在MATLAB命令窗口,输入命令:命令窗口,输入命令:sym x;f=6+0.3*x;m=int(f,0,10)(2)数值积分。数值积分。先建立一个函数文件先建立一个函数文件fx.m:function fx=fx(x)fx=6+0.3*x;再在再在MATLAB命令窗口,输入命令:命令窗口,输入命令:m=quad(fx,0,10,1e-6)例例8.17 求空间曲线求空间曲线c从点从点(0,0,0)到点到点(3,3,2)的的长度。求曲线长度。求曲线c的长度是曲线

26、一型的长度是曲线一型命令如下:命令如下:sym t;x=3*t; y=3*t2; z=2*t3;f=diff(x,y,z,t) %求求x,y,z对参数对参数t的导数的导数 g=sqrt(f*f) %计算一型积分公式中的根式部分计算一型积分公式中的根式部分l=int(g,t,0,1) %计算曲线计算曲线c的长度的长度f = 3, 6*t, 6*t2 g = 3*(1+4*t*conj(t)+4*t2*conj(t)2)(1/2) l = 58.3.3 8.3.3 积分变换积分变换1. 傅立叶傅立叶(Fourier)变换变换在在MATLAB中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:f

27、ourier(fx,x,t) 求函数求函数f(x)的傅立叶像函数的傅立叶像函数F(t)。ifourier(Fw,t,x) 求傅立叶像函数求傅立叶像函数F(t)的原函数的原函数f(x)。例:例:syms x t;y=abs(x)Ft=fourier(y,x,t) %求求y的傅立叶变换的傅立叶变换fx=ifourier(Ft,t,x) %求求Ft的傅立叶逆变换的傅立叶逆变换y =abs(x)Ft =-2/t2 fx =x*(2*heaviside(x)-1)2. 拉普拉斯拉普拉斯(Laplace)变换变换在在MATLAB中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:laplace(f

28、x,x,t) 求函数求函数f(x)的拉普拉斯像函数的拉普拉斯像函数F(t)。ilaplace(Fw,t,x) 求拉普拉斯像函数求拉普拉斯像函数F(t)的原函的原函数数f(x)。例例8.19 计算计算y=x2的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换.命令如下:命令如下:x=sym(x); y=x2;Ft=laplace(y,x,t) %对函数对函数y进行拉普拉斯变换进行拉普拉斯变换fx=ilaplace(Ft,t,x) %对函数对函数Ft进行拉普拉斯逆变换进行拉普拉斯逆变换Ft = 2/t3fx = x23. Z变换变换对数列对数列f(n)进行进行z变换的变换的MATLAB函数是:函数是

29、:ztrans(fn,n,z) 求求fn的的Z变换像函数变换像函数F(z)iztrans(Fz,z,n) 求求Fz的的z变换原函数变换原函数f(n)例例8.20 求数列求数列 fn=e-n的的Z变换及其逆变换。变换及其逆变换。命令如下:命令如下:syms n zfn=exp(-n);Fz=ztrans(fn,n,z) %求求fn的的Z变换变换f=iztrans(Fz,z,n) %求求Fz的逆的逆Z变换变换Fz =z/exp(-1)/(z/exp(-1)-1) f =exp(-1)n8.4 8.4 级数级数8.4.1 8.4.1 级数的符号求和级数的符号求和函数函数symsum用于对符号表达式求

30、和用于对符号表达式求和,调用格式为:调用格式为:symsum(a,n,n0,nn)对对表达式表达式a的的符号变量符号变量n从从n=n0到到n=nn求和求和例例7.22 求级数之和。求级数之和。命令如下:命令如下:n=sym(n);s1=symsum(1/n2,n,1,inf) %求求s1s2=symsum(-1)(n+1)/n,1,inf) %求求s2。未指定求和变量,未指定求和变量,缺省为缺省为ns3=symsum(n*xn,n,1,inf) %求求s3。此处的求和变量此处的求和变量n %不能省略。不能省略。s4=symsum(n2,1,100) %求求s4。计算有限级数的和计算有限级数的和

31、 8.4.2 8.4.2 函数的泰勒级数函数的泰勒级数MATLAB中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数taylor,其调其调用格式为:用格式为:taylor(f,x,a,k)将将函数函数f对对x在在x=a处处泰勒展开到泰勒展开到k-1项。项。例例7.23 求函数在指定点的泰勒展开式。求函数在指定点的泰勒展开式。命令如下:命令如下:x=sym(x);f1=(1+x+x2)/(1-x+x2);f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3);taylor(f1,x,5) %展开到展开到x的的4次幂时应选择次幂时应选择k=5ans =1+2*x+2*x2

32、-2*x4 例例8.24 将多项式表示成将多项式表示成x+1的幂的多项式。的幂的多项式。命令如下:命令如下:x=sym(x);p=1+3*x+5*x2-2*x3;f=taylor(p,x,-1,4)f =-8-13*x+11*(1+x)2-2*(1+x)38.5 8.5 代数方程的符号求解代数方程的符号求解求解方程组的函数是求解方程组的函数是solve,调用格式为:调用格式为:solve(eqn1,eqn2,eqnN,var1,var2,varN)例例7.28 解方程。解方程。命令如下:命令如下:x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x) %解方程解方程(1

33、)f=sym(x-(x3-4*x-7)(1/3)=1);x=solve(f) %解方程解方程(2)x=solve(2*sin(3*x-pi/4)=1) %解方程解方程(3) x=solve(x+x*exp(x)-10,x) %解方程解方程(4)。仅标出方程的左端。仅标出方程的左端例例8.29 求方程组的解。求方程组的解。x y=solve(1/x3+1/y3-28,1/x+1/y-4,x,y) %解方程组解方程组(1)x y=solve(x+y-98,x(1/3)+y(1/3)-2,x,y) %解方程组解方程组(2)Warning: Explicit solution could not be

34、 found. In C:MATLABR11toolboxsymbolicsolve.m at line 136x = empty sym y = 对方程组对方程组(2)MATLAB给出了无解的结论,显然错误,请看完全与给出了无解的结论,显然错误,请看完全与其同构的方程组其同构的方程组(3)。输入命令如下:。输入命令如下:u,v=solve(u3+v3-98,u+v-2,u,v) %解方程组解方程组(3)8.68.6常微分方程的符号求解常微分方程的符号求解MATLAB的符号运算工具箱中提供了功能强大的求解常微分方的符号运算工具箱中提供了功能强大的求解常微分方程的函数程的函数dsolve。该函数

35、的调用格式为:该函数的调用格式为:dsolve(eqn1,condition,var)该函数求解微分方程该函数求解微分方程eqn1在初值条件在初值条件condition下的特解。参数下的特解。参数var描述方程中的自变量符号,省略时按缺省原则处理,若描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件没有给出初值条件condition,则求方程的通解。则求方程的通解。dsolve在求微分方程组时的调用格式为:在求微分方程组时的调用格式为:dsolve(eqn1,eqn2,eqnN,condition1,conditionN,var1,varN)函数求解微分方程组函数求解微分方程组e

36、qn1、eqnN在初值条件在初值条件conditoion1、conditionN下的解,若不给出初值条件,则求方程组的下的解,若不给出初值条件,则求方程组的通解,通解,var1、varN给出求解变量。给出求解变量。例例8.30 求微分方程的通解。求微分方程的通解。命令如下:命令如下:y=dsolve(Dy-(x2+y2)/x2/2,x) %解解(1)y=dsolve(Dy*x2+2*x*y-exp(x),x) %解解(2)y=dsolve(Dy-x/y/sqrt(1-x2),x) %解解(3)y = x*(-2+log(x)+C1)/(log(x)+C1)y = (exp(x)+C1)/x2y

37、 = (-2*(1-x2)(1/2)+C1)(1/2) -(-2*(1-x2)(1/2)+C1)(1/2) 例例8.31 求微分方程的特解。求微分方程的特解。命令如下:命令如下:y=dsolve(Dy=2*x*y2,y(0)=1,x) %解解(1)y=dsolve(Dy-x2/(1+y2),y(2)=1,x) %解解(2)y =-1/(-1+x2) 例例8.32 用微分方程的数值解法和符号解法解方程,并对结果进行用微分方程的数值解法和符号解法解方程,并对结果进行比较。比较。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:y=dsolve(Dy+2*y/x-4*x,y(1)=2,x) %

38、用符号方法得到方程的解析解用符号方法得到方程的解析解为了求方程的数值解,需要按要求建立一个函数文件为了求方程的数值解,需要按要求建立一个函数文件fxyy.m:function f=fxyy(x,y)f=(4*x2-2*y)/x; %只能是只能是y=f(x,y)的形式,当不是这种形式时的形式,当不是这种形式时, 要变形。要变形。输入命令:输入命令: t,w=ode45(fxyy,1,2,2); %得到区间得到区间1,2中的数值解,以向中的数值解,以向量量t,w存储。存储。为了对两种结果进行比较,在同一个坐标系中作出两种结果的图形。输入命令:为了对两种结果进行比较,在同一个坐标系中作出两种结果的图形。输入命令:x=linspace(1,2,100);y=x.2+1./x.2; %为作图把符号解的结果离散化为作图把符号解的结果离散化plot(x,y,b.,t,w,r-);8.6.38.6.3 常微分方程组求解常微分方程组求解例例7.33 求微分方程组的解。求微分方程组的解。命令如下:命令如下:x,y=dsolve(Dx=4*x-2*y,Dy=2*x-y,t) %解方程组解方程组(1)x,y=dsolve(D2x-y,D2y+x,t) %解方程组解方程组(2)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号