matlab3_精品文档.ppt
- 文档编号:2568716
- 上传时间:2022-11-01
- 格式:PPT
- 页数:69
- 大小:475.50KB
matlab3_精品文档.ppt
《matlab3_精品文档.ppt》由会员分享,可在线阅读,更多相关《matlab3_精品文档.ppt(69页珍藏版)》请在冰豆网上搜索。
第三讲MATLAB的符号运算符号计算是对未赋值的符号对象进行运算和处理。
MATLAB具有符号数学工具箱(SymbolicMathToolbox),将符号运算结合到MATLAB的数值运算环境。
符号运算的功能符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程Laplace、Z变换及反变换符号运算的特点与数值运算的区别数值运算中必须先对变量赋值,然后才能参与运算。
符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。
符号运算不需要进行数值运算,符号运算非常准确。
符号运算可以得出完全的封闭解或任意精度的数值解。
符号运算的时间较长,而数值型运算速度快。
特点:
运算对象可以是没赋值的符号变量可以获得任意精度的解SymbolicMathToolbox符号运算工具包通过调用Maple软件实现符号计算的。
maple软件主要功能是符号运算,它占据符号软件的主导地位。
3.1.符号表达式的建立3.1.1创建符号常量符号常量是不含变量的符号表达式,用符号常量是不含变量的符号表达式,用sym(symbolic的缩写)命令来创建符号常量。
命令来创建符号常量。
语法:
语法:
sym(常量常量)%创建符号常量创建符号常量例如:
例如:
a=sym(sin
(2)a=sin
(2)3.1.2创建符号变量和表达式1.使用使用sym命令创建符号变量和表达式命令创建符号变量和表达式语法:
语法:
sym(表达式表达式)%创建符号表达式符号变量名符号变量名=sym(表达式表达式)symarg1%符号表达式赋给符号变量2.使用使用syms命令创建符号变量和符号表达式命令创建符号变量和符号表达式-syms用于创建多个符号变量语法:
语法:
syms(arg1,arg2,参数参数)%把字符变量定义为符号变量symsarg1arg2,参数参数%把字符变量定义为符号变量的简洁形式简洁形式3.使用使用创建符号变量和符号表达式创建符号变量和符号表达式如:
f=sin(x)+5xf符号变量名sin(x)+5x符号表达式符号标识v符号表达式一定要用单引号括起来matlab才能识别。
v的内容可以是符号表达式,也可以是符号方程。
【例例】使用syms命令创建符号变量和符号表达式。
1、symsabcx%创建多个符号变量f2=a*x2+b*x+c%创建符号表达式f2=a*x2+b*x+c2、syms(a,b,c,x)f3=a*x2+b*x+c;%创建符号表达式3、f3=a*x2+b*x+c例:
f1=ax2+bx+c二次三项式f2=ax2+bx+c=0方程f3=Dy+y2=1微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算3.1.3符号矩阵的创建数值矩阵A=1,2;3,4A=a,b;c,d不识别1.用matlab函数sym创建矩阵命令格式:
A=sym()符号矩阵内容同数值矩阵需用sym指令定义需用标识例如,A=sym(a,b;c,d)A=a,bc,dsymsabcdA=ab;cdA=a,bc,d注意:
符号矩阵的每一行的两端都有方括号,这注意:
符号矩阵的每一行的两端都有方括号,这是与是与matlab数值矩阵的数值矩阵的一个重要区别。
一个重要区别。
2.用字符串直接创建矩阵v模仿matlab数值矩阵的创建方法v需保证同一列中各元素字符串有相同的长度。
例:
A=a,2*b;3*a,0A=a,2*b3*a,03.2符号矩阵的修改a.直接修改可用、键找到所要修改的矩阵,直接修改b.指令修改v用A1=sym(A,new)来修改。
v用A1=subs(A,new,old)来修改vA1=subs(S,old,new)例如:
例如:
A=a,2*b3*a,0A1=sym(A,2,2,4*b)A1=a,2*b3*a,4*bA(2,2)=4*bA3=a,2*b3*a,4*bA2=subs(A1,c,b)A2=a,2*c3*a,4*cv将数值矩阵转化为符号矩阵函数调用格式:
sym(A)A=1/3,2.5;1/0.7,2/5A=0.33332.50001.42860.4000sym(A)ans=1/3,5/210/7,2/53.3符号矩阵与数值矩阵的转换v将符号矩阵转化为数值矩阵函数调用格式:
numeric(A)A=1/3,5/210/7,2/5numeric(A)ans=0.33332.50001.42860.40001.符号矩阵运算符号运算符同数值运算一样,所有运算操作指令都比较直观、简单。
例如:
符号表达式f=2x2+3x+4与g=5x+6的代数运算。
3.4符号运算f=sym(2*x2+3*x+4)f=2*x2+3*x+4g=sym(5*x+6)g=5*x+6f+g%符号表达式相加符号表达式相加ans=2*x2+8*x+10f*g%符号表达式相乘符号表达式相乘ans=(2*x2+3*x+4)*(5*x+6)而符号运算所有涉及符号运算的操作都有专用函数来进行符号矩阵运算的函数:
symadd(a,d)符号矩阵的加symsub(a,b)符号矩阵的减symmul(a,b)符号矩阵的乘symdiv(a,b)符号矩阵的除sympow(a,b)符号矩阵的幂运算symop(a,b)符号矩阵的综合运算例1:
f=2*x2+3*x-5;g=x2+x-7;h=symadd(f,g)h=3*x2+4*x-12例2:
f=cos(x);g=sin(2*x);symop(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;symsxf=2*x2+3*x-5;g=x2+x-7;h=f+gh=3*x2+4*x-12例2:
f=cos(x);g=sin(2*x);symsxf=cos(x);g=sin(2*x);f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)符号运算函数:
symsize求符号矩阵维数charploy特征多项式determ符号矩阵行列式的值eigensys特征值和特征向量inverse逆矩阵transpose矩阵的转置jordan约当标准型simple符号矩阵简化【例例】求矩阵的行列式值、非共轭转置和特征值。
symsa11a12a21a22A=a11a12;a21a22%创建符号矩阵创建符号矩阵A=a11,a12a21,a22det(A)%计算行列式计算行列式ans=a11*a22-a12*a21A.%计算非共轭转置计算非共轭转置ans=a11,a21a12,a22eig(A)%计算特征值计算特征值2.任意精度的数学运算在symbolic中有三种不同的算术运算:
1.数值类型matlab的浮点算术运算2.有理数类型maple的精确符号运算3.vpa类型maple的任意精度算术运算浮点算术运算1/2+1/3(定义输出格式formatlong)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=.8333333333333333333333333vpa(5/6,40)ans=.8333333333333333333333333333333333333333a=sym(1/4,exp
(1);log(3),3/7)a=1/4,exp
(1)log(3),3/7vpa(a,10)ans=.2500000000,2.7182818281.098612289,.4285714286diff(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.5符号微积分与积分变换int(被积表达式,积分变量,积分上限,积分下限)定积分缺省时为不定积分mtaylor(f,n)泰勒级数展开ztrans(f)Z变换Invztrans(f)反Z变换Laplace(f)拉氏变换Invlaplace(f)反拉氏变换fourier(f)付氏变换Invfourier(f)反付氏变换求极限函数limit用于求符号函数f的极限。
系统可以根据用户要求,计算变量从不同方向趋近于指定值的极限值。
该函数的格式及功能:
limit(f,x,a):
求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
limit(f,a):
求符号函数f(x)的极限值。
由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,既变量x趋近于a。
limit(f):
求符号函数f(x)的极限值。
符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
limit(f,x,a,right):
求符号函数f的极限值。
right表示变量x从右边趋近于a。
limit(f,x,a,left):
求符号函数f的极限值。
left表示变量x从左边趋近于a。
例求极限symsx%定义符号变量f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin(x)3w=limit(f)%求函数的极限w=-1/2例1.计算二重不定积分F=int(int(x*exp(-x*y),x),y)F=1/y*exp(-x*y)例2.计算f=x*exp(-x*10)的Z变换F=ztrans(f)F=z*exp(-10)/(z-exp(-10)2symsxyF=int(int(x*exp(-x*y),x),y)F=1/y*exp(-x*y)symsxf=x*exp(-x*10);F=ztrans(f)F=ztrans(x*exp(-x*10);F=z*exp(-10)/(z-exp(-10)2例3.计算指数函数eAt。
用拉氏反变换法计算eAt的公式为:
eAt=L-1(SI-A)-1系统矩阵A=eAt=结果:
a=01;-2-3;symssb=(s*eye
(2)-a)b=s,-12,s+3B=inv(b)(s+3)/(s2+3*s+2),1/(s2+3*s+2)-2/(s2+3*s+2),s/(s2+3*s+2)3.5符号代数方程求解matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。
当方程组不存在符号解时,又无其他自由参数,则给出数值解。
命令格式:
solve(f)求一个方程的解Solve(f1,f2,fn)求n个方程的解例1.f=ax2+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*pisolve(f,b)对指定变量b求解ans=-(a*x2+c)/xf2=matlab6.5的解0piatan(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)-pif2=solve(tan(2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab3_ 精品 文档