MATLAB与数学建模2014-第6章符号计算.ppt
《MATLAB与数学建模2014-第6章符号计算.ppt》由会员分享,可在线阅读,更多相关《MATLAB与数学建模2014-第6章符号计算.ppt(43页珍藏版)》请在三一办公上搜索。
1、第6章 MATLAB符号计算,主要内容:6.1 符号计算基础 6.2 符号导数及其应用 6.3 符号积分 6.4 级数 6.5 代数方程的符号求解 6.6 常微分方程的符号求解,6.1 符号计算基础,MATLAB中符号计算函数是数值计算函数的重载,符号计算工具箱采用的函数和数值计算的函数有一部分同名,为得到准确的在线帮助,应该用help sym/函数名例如:help sym/inv,6.1 符号计算基础,6.1.1 符号对象1.建立符号变量和符号常数(1)sym函数 sym函数用来建立单个符号变量和符号表达式,例如,a=sym(a)建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算
2、。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),例6.1 考察符号变量和数值变量的差别。在 MATLAB命令窗口,输入命令: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 11,ans=a*d-b*c a
3、ns=150,例6.2 比较符号常数与数值在代数运算时的差别。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)%计算数值表达式值,ans=1/2*3(1/2)ans=0.8660ans=2*2(1/2),ans=2.8284ans=(3+2(1/2)(1/2)an
4、s=2.1010,6.1 符号计算基础,(2)syms函数syms函数的一般调用格式为:syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。syms a b c d,符号计算的结果是符号或符号表达式,如果其中的符号要用具体数值代替,可以用subs函数,例如将A中的符号a以数值5代替,可以用B=subs(A,a,5),clear;syms a b c d;A1=a,b;c,d;A2=det(A1);A3=subs(A2,a,1);A3=subs(A3,b,2);A3=subs
5、(A3,c,3);A3=subs(A3,d,4),例6.3 计算行列式,当 时计算A的数值结果。,A3=-2,6.1 符号计算基础,2.建立符号表达式例6.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+6ans=3*x2+5*y+2*x*y+12,例6.5 计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确定的范
6、得蒙矩阵。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,6.1 符号计算基础,例6.6 建立x,y的一般二元函数。在MATLAB命令窗口,输入命令:syms x y;f=sym(f(x,y),f=f(x,y),6.1.2 基本的符号运算1.符号表达式运算(1)符号表达式的四则运算例6.7 符号表达式的四则运算示例。在 MATLAB命令窗口,输入命令:syms x y z;f=2*x+x2*x-5*x+x3
7、%符号表达式的结果为最简形式f=2*x/(5*x)%符号表达式的结果为最简形式f=(x+y)*(x-y)%符号表达式的结果不是x2-y2,而是%(x+y)*(x-y),f=-3*x+2*x3f=2/5f=(x+y)*(x-y),6.1 符号计算基础,(2)因式分解与展开factor(S)对S分解因式,S是符号表达式或符号矩阵。expand(S)对S进行展开,S是符号表达式或符号矩阵。collect(S)对S合并同类项,S是符号表达式或符号矩阵。collect(S,v)对S按变量v合并同类项,S是符号表达式或符号矩阵。,例6.8 对符号矩阵A的每个元素分解因式。命令如下:syms a b x y
8、;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-b3,ans=2*a*b3*x2*(5*b3*x2-2*b*x+a),-x*(-3*y+5*x)4,(a-b)*(a2+a*b+b2),例6.9 计算表达式S的值。syms x y;s=(-7*x2-8*y2)*(-x2+3*y2);expand(s)%对s展开collect(s,x)%对s按变量x合并同类项(无同类项)factor(ans)%对
9、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),6.1 符号计算基础,(3)表达式化简MATLAB提供的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。例:syms x y;s=(x2+y2)2+(x2-y2)2;simple(s)%MATLAB自动调用多种函数对s进行%化简,并显示
10、每步结果,ans=2*x4+2*y4,6.1 符号计算基础,2.符号矩阵运算transpose(S)返回S矩阵的转置矩阵。,6.1.3 符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的符号变量。该函数的调用格式为:findsym(S,n)函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符x最近原则确定缺省变
11、量。,syms a x y z tfindsym(sin(pi*t)ans=t findsym(x+i*y-j*z)ans=x,y,z,findsym(a+y,1)returns y.,6.2 符号导数及其应用,6.2.1 函数的极限limit函数的调用格式为:limit(f,x,a)limit函数的另一种功能是求单边极限,其调用格式为:limit(f,x,a,right)或 limit(f,x,a,left),例6.10 求极限。在MATLAB命令窗口,输入命令:syms a m x;f=(x(1/m)-a(1/m)/(x-a);limit(f,x,a)%求极限(1)f=(sin(a+x)-
12、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 符号导数及其应用,6.2.2 符号函数求导及其应用MATLAB中的求导的函数为:diff(f,x,n)diff 函数求函数 f 对变量 x 的 n 阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,例6.11 求函数的导数。syms a b
13、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(f1)3%求(3)。求y对x%的二阶导数f=x*exp(y)/y2;diff(f,x)%求(4)。z对x的偏导数diff(f,y)%求(4)
14、。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的偏导数,6.2 符号导数及其应用,ans=1/2/(1+exp(x)(1/2)*exp(x)ans=-2*sin(x)-x*cos(x)ans=-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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数学 建模 2014 符号 计算
链接地址:https://www.31ppt.com/p-6511744.html