MATLAB的符号运算.ppt
《MATLAB的符号运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB的符号运算.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三讲 MATLAB的符号运算 matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMath Toolbox 符号运算的功能符号表达式、符号矩阵的创建符号线性代数因式分解、展开和简化符号代数方程求解符号微积分符号微分方程一、符号运算的基本操作1.什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。特点:运算对象可以是没赋值的符号变量 可以获得任意精度的解Symbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。maple软件
2、主要功能是符号运算,它占据符号软件的主导地位。2.符号变量与符号表达式f=sin(x)+5xf 符号变量名sin(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数值矩阵的 一个重要区别。符号矩阵的修改指令修改v用A1=subs(A,new,old)来修改v A(行标,列标)符号表达式例如:例如:A=a,2*b 3*a,0A(2,2)=sym(4*b)A=a,2*b 3*a,4*bA2=subs(A,c,b)A2=a,2*c 3*a,4*c v将数值矩阵转化为符号矩阵 函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5A=0.3333
4、 2.5000 1.4286 0.4000sym(A)ans=1/3,5/210/7,2/5 符号矩阵与数值矩阵的转换v将符号矩阵转化为数值矩阵函数调用格式:double(A)、int8(A)、int16(A)、A=1/3,5/210/7,2/5double(A)ans=0.3333 2.5000 1.4286 0.40001.符号矩阵运算 数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a2+3*a-5等。符号运算也是采用与数值运算相同的运算符。二、符号运算符号矩阵运算的函数:+Addition Subtraction*Multiplication .
5、*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)/
6、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)2.任意精度的数学运算 在symbolic中有三种不同的算术运算:1.数值类型 matlab的浮点算术运算2.有理数类型 maple的精确符号运算3.vpa类型 maple的任意精度算术 运算 浮点算术运算1/2+1/3 (定义输出
7、格式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=.8333333333333333333333333vpa(5/6,40)ans=.8333333333333333333333333333333333333333 a=sym(1/4,exp(1);log(3),3/7)a=1/4,exp(1)log(3),3/7vpa(a,10)ans=.2500000000,2.71828
8、18281.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.符号微积分与积分变换int(被积表达式,积分变量,积分上限,积分下限)定积分缺省时为不定积分taylor(f,n)泰勒级数展开ztrans(f)Z变换iztrans(f)反Z变换laplace(f)拉氏变换ilaplace(f)反拉氏变换fourier(f)付氏变换ifourier(f)
9、反付氏变换 例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(-1
10、0)2 例3.计算指数函数eAt。用拉氏反变换法计算eAt的公式为:eAt=L-1(SI-A)-1系统矩阵A=eAt=结果: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
11、(2,2)=b22;bb=-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,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-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 符号 运算
限制150内