MATLAB-简介(5) MATLAB 符号数学1_第1页
MATLAB-简介(5) MATLAB 符号数学1_第2页
MATLAB-简介(5) MATLAB 符号数学1_第3页
MATLAB-简介(5) MATLAB 符号数学1_第4页
MATLAB-简介(5) MATLAB 符号数学1_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB符号数学在前面,我们已介绍了MATLAB在数值运算的能力,接著我们再说明另一种不同的运算法「符号数学」(symbolicmathematic)。符号代数一般我们做运算时多半是以数值做运算,例如一算式1+0.5=1.5就是以数值运算;符号运算即是能以分数做运算,而无须转换成数值再运算。再举一例,我们皆知cos(x)微分得到sin(x),这样的数学式你是无法用数值做运算。当然符号数学能运算复杂的数学式,这也是我们使用它的目的。MATLAB的符号数学是放在一个叫符号数数学的工具箱,它的数学函数其实是来自于Maple(Maple是一个以符号运算为主的数学运算软体)的运算核心。在MATLAB中,符号对象是一种数据结构,包括符号常数、符号变量和符号表达式。符号常数、符号变量、符号函数、符号操作等则是用来形成符号表达式,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析表达式结果。数值表达式的变量必须事先被赋值。符号对象也要定义基本的符号对象,然后才能进行符号运算。创建符号常量Sym(‘常量’)

例:>>a=sym(‘sin(2)’)%创建符号常量

>>a=sym(sin(2))%把常量转换为符号常量Sym(常量,参数)参数作用D返回最接近的十进制数值(默认32位)F返回最接近的浮点表示R返回最接近的有理数型(为系统默认方式),可表示为p/q,p*q,10^q,pi/q,2^q,sqrt(p)形式之一e返回最接近的带有机器浮点误差的有理值例:>>a1=2*sqrt(5)+pi

%创建数值常量>>a2=sym(‘2*sqrt(5)+pi’)%创建符号表达式>>a3=sym(2*sqrt(5)+pi)%按最接近的有理数型表示符号常量>>a4=sym(2*sqrt(5)+pi,’d’)%按最接近的十进制浮点数表示符号常量>a5=‘2*sqrt(5)+pi’%字符串常量>>a31=a3-a1%数值常量和符号常量的计算sym(‘argv’,flagv)%falgv的取值可以为positive,real,和unreal。

>>sym(‘x’,’real’)>>sym(‘y’,’real’)syms(’arg1’,’arg2’,…,flagv)%定义字符串变量为符号变量Symsarg1arg2…,flagv

>>symsabcx>>syms(‘a’,’b’,’c’,’x’)f=sym(‘表达式’)>>z=sym(‘x+iy’)创建符号变量和表达式符号表示式在MATLAB中是将一符号表示式储存唯一字串(characterstring),即是以二个单引号之内的表示式来定义其为一符号式,例如'tan(y/x)','x^3-2*x^2+3','1/(cos(angle)+2)'

的三个式子。在一符号表示式中,需要定义所谓的独立变数。如果未曾事先指定何者为独立变数,MATLAB会自行决定。而它所决定变数的原则如下:它会挑选一个除了i和j之外而在字母上最接近x的小写字元;如果在式子中并无上述字元,则x会被视为预设的独立变数。函数symvar(s)

可以用已决定何者为独立变数。请看以下的例子:expressionSsymvar(S)

symvar('tan(y/x)')xysymvar(‘x^3-2*x^2+3’)xsymvar('1/(cos(angle)+2)')xsymvar('3*a*b-6’)ba自由变量的确定规则-小写字母i和j不能作为自由变量;-符号表达式有多个字符变量,则按照以下顺序选择自由变量:

①x;

②字母表顺序中最接近x的字符变量;

③如果与x相同距离,则在x后面的优先。-大写字母比小写字母都靠后。MATLAB提供了一个函数ezplot

可以画单变数的符号式,其预设的独立变数的范围是-2π,2π。它的语法为ezplot(S),S代表符号变数;另一个相关语法ezplot(S,[xmin,xmax]),则是设定独立变数的范围xmin到xmax。

平面曲线:ezplotMatlab符号函数绘图ezplot(f(x))ezplot(f(x),[a,b])ezplot(f(x,y))ezplot(f(x,y),[a,b,c,d])ezplot(f(x,y),[a,b])例:ezplot(‘sin(x)’)ezplot(‘sin(x)’,[-pi,pi])ezplot(‘x^2+y^2-9’)ezplot(‘x^2+y^2-9’,[-3,3])函数表达式要加单引号。Iffisafunctionofthevariablesuandv(ratherthanxandy),thenthedomainendpointsa,b,c,anddaresortedalphabetically.Thus,

EZPLOT('u^2-v^2-1',[-3,2,-2,3])plotsu^2-v^2-1=0over-3<u<2,-2<v<3.ExamplesEitherofthefollowingcommands,ezplot('erf(x)')ezplot

erf(x)plotagraphoftheerrorfunction::Thestatement,ezplot('sin(x)',[02*pi])createstheplot:>>ezplot('sin(t)','cos(t)')ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi])

符号表达式的书写有多种形式:多项式表达形式;因式形式表达形式嵌套形式表达形式符号运算中有许多操作指令,如collect(合并同类项)、expand(对指定项展开)、factor(进行因式或因子分解)、horner(转换成嵌套形式)、numden(提取公因式)、simplify(恒等式简化)、pretty(习惯方式显示),simple等。注:EXPR可以是符号表达式或矩阵。在这种情况下,这些指令将对该矩阵的元素逐个进行操作。符号表达式的操作以下的函数用来简化数学式,如展开、化简或合并同类项。相关的指令有:collect(S)合并S的同类项collect(S,'v')合并S的同类项,是以v为独立变数expand(S)

将S表示式展开factor(S)

还原S的因式(factorization)simple(S)

如果可能的话,将S表示式再做简化simplify(S)

利用Maple简化法则化简S表示式我们来看一些例子

>>symsxy>>factor(x^3-1)ans=(x-1)*(x^2+x+1)>>expand((x-3)^2+(y-4)^2

)ans=x^2-6*x+25+y^2-8*y>>collect((x-3)^2+(y-4)^2

)ans=x^2-6*x+9+(y-4)^2>>collect((x-3)^2+(y-4)^2,’y’)

ans=y^2-8*y+(x-3)^2+16>>S3='sqrt(a^4*b^7)'>>S4='14*x^2/(22*x*y)';

>>simplify(sqrt(a^4*b^7))ans=a^2*b^(7/2)>>simple(14*x^2/(22*x*y))ans=7/11*x/y符号表示式的运算以下列出几个常用的符号运算函数,它们可以将一符号数学式转换成另一种型态。分列如下:horner(S)

将S转换成巢状表示式numden(S)

将S的有理数表示成分子和分母的形式numeric(S)

将S改成数值式(S不能含有任何符号变数)poly2sym(c)

转换多项式系数向量c为符号多项式pretty(S)

将S显示成数学式sym2poly(S)

转换S为多项式系数向量symadd(A,B)执行A+B的符号加法symdiv(A,B)

执行A+B的符号除法symmul(A,B)

执行A+B的符号乘法sympow(S,p)

执行S^p的符号次方运算symsub(A,B)

执行A+B的符号减法我们接著看几个应用上述函数的例子>>p2='3*y./(y+2)';>>p1='1/(y-3)';>>p3='(y+4)*(y-3)*y';

>>symmul('1/(y-3)'

,'(y+4)*(y-3)*y’)ans=(y+4)*y>>sympow(p2,3)ans=27*y^3/(y+2)^3>>p1='1/(y-3)';>>p2='3*y/(y+2)';>>p3='(y+4)*(y-3)*y';

>>symadd(p1,p2)ans=1/(y-3)+3*y/(y+2)>>[num,den]=numden(symadd(p1,p2))ans=[-8*y+2+3*y,(y-3)*(y+2)]>>horner(symadd(p3,'1')ans=1+(-12+(1+y)*y)*yTaylorseriesexpansion.TAYLOR(f)isthefifthorderMaclaurinpolynomialapproximationtof.Threeadditionalparameterscanbespecified,inalmostanyorder.TAYLOR(f,n)isthe(n-1)-storderMaclaurinpolynomial.TAYLOR(f,a)istheTaylorpolynomialapproximationaboutpointa.TAYLOR(f,x)usestheindependentvariablexinsteadofFINDSYM(f).Taylor级数展开Examples:

taylor(exp(-x))returns1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5taylor(log(x),6,1)returnsx-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4+1/5*(x-1)^5taylor(sin(x),pi/2,6)returns1-1/2*(x-1/2*pi)^2+1/24*(x-1/2*pi)^4taylor(x^t,3,t)returns1+log(x)*t+1/2*log(x)^2*t^21练习Matlab

ezplot

画单变数的符号式2练习M

温馨提示

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

评论

0/150

提交评论