《Matlab基础(符号运算).ppt》由会员分享,可在线阅读,更多相关《Matlab基础(符号运算).ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB基础(符号运算)符号运算的功能符号运算的功能n n符号表达式、符号矩阵的创建n n符号线性代数n n因式分解、展开和简化n n符号代数方程求解n n符号微积分n n符号微分方程一、符号运算的基本操作一、符号运算的基本操作 1.什么是符号运算 与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。n n特点:运算对象可以是没赋值的符号变量 可以获得任意精度的解n nSymbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。n nmaple软件主要功能是符号运算,它占据符号软件的
2、主导地位。2.符号变量与符号表达式符号变量与符号表达式f=sin(x)+5xsin(x)+5x 符号表达式 符号标识v符号表达式一定要用 单引号单引号括起来matlab才能识别。的内容可以是符号表达式,也可以是符号方程例:f1=ax2+bx+c 二次三项式 f2=ax2+bx+c=0 方程 f3=Dy+y2=1 微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算3.符号矩阵符号矩阵的创建 数值矩阵A=1,2;3,4 A=a,b;c,d 不识别用matlab函数函数sym创建矩阵(symbolic 的缩写)命令格式:A=sym()符号矩阵内容同数值矩阵
3、需用sym指令定义 需用 标识例如:A=sym(a,2*b;3*a,0)A=a,2*b 3*a,0这就完成了一个符号矩阵的创建。注意:符号矩阵的每一行的两端都有方 括号,这是与 matlab数值矩阵的 一个重要区别。vv将数值矩阵转化为符号矩阵 函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5A=0.3333 2.5000 1.4286 0.4000sym(A)ans=1/3,5/210/7,2/5 符号矩阵与数值矩阵的转换符号矩阵与数值矩阵的转换vv将符号矩阵转化为数值矩阵函数调用格式:subs(A)A=1/3,5/210/7,2/5subs(A)ans=0.3333 2.5
4、000 1.4286 0.40001.符号矩阵运算符号矩阵运算 数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a2+3*a-5等。而符号运算就不同了,所有涉及符号运算的操作都有专用函数专用函数来进行二、符号运算二、符号运算符号矩阵矩阵运算的函数:symadd(a,b)符号矩阵的加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
5、*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;syms x f=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);syms x f=cos(x);g=sin(2*x);f/g+f*gans=cos(x)/sin(x)+cos(x)*sin(x)符号运算函数:symsize 求符号矩阵维数charploy 特征多项式determ 符号矩阵行列式的值
6、eigensys 特征值和特征向量inverse 逆矩阵transpose 矩阵的转置jordan 约当标准型simple 符号矩阵简化n ndiff(f)对缺省变量求微分n ndiff(f,v)对指定变量v求微分n ndiff(f,v,n)对指定变量v求n阶微分n nint(f)对f表达式的缺省变量求积分n nint(f,v)对f表达式的v变量求积分n nint(f,v,a,b)对f表达式的v变量在(a,b)区间求定积分3.符号微积分与积分变换符号微积分与积分变换int(被积表达式被积表达式,积分变量积分变量,积分上限积分上限,积分下限积分下限)定积分定积分缺省时为不定积分mtaylor(f
7、,n)泰勒级数展开ztrans(f)Z变换iztrans(f)反Z变换Laplace(f)拉氏变换ilaplace(f)反拉氏变换fourier(f)付氏变换Invfourier(f)反付氏变换 例例1.计算二重不定积分计算二重不定积分F=int(int(x*exp(-x*y),x),y)F=1/y*exp(-x*y)例2.计算 syms t;f=t*exp(-t*10)的Z变换F=ztrans(f)F=z*exp(-10)/(z-exp(-10)24.符号代数方程求解符号代数方程求解 matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又
8、无其他自由参数,则给出数值解。命令格式:solve(f)求一个方程的解solve(f1,f2,fn)求n个方程的解 例1.f=ax2+bx+c 求解f=a*x2+b*x+c;n n 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)求解f1=solve(cos(x)=sin(x),f1=1/4*pi solve(f,b)对指定变量b求解ans=-(a*x2+c)/x例3.解非线性方程组 sin(x)+y2+ln(z)-7=0 3x+2y-z3+1=
9、0 x+y+z-5=0g1=sin(x)+y2+ln(z)-7=0;g2=3*x+2y-z3+1=0;g3=x+y+z-5=0;x1,y1,z1=solve(g1,g2,g3,x,y,z)x1=0.5991,y1=2.3959,z1=2.00505.符号微分微分方程求解 用一个函数可以方便地得到微 分方程的符号解符号微分方程求解指令:dsolve命令格式:dsolve(f,g)n nf 微分方程,可多至12个微分方程的求 解;g为初始条件n n默认自变量为 x,可任意指定自变量t,u等n n微分方程的各阶导数项各阶导数项以大写字母D表示 或或或y的一阶导数 Dyy的二阶导数 D2yy的 n 阶导数 Dnyy1,y2=dsolve(x1,x2,xn)返回 微分方程的解一阶微分方程x1 x2=dsolve(Dx=y,Dy=x,x(0)=0,y(0)=1)x(t)=sin(t),y(t)=cos(t)二阶微分方程f=dsolve(D2y=-a2*y,y(0)=1,Dy(pi/a)=0)f=cos(a*x)例例3.y=dsolve(D2y+2*Dy+2*y=0,y(0)=1,Dy(0)=0,x)y=exp(-x)*cos(x)+exp(-x)*sin(x)求该方程的解小 结 本节介绍了matlab语言的符号运算功能,通过学习应该掌握:n n掌握如何创建、修改符号矩阵n n掌握符号运算功能
限制150内