Matlab符号函数_第1页
Matlab符号函数_第2页
Matlab符号函数_第3页
Matlab符号函数_第4页
Matlab符号函数_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 MATLAB中的符号运算中的符号运算建立符号变量和符号常量建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:提供了两个建立符号对象的函数: sym, syms(1) sym函数函数 sym函数用来建立单个符号变量,一般调用格式为:函数用来建立单个符号变量,一般调用格式为:符号变量名符号变量名=sym(符号字符串符号字符串)该函数可以建立一个符号变量,符号字符串可以是常量、该函数可以建立一个符号变量,符号字符串可以是常量、变量、函数或表达式。变量、函数或表达式。 应用应用sym函数还可以定义符号常量,使用符号常量函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的

2、运算不同。进行代数运算时和数值常量进行的运算不同。(2) syms函数函数 函数函数sym一次只能定义一个符号变量,使用不方便。一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数提供了另一个函数syms,一次可以定义多个,一次可以定义多个符号变量。符号变量。syms函数的一般调用格式为:函数的一般调用格式为:syms 符号变量名符号变量名1 符号变量名符号变量名2 符号变量名符号变量名n 用这种格式定义符号变量时不要在变量名上加字符用这种格式定义符号变量时不要在变量名上加字符串分界符串分界符(),变量间用空格而不要用逗号分隔。变量间用空格而不要用逗号分隔。 符号函数中只有一个符

3、号变量时,默认其为自变量。符号函数中只有一个符号变量时,默认其为自变量。例例1. 定义两个符号变量定义两个符号变量x,y,并绘制函数并绘制函数y=exp(-x2)的图形。的图形。 syms x y y=exp(-x2) y = exp(-x2) ezplot(y,-2.5,2.5)ezplot(f,a,b) :二维曲线的绘制命令。 可用来画出函数f在区间a,b上的图形。画出椭圆 的图形,图形区域 。14322yx8 , 85 , 5),(yxezplot(x2/3+y2/4-1,-5,5,-8,8) 例例2.符号变量与数值变量的区别符号变量与数值变量的区别 符号运算和数值运算的主要区别之一,是

4、在参与运算时,符号运算和数值运算的主要区别之一,是在参与运算时,符号运算可以在没有提前赋值的情况下合法地出现在表达式中,符号运算可以在没有提前赋值的情况下合法地出现在表达式中,而数值变量在参与运算时,必须提前赋值。此外,符号而数值变量在参与运算时,必须提前赋值。此外,符号运算可获得任意精度的解,但同时也需要耗费较多的资源。运算可获得任意精度的解,但同时也需要耗费较多的资源。例例3. 比较一个符号变量和一个数值变量占用空间的不同。比较一个符号变量和一个数值变量占用空间的不同。 clear syms A x=pi; whosName Size Bytes Class A 1x1 126 sym o

5、bject x 1x1 8 double array例例4. 转换数值变量为符号变量转换数值变量为符号变量 A=1/3,1/4;1/5,1/7; %定义一个表示二阶矩阵的数值变量定义一个表示二阶矩阵的数值变量 B=sym(A) % 使用函数转换使用函数转换 B = 1/3, 1/4 1/5, 1/7将数值变量转换为符号变量的常用方法是使用函数将数值变量转换为符号变量的常用方法是使用函数sym(A)将符号变量转换为数值变量的方法是使用函数将符号变量转换为数值变量的方法是使用函数double()或或 numeric().例例5. 定义一个分数为符号数,并将符号数转换为数值数。定义一个分数为符号数,

6、并将符号数转换为数值数。 clear x=sym(1/3); double(x)ans = 0.3333符号表达式的创建符号表达式的创建 含有符号对象的表达式称为符号表达式。建立符含有符号对象的表达式称为符号表达式。建立符号表达式有以下方法:号表达式有以下方法:例如例如: f=sym(a*x2+b*x+c)f=sym(表达式表达式)syms 符号变量符号变量1 符号变量符号变量2 f=表达式表达式 f=sym(1/sin(x); finverse(f) ans = asin(1/x)例例6:求:求f=1/sin(x)的反函数的反函数.或:或: syms x; f=1/sin(x); finve

7、rse(f) ans = asin(1/x)例例7:符号多项式运算:符号多项式运算 syms x f=2*x2+3*x-5;g=x2+x-7; h1 = f+g,h2 = expand(f*g) h1 = 3*x2+4*x-12 h2 = 2*x4+5*x3-16*x2-26*x+35 factor(h2) ans = (x-1)*(2*x+5)*(x2+x-7) h2=f*g h2 = (2*x2+3*x-5)*(x2+x-7) 在符号变量表达式中,通常默认在符号变量表达式中,通常默认x x为自由变量,如果符为自由变量,如果符号表达式中不出现号表达式中不出现x,x,则以最靠近则以最靠近x x

8、的字母为自由变量。用函的字母为自由变量。用函数数findsymfindsym()()可以确定表达式中的自由变量。可以确定表达式中的自由变量。findsymfindsym( (表达表达式式) )可得出表达式中所有的符号变量,可得出表达式中所有的符号变量, findsymfindsym( (表达式表达式,n),n)可以得到表达式中最靠近可以得到表达式中最靠近x x的的n n个变量。个变量。例例8:定义一个符号表达式,并从中确定符号变量。:定义一个符号表达式,并从中确定符号变量。 clear syms a b c x f1=a*x2+b*x+c; findsym(f1)ans =a, b, c, x

9、 findsym(f1,1)ans =x findsym(f1,2)ans =x,c符号表达式中变量替换符号表达式中变量替换要将符号表达式中的某一个变量转换为一个数或者另要将符号表达式中的某一个变量转换为一个数或者另一个变量时,可用函数一个变量时,可用函数subs: subs(A, old, new)用用new置换符号表达式置换符号表达式A中的中的old 得到新的符号表达式。得到新的符号表达式。例例9. 求符号多项式的值。求符号多项式的值。 syms a x f=a*x2+3*x+4; f1=subs(f,a,2) f1 = 2*x2+3*x+4 subs(f1,x,5)ans = 69 a=

10、2;x=5;eval(f)ans = 69命令命令eval可计算符号表达式的值可计算符号表达式的值将符号矩阵转化为数值矩阵将符号矩阵转化为数值矩阵调用格式:调用格式:double(A) numeric(Adouble(A) numeric(A) )例例10. A=sym(1/3,2/5;10/7,2/5)A = 1/3, 2/5 10/7, 2/5 numeric(A)ans = 0.3333 0.4000 1.4286 0.4000复杂表达式的化简复杂表达式的化简 syms x y z a b c f=(x+y)*(a+bc)z/(x+a)2 f = (x+y)*(a+bc)z/(a+x)2

11、 pretty(f) 2)()(axbayxzc 5、 化简化简: simplify(P) 其它常用命令其它常用命令:1、降幂排列、降幂排列:collect(P,x);2、 展开展开:expand(P);3、重叠、重叠: horner(P);4、 因式分解因式分解: factor(P);微积分基本运算微积分基本运算limit(f,x,a) 求求f f表达式在表达式在x-ax-a时的极限时的极限limit(f,x,a,right(left) 求单侧极限求单侧极限diff(f) 对缺省变量求微分对缺省变量求微分diff(f,v) 对指定变量对指定变量v求微分求微分int(f) 对对f f表达式的缺

12、省变量求积分表达式的缺省变量求积分int(f,v) 对对f f表达式的表达式的v v变量求积分变量求积分int(f,v,a,b) 对对f f表达式的表达式的v v变量在变量在(a,b(a,b) )区间区间 求定积分求定积分quad(f,v,a,b) 对对f f表达式的表达式的v v变量在变量在(a,b(a,b) )区间区间 求数值积分求数值积分1 1、 极限运算(极限运算(limitlimit命令)命令)格式:格式: limit(fxlimit(fx, v, a), v, a) 求函数求函数fxfx当自变量当自变量vava时的极限时的极限。xexf/111)(xxxx,0,0, 1例例1111

13、、设设,求当,求当时函数的极限。时函数的极限。 syms x %声明符号变量声明符号变量 fx= 1/(1+exp(-1/x); %建立符号函数建立符号函数fx limit(fx,x,1) %求求fx : x-1的极限的极限 limit(fx,x,0, right) %求求fx : x-0的右极限的右极限 limit(fx,x,0, left) %求求fx : x-0的左极限的左极限 limit(fx,x,inf) %求求fx : x-的极限的极限 例例12 、 求极限求极限hxhxhsin)sin(lim0 syms x h %声明符号变量 fx= (sin(x+h)-sin(x)/h li

14、mit(fx,h,0) %求fx : h-0的极限.42lim22xxx symssyms x; x; limit(x-2)/(x2-4),2)limit(x-2)/(x2-4),2)ans= 1/4ans= cosx2 、求导运算(、求导运算(diff命令)命令)格式:格式:求函数求函数fx关于自变量关于自变量v的的n阶导数。阶导数。N缺省时,为一阶导数缺省时,为一阶导数diff(fx, v,n)xexf/111)(例例1313、设设,求,求f (x).3 3 、积分运算(、积分运算(intint命令)命令)格式:格式:求函数求函数fx当自变量从当自变量从a到到b的积分。的积分。int(fx

15、, v, a, b)例例15、求求 syms x y z %声明符号变量,注意变量间必须用空格分开声明符号变量,注意变量间必须用空格分开dxxxy21f1=x*y/(1+x2) ;f2=x+y+z; %建立符号函数建立符号函数int(f1) %对对f1关于变量关于变量x(默认默认)求不定积分求不定积分dyxxyt 0 21int(f1,0, t ) %对对f1关于变量关于变量x(默认默认)在在0,t上求定积分上求定积分, 例例16、计算计算 f = 1/(5+4cos(x) 关于关于x的导数的导数syms xf=1/(5+4*cos(x)ezplot(f)f1=diff(f,x,1)ezplo

16、t(f1)int(f1)-6-4-202460.20.40.60.81x1/(5+4 cos(x)-6-4-20246-1-0.500.51x4/(5+4 cos(x)2 sin(x)例例17、 计算不定积分计算不定积分 dxbxeax)sin(syms xint(exp(a*x)*sin(b*x)g=simplify(ans)g = exp(a*x)*(-b*cos(b*x)+a*sin(b*x)/(a2+b2)diff(g)f=simplify(ans)f = exp(a*x)*sin(b*x)cos()sin(1)sin(22bxbbxaebadxbxeaxax 例例18、绘函数绘函数

17、(a = 1, b = 3 )在在0,3.2上的图形上的图形. 并计算并计算 .bxexfaxsin)( syms a b xf=exp(a*x)*sin(b*x)f1=subs(f,a,1),f1=subs(f1,b,3)ezplot(f1,0,3.22)F1=simplify(int(f1,1,2)double( F1 )ans = -3.180600.511.522.53-5051015xexp(x) sin(3 x) 213sin xdxex4、 级数求和(symsum命令)格式:对数列Sn关于自变量v自a至b求和。symsum(Sn, v, a, b)k131211) 1(13212

18、11kkkaaaa3332 syms a k symsum(1/k,1,inf) %求级数 symsum(1/(k*(k+1),1,inf) %求级数 symsum(a*1/3k,k,0,inf) %求级数syms k nS=symsum(k,k,1,n);S1=simple(S)S=symsum(k2,k,1,n);S2=simple(S)nkSnk 21112212221nkSnk S1 =1/2*n*(n+1)S2 =1/6*n*(n+1)*(2*n+1)5 5、 泰勒展开(泰勒展开(taylortaylor命令)命令)格式:格式: taylor(fx, v, n, v0)求求fx关于自变量关于自变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论