【教学课件】第六章matlab符号计算.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【教学课件】第六章matlab符号计算.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第六章matlab符号计算.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 MATLAB符号计算6.1 符号计算基础6.2 符号导数及其应用6.3 符号积分6.4 级数6.5 代数方程的符号求解6.6 常微分方程的符号求解6.1 符号计算基础6.1.1 符号对象1.1.建立符号变量和符号常数建立符号变量和符号常数(1)sym(1)sym函数函数 sym sym函数用来建立单个符号量,例如,函数用来建立单个符号量,例如,a=sym(a)a=sym(a)建立符号变量建立符号变量a a,此后,用户可以在表,此后,用户可以在表达式中使用变量达式中使用变量a a进行各种运算。进行各种运算。例例6.16.1考察符号变量和数值变量的差别。考察符号变量和数值变量的差别。在在
2、MATLAB MATLAB命令窗口,输入命令:命令窗口,输入命令:a=sym(a);b=sym(b);c=sym(c);d=sym(d);a=sym(a);b=sym(b);c=sym(c);d=sym(d);%定义定义4 4个符号变量个符号变量w=10;x=5;y=-8;z=11;%w=10;x=5;y=-8;z=11;%定义定义4 4个数个数值变量值变量A=a,b;c,d%A=a,b;c,d%建立符号矩阵建立符号矩阵A AB=w,x;y,z%B=w,x;y,z%建立数值矩阵建立数值矩阵B Bdet(A)%det(A)%计算符号矩阵计算符号矩阵A A的的行列式行列式det(B)%det(B)
3、%计算数值矩阵计算数值矩阵B B的的行列式行列式例例6.26.2比较符号常数与数值在代数运算时的差别。比较符号常数与数值在代数运算时的差别。在在 MATLAB MATLAB命令窗口,输入命令:命令窗口,输入命令:pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3);%pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3);%定义符号变量定义符号变量pi2=pi;r1=8;r2=2;r3=3;%pi2=pi;r1=8;r2=2;r3=3;%定义数值变量定义数值变量sin(pi1/3)%sin(pi1/3)%计算符号表达式值计算符号表达式值
4、 sin(pi2/3)%sin(pi2/3)%计算数值表达式值计算数值表达式值sqrt(k1)%sqrt(k1)%计算符号表达式值计算符号表达式值sqrt(r1)%sqrt(r1)%计算数值表达式值计算数值表达式值sqrt(k3+sqrt(k2)%sqrt(k3+sqrt(k2)%计算符号表达式计算符号表达式值值sqrt(r3+sqrt(r2)%sqrt(r3+sqrt(r2)%计算数值计算数值表达式表达式值值(2)syms(2)syms函数函数symssyms函数的一般调用格式为:函数的一般调用格式为:syms var1 var2 varnsyms var1 var2 varn 函数定义符号
5、变量函数定义符号变量var1,var2,varnvar1,var2,varn等。用这种等。用这种格式定义符号变量时不要在变量名上加字符分界格式定义符号变量时不要在变量名上加字符分界符符()(),变量间用空格而不要用逗号分隔。,变量间用空格而不要用逗号分隔。2.2.建立符号表达式建立符号表达式例例6.36.3用两种方法建立符号表达式。用两种方法建立符号表达式。在在MATLABMATLAB窗口,输入命令:窗口,输入命令:U=sym(3*x2+5*y+2*x*y+6)%U=sym(3*x2+5*y+2*x*y+6)%定义符号表达定义符号表达式式U Usyms x y;%syms x y;%建立符号变
6、量建立符号变量x x、y yV=3*x2+5*y+2*x*y+6%V=3*x2+5*y+2*x*y+6%定义符号表达式定义符号表达式V V2*U-V+6%2*U-V+6%求符号表达式的值求符号表达式的值例例6.46.4计算计算3 3阶范得蒙矩阵行列式的值。设阶范得蒙矩阵行列式的值。设A A是一个由符号变是一个由符号变量量a,b,ca,b,c确定的范得蒙矩阵。确定的范得蒙矩阵。命令如下:命令如下:syms a b c;syms a b c;U=a,b,c;U=a,b,c;A=1,1,1;U;U.2%A=1,1,1;U;U.2%建立范得蒙符号矩阵建立范得蒙符号矩阵det(A)%det(A)%计算计
7、算A A的行列式值的行列式值例6.5建立x,y的一般二元函数。在MATLAB命令窗口,输入命令:syms x y;f=sym(f(x,y);6.1.2 基本的符号运算1.1.符号表达式运算符号表达式运算(1)(1)符号表达式的四则运算符号表达式的四则运算例例6.66.6符号表达式的四则运算示例。符号表达式的四则运算示例。在在 MATLAB MATLAB命令窗口,输入命令:命令窗口,输入命令:syms x y z;syms x y z;f=2*x+x2*x-5*x+x3%f=2*x+x2*x-5*x+x3%符号表达式的结果为最简形符号表达式的结果为最简形式式f=2*x/(5*x)%f=2*x/(
8、5*x)%符号表达式的结果为最简形式符号表达式的结果为最简形式f=(x+y)*(x-y)%f=(x+y)*(x-y)%符号表达式的结果不是符号表达式的结果不是x2-y2x2-y2,而是,而是(x+y)*(x-y)(x+y)*(x-y)(2)(2)因式分解与展开因式分解与展开factor(S)factor(S)对对S S分解因式,分解因式,S S是符号表达式或符号矩阵。是符号表达式或符号矩阵。expand(S)expand(S)对对S S进行展开,进行展开,S S是符号表达式或符号矩是符号表达式或符号矩阵。阵。collect(S)collect(S)对对S S合并同类项,合并同类项,S S是符号
9、表达式或符号是符号表达式或符号矩阵。矩阵。collect(S,v)collect(S,v)对对S S按变量按变量v v合并同类项,合并同类项,S S是符号表达是符号表达式或符号矩阵。式或符号矩阵。例6.7 对符号矩阵A的每个元素分解因式。命令如下: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的每个元素分解因式例6.8 计算表达式S的值。命令如下:syms x y;s=(-7*x2-8*y2)*(-x2+3*y2);expand(s)%对s展开collect(s,x)%对s按变量x合并
10、同类项(无同类项)factor(ans)%对ans分解因式(3)(3)表达式化简表达式化简MATLABMATLAB提供的对符号表达式化简的函数有:提供的对符号表达式化简的函数有:simplify(S)simplify(S)应用函数规则对应用函数规则对S S进行化简。进行化简。simple(S)simple(S)调用调用MATLABMATLAB的其他函数对表达式进行的其他函数对表达式进行综合化简,并显示化简过程。综合化简,并显示化简过程。例6.9化简命令如下:syms x y;s=(x2+y2)2+(x2-y2)2;simple(s)%MATLAB自动调用多种函数对s进行化简,并显示每步结果2.
11、2.符号矩阵运算符号矩阵运算transpose(S)transpose(S)返回返回S S矩阵的转置矩阵。矩阵的转置矩阵。determ(S)determ(S)返回返回S S矩阵的行列式值。矩阵的行列式值。colspace(S)colspace(S)返回返回S S矩阵列空间的基。矩阵列空间的基。Q,D=eigensys(S)QQ,D=eigensys(S)Q返回返回S S矩阵的特征向量,矩阵的特征向量,D D返回返回S S矩阵的特征值。矩阵的特征值。6.1.3 符号表达式中变量的确定MATLABMATLAB中的符号可以表示符号变量和符号常数。中的符号可以表示符号变量和符号常数。findsymfi
12、ndsym可以帮助用户查找一个符号表达式中可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:的的符号变量。该函数的调用格式为:findsym(S,n)findsym(S,n)函数返回符号表达式函数返回符号表达式S S中的中的n n个符号变量,若没有个符号变量,若没有指定指定n n,则返回,则返回S S中的全部符号变量。中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有在求函数的极限、导数和积分时,如果用户没有明确指定自变量,明确指定自变量,MATLABMATLAB将按缺省原则确定将按缺省原则确定主变量并对其进行相应微积分运算。可用主变量并对其进行相应微积分运算。可用f
13、indsym(S,1)findsym(S,1)查找系统的缺省变量,事实上,查找系统的缺省变量,事实上,MATLABMATLAB按离字符按离字符xx最近原则确定缺省变量。最近原则确定缺省变量。6.2 符号导数及其应用函数的极限limitlimit函数的调用格式为:函数的调用格式为:limit(f,x,a)limit(f,x,a)limitlimit函数的另一种功能是求单边极限,其调用格式函数的另一种功能是求单边极限,其调用格式为:为:limit(f,x,a,right)limit(f,x,a,right)或或 limit(f,x,a,left)limit(f,x,a,left)例6.10求极限。
14、在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(包括+和-)处的极限limit(f,x,inf,left)%求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right)%求极限(4)6.2.2 符号函数求导及其应用MATLABMATLAB中的求导的函数为:中的求导的函数为:diff(f,x,n)diff(f,x,n)
15、diffdiff函数求函数函数求函数f f对变量对变量x x的的n n阶导数。参数阶导数。参数x x的用法同的用法同求极限函数求极限函数limitlimit,可以缺省,缺省值与,可以缺省,缺省值与limitlimit相同,相同,n n的缺省值是的缺省值是1 1。例例6.116.11求函数的导数。求函数的导数。命令如下:命令如下:syms a b t x y z;syms a b t x y z;f=sqrt(1+exp(x);f=sqrt(1+exp(x);diff(f)%diff(f)%求求(1)(1)。未指定求导变量和阶数,按缺省规则处理。未指定求导变量和阶数,按缺省规则处理f=x*cos
16、(x);f=x*cos(x);diff(f,x,2)%diff(f,x,2)%求求(2)(2)。求。求f f对对x x的二阶导数的二阶导数diff(f,x,3)%diff(f,x,3)%求求(2)(2)。求。求f f对对x x的三阶导数的三阶导数f1=a*cos(t);f2=b*sin(t);f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%diff(f2)/diff(f1)%求求(3)(3)。按参数方程求导公式求。按参数方程求导公式求y y对对x x的导数的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1
17、)3%(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3%求求(3)(3)。求。求y y对对x x的二阶的二阶导数导数f=x*exp(y)/y2;f=x*exp(y)/y2;diff(f,x)%diff(f,x)%求求(4)(4)。z z对对x x的偏导数的偏导数diff(f,y)%diff(f,y)%求求(4)(4)。z z对对y y的偏导数的偏导数f=x2+y2+z2-a2;f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z)%zx=-diff(f,x)/diff(f,z)%求求(5)(5)。按隐函数求导公式求。按隐
18、函数求导公式求z z对对x x的偏导数的偏导数zy=-diff(f,y)/diff(f,z)%zy=-diff(f,y)/diff(f,z)%求求(5)(5)。按隐函数求导公式求。按隐函数求导公式求z z对对y y的偏导数的偏导数例6.12在曲线y=x3+3x-2上哪一点的切线与直线y=4x-1平行。命令如下:x=sym(x);y=x3+3*x-2;%定义曲线函数f=diff(y);%对曲线求导数g=f-4;solve(g)%求方程f-4=0的根,即求曲线何处的导数为46.3 符号积分不定积分在在MATLABMATLAB中,求不定积分的函数是中,求不定积分的函数是intint,其调用格,其调用
19、格式为:式为:int(f,x)int(f,x)intint函数求函数函数求函数f f对变量对变量x x的不定积分。参数的不定积分。参数x x可以缺省,可以缺省,缺省原则与缺省原则与diffdiff函数相同。函数相同。例6.13求不定积分。命令如下:x=sym(x);f=(3-x2)3;int(f)%求不定积分(1)f=sqrt(x3+x4);int(f)%求不定积分(2)g=simple(ans)%调用simple函数对结果化简6.3.2 6.3.2 符号函数的定积分符号函数的定积分定积分在实际工作中有广泛的应用。在定积分在实际工作中有广泛的应用。在MATLABMATLAB中,定积分的计算使用
20、函数:中,定积分的计算使用函数:int(f,x,a,b)int(f,x,a,b)例例6.146.14求定积分。求定积分。命令如下:命令如下:x=sym(x);t=sym(t);x=sym(x);t=sym(t);int(abs(1-x),1,2)%int(abs(1-x),1,2)%求定积分求定积分(1)(1)f=1/(1+x2);f=1/(1+x2);int(f,-inf,inf)%int(f,-inf,inf)%求定积分求定积分(2)(2)int(4*t*x,x,2,sin(t)%int(4*t*x,x,2,sin(t)%求定积分求定积分(3)(3)f=x3/(x-1)100;f=x3/(
21、x-1)100;I=int(f,2,3)%I=int(f,2,3)%用符号积分的方法求定积用符号积分的方法求定积分分(4)(4)double(I)%double(I)%将上述符号结果转换为数值将上述符号结果转换为数值例6.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例例6.166.16轴的长度为轴的长度为1010米,若该轴的线性密度计算公式是米,若该轴的线性密度计算公式是f(x)=6+0.3xf(x)=6+0.3x千克千克/米米(其中其中x x为距轴的端点距离为距轴的端点距离),求轴,求
22、轴的质量。的质量。(1)(1)符号函数积分。在符号函数积分。在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:syms x;syms x;f=6+0.3*x;f=6+0.3*x;m=int(f,0,10)m=int(f,0,10)(2)(2)数值积分。数值积分。先建立一个函数文件先建立一个函数文件fx.mfx.m:function fx=fx(x)function fx=fx(x)fx=6+0.3*x;fx=6+0.3*x;再在再在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:m=quad(fx,0,10,1e-6)m=quad(fx,0,10,1e-6)例6
23、.17求空间曲线c从点(0,0,0)到点(3,3,2)的长度。求曲线c的长度是曲线一型命令如下:syms 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的长度6.3.3 积分变换1.1.傅立叶傅立叶(Fourier)(Fourier)变换变换在在MATLABMATLAB中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:fourier(fx,x,t)fourier(fx,x,t)求函数求函数f(x)f(x)的傅立叶像函数的傅立叶像函数F(t)F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第六 matlab 符号 计算
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内