收藏 分销(赏)

MATLAB的符号运算.ppt

上传人:pc****0 文档编号:13356656 上传时间:2026-03-06 格式:PPT 页数:57 大小:207.50KB 下载积分:10 金币
下载 相关 举报
MATLAB的符号运算.ppt_第1页
第1页 / 共57页
MATLAB的符号运算.ppt_第2页
第2页 / 共57页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三讲,MATLAB,的符号运算,matlab,不仅具有数值运算功能,还开发了在,matlab,环境下实现符号计算的工具包,Symbolic,Math Toolbox,符号运算的功能,符号表达式、符号矩阵的创建,符号线性代数,因式分解、展开和简化,符号代数方程求解,符号微积分,符号微分方程,一、符号运算的基本操作,什么是符号运算,与数值运算的区别,数值运算中必须先对变量赋值,,然后才能参与运算。,符号运算无须事先对独立变量赋值,,运算结果以标准的符号形式表达。,特点:,运算对象可以是没赋值的符号变量,可以获得任意精度的解,Symbolic Math Toolbox,符号运算工具包通过调用,Maple,软件实现符号计算的。,maple,软件,主要功能是符号运算,,它占据符号软件的主导地位。,2.,符号变量与符号表达式,f=,sin(x)+5x,f,符号变量名,sin(x)+5x,符号表达式,符号标识,符号表达式一定要用,单引 号括起来,matlab,才能识别。,的内容可以是符号表达式,也可以是符号方程。,例:,f1=,a,x2+bx+c,二次三项式,f2=,a,x2+bx+c=0,方程,f3=Dy+y2=1,微分方程,符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算,3.,符号矩阵的创建,数值矩阵,A=1,2;3,4,A=a,b;c,d,不识别,用,matlab,函数,sym,创建矩阵(,symbolic,的缩写,),命令格式:,A=sym(),符号矩阵内容同数值矩阵,需用,sym,指令定义,需用,标识,例如:,A=sym(a,2*b;3*a,0),A=,a,2*b,3*a,0,这就完成了一个符号矩阵的创建。,注意:符号矩阵的每一行的两端都有方,括号,这是与,matlab,数值矩阵的,一个重要区别。,符号矩阵的修改,指令修改,用,A1=subs(A,new,old),来修改,A(,行标,列标)符号表达式,例如:,A=a,2*b,3*a,0,A(2,2)=sym(4*b),A=a,2*b,3*a,4*b,A2=subs(A,c,b),A2=a,2*,c,3*a,4*,c,将,数值矩阵转化为符号矩阵,函数调用格式:,sym(A),A=1/3,2.5;1/0.7,2/5,A=,0.3333 2.5000,1.4286 0.4000,sym(A),ans=,1/3,5/2,10/7,2/5,符号矩阵与数值矩阵的转换,将,符号矩阵转化为数值矩阵,函数调用格式:,double(A),、,int8,(,A,)、,int16,(,A),、,A=,1/3,5/2,10/7,2/5,double(A),ans=,0.3333 2.5000,1.4286 0.4000,符号矩阵运算,数值运算中,所有矩阵运算操作指,令都比较直观、简单。例如:,a=b+c;,a=a*b,;,A=2*a2+3*a-5,等。,符号运算也是采用与数值运算相同的运算符。,二、符号运算,符号矩阵运算的函数:,+,Addition,Subtraction,*,Multiplication,.*,Array multiplication,/,Right division,./,Array right division,Left division,.,Array left division,Matrix or scalar raised to a power,.,Array raised to a power,Complex conjugate transpose,.,Real transpose,例,1,:,f=sym(,2*x2+3*x-5,),;,g=sym(,x2+x-7,),;,h=f+g,h=,3*x2+4*x-12,例,2,:,f=sym(,cos,(x);g=sym(sin(2*x);,f/g+f*g,ans,=,cos,(x)/sin(2*x)+,cos,(x)*sin(2*x),例,1,:,f=2*x2+3*x-5;g=x2+x-7;,syms x,f=2*x2+3*x-5;g=x2+x-7;,h=f+g,h=3*x2+4*x-12,例,2,:,f=cos(x);g=sin(2*x);,syms x,f=cos(x);g=sin(2*x);,f/g+f*g,ans=,cos(x)/sin(x)+cos(x)*sin(x),2.,任意精度的数学运算,在,symbolic,中有三种不同的算术运算:,数值类型,matlab,的浮点算术运算,有理数类型,maple,的,精确符号运算,vpa,类型,maple,的任意精度算术,运算,浮点算术运算,1/2+1/3,(,定义输出格式,format long),ans=,0.83333333333333,符号运算,sym(1/2)+(1/3),ans=,5/6,精确解,任意精度算术运算,digits(n),设置可变精度,缺省,16,位,vpa(x,n),显示可变精度计算,digits(25),vpa(1/2+1/3),ans=,.8333333333333333333333333,vpa(5/6,40),ans=,.8333333333333333333333333333333333333333,a=sym(1/4,exp(1);log(3),3/7),a=,1/4,exp(1),log(3),3/7,vpa(a,10),ans=,.2500000000,2.718281828,1.098612289,.4285714286,diff(f),对,缺省变量求微分,diff(f,v),对,指定变量,v,求微分,diff(f,v,n),对指定变量,v,求,n,阶微分,int(f),对,f,表达式的缺省变量求积分,int(f,v),对,f,表达式的,v,变量求积分,int(f,v,a,b),对,f,表达式的,v,变量在(,a,b),区间求定积分,3.,符号微积分与积分变换,int,(,被积表达式,,,积分变量,,,积分上限,,,积分下限,),定积分,缺省时为不定积分,taylor,(f,n),泰勒级数展开,ztrans(f)Z,变换,iztrans,(f),反,Z,变换,laplace,(f),拉氏变换,ilaplace,(f),反,拉氏变换,fourier(f),付氏变换,ifourier,(f),反付氏变换,例,1.,计算二重不定积分,F=int(int(x*exp(-x*y),x),y),F=,1/y*exp(-x*y),例,2.,计算,f=x*exp(-x*10),的,Z,变换,f=sym(x*exp(-x*10),F=ztrans(f),F=,z*exp(-10)/(z-exp(-10)2,syms x y,F=int(int(x*exp(-x*y),x),y),F=,1/y*exp(-x*y),syms x,f=x*exp(-x*10);,F=ztrans(f),F=,z*exp(-10)/(z-exp(-10)2,syms,x;,F=ztrans(x*exp(-x*10);,F=,z*exp(-10)/(z-exp(-10)2,例,3.,计算指数函数,e,At,。,用拉氏反变换法计算,e,At,的,公式为:,e,At,=L,-1,(SI-A),-1,系统矩阵,A=,e,At,=,结果:,a=0 1;-2-3;,syms s,b=(s*eye(2)-a),b=,s,-1,2,s+3,B=inv(b),(s+3)/(s2+3*s+2),1/(s2+3*s+2),-2/(s2+3*s+2),s/(s2+3*s+2),b11=ilaplace(sym(b,1,1);b(1,1)=b11;,b12=ilaplace(sym(b,1,2);b(1,2)=b12;,b21=ilaplace(sym(b,2,1);b(2,1)=b21;,b22=ilaplace(sym(b,2,2);b(2,2)=b22;,b,b=,-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t),-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t),4.,符号代数方程求解,matlab,符号运算能够解一般的线性方程、非线性方程及一般的,代数方程、代数方程组,。当方程组不存在符号解时,又无其他自由参数,则给出数值解。,命令格式:,solve(f),求一个方程的解,solve(f1,f2,f,n,),求,n,个方程的解,例,1.,f=ax,2,+bx+c,求解,f=a*x2+b*x+c;,solve(f),对缺省变量,x,求解,ans=,1/2/a*(-b+(b2-4*a*c)(1/2),1/2/a*(-b-(b2-4*a*c)(1/2),计算机,格式,一般格式,例,2.,符号方程,cos(x)=sin(x),tan(2*x)=sin(x),求解,f1=solve(cos(x)=sin(x),f1=,1/4*pi,solve(f,b),对指定变量,b,求解,ans=,-(a*x2+c)/x,f2=solve(tan(2*x)=sin(x),f2=,pi,0,atan,(1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2),atan,(-1/2*(-2*3(1/2)(1/2),1/2+1/2*3(1/2),atan,(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)+pi,-,atan,(1/2*2(1/2)*3(1/4)/(1/2-1/2*3(1/2)-pi,double(f2),ans,=,3.14159265358979,0,0+0.83144294552931i,0-0.83144294552931i,1.94553075950364,-1.94553075950364,例,3.,解方程组,x+y+z=1,x-y+z=2,2x-y-z=1,g1=x+y+z=1,g2=x-y+z=2,g3=2*x-y-z=1,f=solve(g1,g2,g3),或者,f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1),f=,x:1x1 sym,y:1x1 sym,z:1x1 sym,其中,f.x=2/3,f.y=-1/2,f.z=5/6,x,y,z=solve(x+y+z=1,x-y+z=2,2*x-y-z=1),x=2/3,y=-1/2,z=5/6,5.,符号微分方程求解,用一个函数可以方便地得到微,分方程的符号解,符号微分方程求解指令:,dsolve,命令格式:,dsolve(f,g),f,微分方程,可多至,12,个微分方程的求,解;,g,为初始条件,默认自变量为,t,可任意指定自变量,x,u,等,微分方程的各阶导数项以大写字母,D,表示,或,或,或,y,的一阶导数,Dy,y,的二阶导数,D2y,y,的,n,阶导数,Dny,y1,y2=dsolve(x1,x2,xn),返回 微分方程的解,一阶微分方程,dsolve(Dx=y,Dy=x,x(0)=0,y(0)=1),二阶微分方程,dsolve(D2y=-a2*y,y(0)=1,Dy(pi/a)=0),ans=,cos(a*t),例,3.,y=dsolve(D2y+2*Dy+2*y=0,y(0)=1,Dy(0)=0),ans=,exp(-t)*sin(t)+exp(-t)*,cos,(t),ezplot(y),方程解,y(t),的时间曲线图,求该,方程的解,三、,maple,函数,符号运算的扩展,maple,是专门进行数学运算的软件工具,,具有超强的符号运算能力,,提供了,几乎包括所有数学领域的专用函数,matlab,依赖于,maple,的内核与函数库,扩,展了自己的符号运算功能。,matlab,还设计了对,maple,库函数的调用功能,使得已有的,maple,数学功能,可以扩充,matlab,中,作为自身符号运算能力的扩展。,1.maple,内核访问函数,可以访问,maple,内核的,matlab,函数,:,maple ,访问,maple,内核函数,mapleinit maple,函数初始化,mpa maple,函数定义,mhelp maple,函数帮助命令,procread maple,函数程序安装,.,maple,的调用格式,maple(,表达式,),将表达式送至,maple,内核,,返回符号表达式结果。,maple,(,函数,,变量,1,,变量,2,),调用,maple,函数,传递给定,变量,。,例,1.,展开,5,阶,bernoulli,多项式,计算,x=3,时,bernoulli,数。,a=maple(bernoulli(5,x),a=,-1/6*x+5/3*x3+x5-5/2*x4,a=maple(bernoulli(5,3),a=,85,例,2.,化简三角函数式,sin,2,x+cos,2,x,a=maple(simplify(sin(x)2+cos(x)2),a=,1,例,4.,求,f(t)=e,-3t,sint,的拉式变换,f=maple(laplace(exp(-3*t)*sin(t),t,s),f=,1/(s+3)2+1),例,4.,寻找二次多项式的完全平方,f(x)=x,2,+2x+2,a=maple(completesquare(x2+2*x+2),a=,completesquare(x2+2*x+2),将工具包装入内存,maple(with(student);),a=maple(completesquare(x2+2*x+2),a=,(x+1)2+1,maple,软件中的所有函数,在初始化时并没有完全装入内存,可用,readlib,指令把库函数读入内存,或用,with,指令将应用工具包装入内存。,调用格式,maple(readlib(,函数名,);),maple(with(,工具包名,);),例,5.,求,sin(x,2,+y,2,),在,x=0,y=0,处泰勒级数展开式,,8,阶截断。,maple(mtaylor(sin(x2+y2),x=0,y=0,8),ans=,mtaylor(sin(x2+y2),x=0,y=0,8),maple(readlib(mtaylor);),maple(mtaylor(sin(x2+y2),x=0,y=0,8),ans=,x2+y2-1/6*x6-1/2*y2*x4-1/2*y4*x2-1/6*y6,2.,mpa maple,变量定义,任何一个,matlab,定义的函数,f,,,可使用,mpa,语句直接调用,还可把,f,定义成,maple,变量,v,。,maple,的,工作空间与,matlab,工作空间是相互独立的,所以,f,与,v,是属于不同工作空间中的变量,mpa,的调用格式:,mpa(v,f),mpa v f,f,为,matlab,工作空间中已存在的变量,例,.,电磁力计算公式为,试,I=0.5,,,x=0.1,邻域展开泰勒级数,,3,阶截,断,令常数,,,1.,直接调用,maple(readlib(mtaylor);),maple(mtaylor(k*I2/x2,I=0.5,x=0.1,3);),2.,定义符号函数,f,f=k*I2/x2;,maple(mtaylor(f,I=0.5,x=0.1,3);),ans=,mtaylor(f,I=.5,x=.1,3),mpa(u,f),maple(mtaylor(u,I=0.5,x=0.1,3);),ans=,25.*k-.50e3*k*(x-.1)+.10e3*k*(I-.5)+7500.000000000000*k*(x-.1)2+.1e3*k*(I-.5)2-.20e4*k*(I-.5)*(x-.1),注意:,matlab,符号运算时,可以识,别,matlab,定义的符号变量,但在调,用,maple,函数时,需将,matlab,变量,定义为,maple,变量后,所调用的函,数方可识别和执行,3.,mhelp maple,函数帮助命令,mhelp,是协助检索,maple,库函数的专用命令,调用格式:,mhelp,相关词条,例如:,mhelp intro maple,介绍,mhelp maple maple,命令格式,mhelp tutorial maple,入门,mhelp index maple,检索,工具词条,函数词条,mhelp index,用于工具包检索,library maple,标准库函数,packages,应用工具包,libmisc,其它库函数,statements maple,语句描述,expressions maple,表达式,datatypes maple,数据格式,tables maple,表格和阵列,procedures maple,程序,misc maple,其它应用,一般帮助文本主要包括以下部分,FUNCTION,函数功能说明,CALLING SEQUENCE,调用格式,PARAMETERS,调用参数说明,SYNOPSIS,语法说明,EXAMPLES,应用举例,SEE ALSO,相关词条,4.,maple,库函数,maple,库函数共分四类,maple,内部函数:驻留函数任何条件,下都可调用,mhelp indexinternal,maple,的外部函数,读库定义部分:,调用时先执行读库命令,因此与内部函,数一样可直接调用,mhelp indexexternal,maple,的外部函数,读库装入部分,maple,其余外部函数需要在使用前执行,maple(readlib(,函数名,);),命令将其装入内存,mhelp indexlibmisc,maple,的惰性函数,不能直接调用,还需一些函数如,mod,evala,evalf,等才能调用,mhelp indexintert,小 结,本节介绍了,matlab,语言的符号运算,功能,通过学习应该掌握:,掌握如何创建、修改符号矩阵,掌握符号运算功能,maple,函数调用,mhelp,检索,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服