田MATLAB符号运算.ppt
《田MATLAB符号运算.ppt》由会员分享,可在线阅读,更多相关《田MATLAB符号运算.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、田MATLAB符号运算 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章目标l理解符号运算的有关概念理解符号运算的有关概念l掌掌握握使使用用符符号号运运算算解解决决符符号号推推导导、微微积积分分、方方程等问题的方法程等问题的方法2主要内容l2.8 数值运算与符号运算数值运算与符号运算l2.9 符号变量和符号表达式符号变量和符号表达式l2.10 符号表示式的运算符号表示式的运算l2.11 微积分微积分l2.12 方程求解方程求解3l在前面的章节中,我们已介绍了在前
2、面的章节中,我们已介绍了MATLAB在数在数值运算的能力,接著我们再说明另一种不同的值运算的能力,接著我们再说明另一种不同的运算法运算法符号数学符号数学(symbolic mathematic)。在示范如何定义一个符号表示式后,将讨论用在示范如何定义一个符号表示式后,将讨论用以简化数学式的符号函数。除此之外,我以简化数学式的符号函数。除此之外,我 们还们还要说明如何利用符号运算解微分方程式、积分要说明如何利用符号运算解微分方程式、积分和微分。和微分。2.8数值运算与符号运算4l什么是符号数学?顾名思义,符号数学是以符什么是符号数学?顾名思义,符号数学是以符号号(如如a,b,c,x,y,z)为对
3、象的数学,区别于为对象的数学,区别于以数字为对象的以数字为对象的MATLAB基本部分。一般我们基本部分。一般我们做运算时多半是以数值做运算,例如一算式做运算时多半是以数值做运算,例如一算式1+0.5=1.5就是以数值运算;如果是就是以数值运算;如果是a除除b这个算这个算式式,我门知道改以分数做运算就可得到正确解,我门知道改以分数做运算就可得到正确解,而无因舍未造而无因舍未造 成的误差。符号运算即是能以分成的误差。符号运算即是能以分数做运算,而无须转换成数值再运算。再举一数做运算,而无须转换成数值再运算。再举一例,我们皆知例,我们皆知cos(x)微分得到微分得到 sin(x),这样的数,这样的数
4、学式你是无法用数值做运算。当然符号数学能学式你是无法用数值做运算。当然符号数学能运算复杂的数学式,这也是我们使用它的目的。运算复杂的数学式,这也是我们使用它的目的。2.8数值运算与符号运算52.8数值运算与符号运算l数值运算在运算前必须先对变量赋值,再参加数值运算在运算前必须先对变量赋值,再参加运算。运算。l符号运算不需要对变量赋值就可运算,运算结符号运算不需要对变量赋值就可运算,运算结果以标准的符号形式表达。果以标准的符号形式表达。6l在在MATLAB中是将一符号表示式储存唯中是将一符号表示式储存唯一字串一字串(character string),即是以,即是以二个单二个单引号之内的表示式引
5、号之内的表示式来定义其为来定义其为 一符号式,一符号式,例如:例如:ltan(y/x),lx3-2*x2+3,l1/(cos(angle)+2)的三个式子。的三个式子。2.8数值运算与符号运算72.9 符号变量和符号表达式l2.9.1建立符号对象建立符号对象1建立符号变量和符号常量建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:提供了两个建立符号对象的函数:sym和和syms,两个函数的用法不同。两个函数的用法不同。(1)sym 函数函数 sym函数用来建立单个符号量,一般调用格式为:函数用来建立单个符号量,一般调用格式为:符号量名符号量名=sym(符号字符串符号字符串)该函
6、数可以建立一个符号量,符号字符串可以是常量、变该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。量、函数或表达式。应用应用sym函数还可以定义符号常量,使用符号常量进行函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。代数运算时和数值常量进行的运算不同。82.9 符号变量和符号表达式(2)syms 函数函数 函数函数sym一次只能定义一个符号变量,使用一次只能定义一个符号变量,使用不方便。不方便。MATLAB提供了另一个函数提供了另一个函数syms,一一次可以定义次可以定义多个符号变量多个符号变量。syms函数的一般调用函数的一般调用格式为:格式为:
7、syms 符号变量名符号变量名1 符号变量名符号变量名2 符号变符号变量名量名n 用这种格式定义符号变量时不要在变量名上用这种格式定义符号变量时不要在变量名上加字符串分界符加字符串分界符(),变量间用,变量间用空格空格而不要用而不要用逗逗号号分隔。分隔。92.9 符号变量和符号表达式2建立符号表达式建立符号表达式 含有符号对象的表达式称为含有符号对象的表达式称为符号表达式符号表达式。建。建立符号表达式有以下立符号表达式有以下3种方法:种方法:(1)利用单引号来生成符号表达式。利用单引号来生成符号表达式。(2)用用sym函数建立符号表达式。函数建立符号表达式。(3)使用已经定义的符号变量组成符号
8、表达式。使用已经定义的符号变量组成符号表达式。102.9 符号变量和符号表达式l符号变量和符号表达式在符号变量和符号表达式在使用前使用前必须说明必须说明lsym函数函数f=sym(a*x2+b*x+c)%创建符号变量创建符号变量 f和一个符号表达式和一个符号表达式l首先要对符号变量作出定义,此语句就定义了首先要对符号变量作出定义,此语句就定义了f是是一个字符串变量,此后键入的算式一个字符串变量,此后键入的算式y=3*f2+5*f+2,或或 z=sin(f)就具有了符号函数的意义,就具有了符号函数的意义,y和和z也自然成为字符串也自然成为字符串变量。变量。112.9 符号变量和符号表达式l符号变
9、量和符号表达式在符号变量和符号表达式在使用前使用前必须说明必须说明lsyms函数函数 如果一个数学符号表示式中有多个符号,如如果一个数学符号表示式中有多个符号,如 z=a*t2+b*t+c 可以用多个符号变量定义语句放在此可以用多个符号变量定义语句放在此式前面。式前面。clear syms a b c t whos Name Size Bytes Class a 1x1 126 sym object b 1x1 126 sym object c 1x1 126 sym object t 1x1 126 sym object122.10 符号表示式的运算l2.10.1 算术运算或四则运算算术运算
10、或四则运算 1 符号表达式的加、减、乘、除运算可分别由函数符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和和symdiv来实现,幂运算可以由来实现,幂运算可以由sympow来实现。来实现。clear f1=sym(1/(a-b);f2=sym(2*a/(a+b);f3=sym(a+1)*(b-1)*(a-b);f1+f2%符号和符号和ans=1/(a-b)+2*a/(a+b)f1*f3%符号积符号积ans=(a+1)*(b-1)f1/f3%符号商符号商ans=1/(a-b)2/(a+1)/(b-1)132.10 符号表示式的运算l2.10.1算术运算算术运算
11、2符号表达式的提取符号表达式的提取分子分子和和分母分母运算运算 如果符号表达式是一个有理分式或可以展开如果符号表达式是一个有理分式或可以展开为有理分式,可利用为有理分式,可利用numden函数来提取符号表函数来提取符号表达式中的分子或分母。其一般调用格式为:达式中的分子或分母。其一般调用格式为:n,d=numden(s)该函数提取符号表达式该函数提取符号表达式s的分子和分母,分别将它的分子和分母,分别将它们存放在们存放在n与与d中。中。142.10 符号表示式的运算l2.10.1算术运算算术运算3符号表达式的因式分解与展开符号表达式的因式分解与展开MATLAB提供了符号表达式的因式分解与展开的
12、提供了符号表达式的因式分解与展开的函数,函数的调用格式为:函数,函数的调用格式为:factor(s):对符号表达式对符号表达式 s 分解因式分解因式。expand(s):对符号表达式对符号表达式 s 进行进行展开展开。collect(s):对符号表达式对符号表达式 s 合并同类项合并同类项。collect(s,v):对符号表达式对符号表达式 s 按变量按变量v合并同类项合并同类项。152.10.2 函数运算l1化简函数化简函数lsimplify函数:利用代数中的函数规则对表达式进行化简;函数:利用代数中的函数规则对表达式进行化简;l2反函数反函数lfinverse(f,v)对指定自变量为对指定
13、自变量为v的函数的函数f(v)求反函数求反函数l3复合函数复合函数lcompose(f,g)求求f=f(x)和和g=g(y)的复合函数的复合函数f(g(y)lcompose(f,g,z)求求 f=f(x)和和g=g(y)的复合函数的复合函数f(g(z)l4表达式替换函数表达式替换函数lsubs(s)用赋值语句中给定值替换表达式中所有同名变量用赋值语句中给定值替换表达式中所有同名变量 lsubs(s,old,new)用符号或数值变量用符号或数值变量new替换替换s中的符号变量中的符号变量old16例1factor(f2)%分解因式分解因式ans=(a-1)*(a2+a+1)m,n=numden(
14、f3)%m为分为分子,子,n为分母为分母m=1+2*a+3*a2+4*a3+5*a4n=a4 simplify(f4)ans=1clear f1=sym(exp(x)+x)*(x+2);f2=sym(a3-1);f3=sym(1/a4+2/a3+3/a2+4/a+5);f4=sym(sin(x)2+cos(x)2);collect(f1)%合并同类项合并同类项ans=x2+(exp(x)+2)*x+2*exp(x)expand(f1)%展开展开ans=exp(x)*x+2*exp(x)+x2+2*x17clearsyms x yfinverse(1/tan(x)%求反函数,自变量为求反函数,自
15、变量为x ans=atan(1/x)f=x2+y;finverse(f,y)%求反函数,自变量为求反函数,自变量为yans=-x2+y clearsyms x y z t u;f=1/(1+x2);g=sin(y);h=xt;p=exp(-y/u);compose(f,g)%求求f=f(x)和和 g=g(y)的复合函数的复合函数f(g(y)ans=1/(1+sin(y)2)例218clearsyms a bsubs(a+b,a,4)%用用4替代替代a+b中的中的aans=4+bsubs(cos(a)+sin(b),a,b,sym(alpha),2)%多重替换多重替换ans=cos(alpha)
16、+sin(2)f=sym(x2+3*x+2)f=x2+3*x+2 subs(f,x,2)%求解求解f当当x=2时的值时的值ans=12例3192.10.2 函数运算l5符号表达式中变量的确定符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常量。中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:的符号变量。该函数的调用格式为:findsym(s,n)函数返回符号表达式函数返回符号表达式s中的中的n个符号变量,若没有个符号变量,若没有指定指定n,则返回则返回s中的全部符号变量。中的全
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 符号 运算
限制150内