MATLAB数学实验.ppt
MATLAB数学实验,第七章 MATLAB符号计算,第七章 MATLAB符号计算,7.1 符号对象 7.2 符号矩阵和符号函数7.3 符号微积分7.4 符号方程和符号微分方程 7.5 便捷函数作图7.6 符号计算局限性和Maple调用,、符号对象的定义s=sym(str)将数值或字符串str转化为 符号对象s,数值为有理表示;s=sym(num,d)将数值表达式转化为符号 表达式,数值用十进制表示;,syms var1 var2 定义var1,var2,为符号变量subs(s,old,new)将符号表达式s中的符号 变量 old用new代替,7.1 符号对象,比较:a=pi2,b=pi2,c=sym(pi2),d=sym(pi2,d),e=sym(b),2.计算精度和数据类型转换 digits(n)将数值计算精度设为n位;x=vpa(s)求s的数值结果x=vpa(s,n)采用n位计算精度求s的数值 结果,double(s)将符号对象转化为双精度数值char(s)将符号对象转化为字符串,例 pi与210000,1.矩阵MATLAB大部分矩阵和数组运算符及指令都可以用于符号如:inv,./,.,eig等,2.符号函数计算factor(expr)对expr作因式分解expand(expr)将expr展开collect(expr,v)将expr按变量v合并同类项simple(expr)将expr化简,7.2 符号矩阵和符号函数,例1.已知 f(x,y)=(x-y)3,g(x,y)=(x+y)3求 h=f*g 并展开。解 syms x y;f=(x-y)3;g=(x+y)3;h=f*g,s=expand(h),s2=subs(s,y,x2+x+1),g=finverse(f,v)求函数f(v)的反函数g(v)fg=compose(f,g)求函数f(v)和g(v)的 复合函数f(g(v)n,d=numden(expr)分式通分,n返回分子,d返回分母funtool 函数分析图形界面,1极限和级数limit(s,x,a)返回符号表达式s当x-a时的极限limit(s,x,a,right)返回s当x-a时的右极限,例2,limit(s,x,a,left)返回s当x-a时的左极限symsum(s,n,a,b)返回符号表达式s表示的通 项当自变量n由a到b的和。,7.3 符号微积分,2.微分,diff(s,x)返回符号表达式s对x的导函数diff(s,x,n)返回s对x的n阶导函数。,taylor(s,n,a,x)返回符号表达式s在a点 Taylor展开到n-1次式.自变量为xtaylortool Taylor 分析图形界面,注意与差分diff的区别,jacobian(f,x)返回向量函数 f的Jacobian矩阵,(3)函数g(x)=lnx sinx在x=1的5次Taylor展开,例3 计算(1),(2),的Jacobian矩阵;,3.积分int(s)符号表达式s的不定积分.int(s,v)符号s关于变量v的不定积分.,int(s,a,b)符号表达式s的定积分,a,b分别为上下限.int(s,v,a,b)符号表达式s关于变量v从 a到b的定积分.当系统求不出解析解,会自动求原点附近的一个近似解。,(无解析解),例4 计算积分(1)不定积分(2)定积分(3)定积分,(4)定积分(5)重积分(6)广义积分,(无解析解),1代数方程s=solve(表达式1,表达式2,表达式n,未知量1,未知量2,未知量n)对于方程组,s返回解的结构,解内容 通过阅读其域得到,当系统求不出解析解,会自动求原点附近的一个近似解。,7.4 符号方程和符号微分方程,例5 解方程(1)二次方程ax2+bx+c=0;(2)无解析解 x2-3x+ex=2;(3)方程组,这里y,z是未知量。,2.常微分方程s=dsolve(方程1,方程2,初始条件1,初始条件2,自变量).均用字符串方式表示,自变量缺省值为t.导数用D表示,2阶导数用D2表示,以此类推.s返回解析解.方程组情形,s为一个符号结构.,例6(1)求y=ay+b的通解;(2)初值问题y=y-2t/y,y(0)=1;(3)高阶方程 y=cos(2x)-y,y(0)=1,y(0)=0(4)边值问题 xy-3y=x2,y(0)=0,y(5)=0(5)方程组 f=f+g,g=-f+g,f(0)=1,g(0)=2(6)无解析解 y=x+y2,y(0)=0,1.函数曲线图ezplot(F,a,b)作函数F在a,b上的图 F可以是显函数、隐函数或参变量函数 其表示可以是字符串、函数句柄、Inline 函数或匿名函数.a,b 缺省为-2*pi,2*pi,7.5 便捷函数作图,ezpolar(F,a,b)作极坐标函数F()在 ab上的图,a,b 缺省值为0,2*piezplot3(x,y,z,a,b)作曲线x=x(t),y=y(t),z=z(t)在atb上 的图,a,b的缺省值为0,2*pi,2.函数曲面图ezmesh(z,a,b,c,d)作函数z(x,y)在 axb,cyd上的图,ezmesh(x,y,z,a,b,c,d)作参变量函数x(s,t),y(s,t),z(s,t)在 asb,ctd上的图 函数用字符串、函数句柄、Inline函数 或匿名函数ezmesh(,n)网格用n2个节点,n的缺省值为60.类似命令有ezsurf,ezcontour等,符号计算局限性(1)许多问题没有解析解,一般无法用符号计算求解;(2)速度太慢,尤其是高维问题;(3)数值近似求解算法参数设置不够灵活,往往不能满足实际需要;(4)不能处理离散数据分析、最优化等常见工程问题。,7.6 符号计算局限性和Maple调用,例8 求方程组 的实根,例7 求解微分方程 y=t+sin(y),y(0)=1,0t1(符号运算无法求解),(符号运算求不到实数解),2Maple的调用MATLAB的符号工具箱提供了几个命令连接Maple,以扩展其计算能力。mhelp Maple函数 查阅Maple函数帮助maple(Maple命令)执行Maple命令,mfun 执行Maple的特殊函数mfunlist 能用nfun调用的Maple的 特殊函数列表procread 读入Maple程序,例10 求f(x,y)=e-xy的在x=1,y=0的三阶Taylor 展开式例11 求f(x,y)=xy 的极值,约束条件x2+y2+a2=1.a为参数,习题,ex2,ex3,ex4,ex5 ex6,ex10,ex13,