田MATLAB符号运算.ppt
《田MATLAB符号运算.ppt》由会员分享,可在线阅读,更多相关《田MATLAB符号运算.ppt(59页珍藏版)》请在三一文库上搜索。
1、1,2,本章目标,理解符号运算的有关概念 掌握使用符号运算解决符号推导、微积分、方程等问题的方法,3,主要内容,2.8 数值运算与符号运算 2.9 符号变量和符号表达式 2.10 符号表示式的运算 2.11 微积分 2.12 方程求解,4,在前面的章节中,我们已介绍了MATLAB在数值运算的能力,接著我们再说明另一种不同的运算法符号数学 (symbolic mathematic)。在示范如何定义一个符号表示式后,将讨论用以简化数学式的符号函数。除此之外,我 们还要说明如何利用符号运算解微分方程式、积分和微分。,2.8数值运算与符号运算,5,什么是符号数学?顾名思义,符号数学是以符号(如a,b,
2、c,x,y,z)为对象的数学,区别于以数字为对象的MATLAB基本部分。一般我们做运算时多半是以数值做运算,例如一算式1+0.5=1.5就是以数值运算;如果是a除b这个算式 ,我门知道改以分数做运算就可得到正确解,而无因舍未造 成的误差。符号运算即是能以分数做运算,而无须转换成数值再运算。再举一例,我们皆知cos(x)微分得到 sin(x),这样的数学式你是无法用数值做运算。当然符号数学能运算复杂的数学式,这也是我们使用它的目的。,2.8数值运算与符号运算,6,2.8数值运算与符号运算,数值运算在运算前必须先对变量赋值,再参加运算。 符号运算不需要对变量赋值就可运算,运算结果以标准的符号形式表
3、达。,7,在MATLAB中是将一符号表示式储存唯一字串 (character string),即是以二个单引号之内的表示式来定义其为 一符号式,例如: tan(y/x), x3 - 2*x2 + 3, 1/(cos(angle)+2) 的三个式子。,2.8数值运算与符号运算,8,2.9 符号变量和符号表达式,2.9.1建立符号对象 1建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 (1) sym 函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym(符号字符串) 该函数可以建立一个符号量,符号字符串可以是常量、变量、函
4、数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。,9,2.9 符号变量和符号表达式,(2) syms 函数 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(),变量间用空格而不要用逗号分隔。,10,2.9 符号变量和符号表达式,2建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1)利用单引号来生成符号表达式
5、。 (2)用sym函数建立符号表达式。 (3) 使用已经定义的符号变量组成符号表达式。,11,2.9 符号变量和符号表达式,符号变量和符号表达式在使用前必须说明 sym函数 f=sym(a*x2+b*x+c) %创建符号变量 f和一个符号表达式 首先要对符号变量作出定义,此语句就定义了f是一个字符串变量,此后键入的算式y=3*f2+5*f+2, 或 z=sin(f) 就具有了符号函数的意义,y和z也自然成为字符串变量。,12,2.9 符号变量和符号表达式,符号变量和符号表达式在使用前必须说明 syms函数 如果一个数学符号表示式中有多个符号,如 z = a*t2+b*t+c 可以用多个符号变量
6、定义语句放在此式前面。 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 object,13,2.10 符号表示式的运算,2.10.1 算术运算或四则运算 1 符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。 clear f1 = sym(1/(a-b) ); f2 = sym(2*a/(a+b) ); f3 =
7、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),14,2.10 符号表示式的运算,2.10.1算术运算 2符号表达式的提取分子和分母运算 如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为: n,d=numden(s) 该函数提取符号表达式s的分子和分母,分别将它 们存放在n与d中。,15,2.10 符号表示式的运算,
8、2.10.1算术运算 3符号表达式的因式分解与展开 MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为: factor(s):对符号表达式 s 分解因式。 expand(s):对符号表达式 s 进行展开。 collect(s):对符号表达式 s 合并同类项。 collect(s,v):对符号表达式 s 按变量v合并同类项。,16,2.10.2 函数运算,1化简函数 simplify函数:利用代数中的函数规则对表达式进行化简; 2反函数 finverse(f,v) 对指定自变量为v的函数f(v)求反函数 3复合函数 compose(f,g) 求f=f(x)和g=g(y)的复合函
9、数f(g(y) compose(f,g,z) 求 f=f(x)和g=g(y)的复合函数f(g(z) 4表达式替换函数 subs(s) 用赋值语句中给定值替换表达式中所有同名变量 subs (s, old, new) 用符号或数值变量new替换s中的符号变量old,17,例1,factor(f2) %分解因式 ans = (a-1)*(a2+a+1) m,n=numden(f3) %m为分子,n为分母 m = 1+2*a+3*a2+4*a3+5*a4 n = a4 simplify(f4) ans = 1,clear f1 =sym(exp(x)+x)*(x+2); f2 = sym(a3-1)
10、; 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*x,18,clear syms x y finverse(1/tan(x) %求反函数,自变量为x ans = atan(1/x) f = x2+y; finverse(f , y) %求反函数,自变量为y ans = -x2+y clear syms x y z t u; f = 1/(
11、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),例2,19,clear syms a b subs(a+b,a,4) %用4替代a+b中的a ans = 4+b subs(cos(a)+sin(b),a,b,sym(alpha),2) %多重替换 ans = cos(alpha)+sin(2) f=sym(x2+3*x+2) f = x2+3*x+2 subs(f, x, 2) %求解f当x=2时的值 ans = 12,例3
12、,20,2.10.2 函数运算,5符号表达式中变量的确定 MATLAB中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为: findsym( s , n ) 函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。,21,2.10.2 函数运算,6. 符号矩阵 符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。 由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。MATLAB还有一些专用于符号矩阵的函数,这些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 符号 运算
链接地址:https://www.31doc.com/p-3214411.html