ImageVerifierCode 换一换
格式:PPT , 页数:61 ,大小:247.50KB ,
资源ID:2667802      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2667802.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB中的符号运算.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB中的符号运算.ppt

1、MATLABMATLAB中的符号运算中的符号运算2004.8.42004.8.4MATLAB所具有的符号数学工具箱与其它所有工具不同,它适用于广泛的用途,而不是针对一些特殊专业或专业分支。另外,MATLAB符号数学工具箱与其它的工具箱区别还因为它使用字符串来进行符号分析,而不是基于数组的数值分析。符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有复合、简化、微分、积分以及求解代数方程和微分方程的工具。另外还有一些用于线性代数的工具,求解逆、行列式、正则型式的精确结果,找出符号矩阵的特征值而无由数值计算引入的误差。工具箱还支持可变精度运算,即支持符号计算并能以指定的精度返回结果

2、。符号数学工具箱中的工具是建立在功能强大的Maple之上。它最初是由加拿大的滑铁卢(Waterloo)大学开发的。当要求MATLAB进行符号运算时,它就请求Maple去计算并将结果返回到MATLAB命令窗口。因此,在MATLAB中的符号运算是MATLAB处理数字的自然扩展。符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符串数组。不要求变量有预先确定的值,符号方程式是含有等号的符号表达式。符号算术是使用已知的规则和给定符号恒等式求解这些符号方程的实践,它与代数和微积分所学到的求解方法完全一样。符号矩阵是数组,其元素是符号表达式。符号表达式1/(2*xn)y=1/sqrt(2*x

3、)cos(x2)-sin(2*x)M=sym(a,b;c,d)符号表达式MATLAB表达式f=int(x3/sqrt(1-x),a,b)MATLAB符号函数可用多种方法来操作这些表达式diff(cos(x)ans=-sin(x)%differentiate cos(x)with respect to xM=sym(a,b;c,d )M=a,b c,d%create a symbolic matrix Mdeterm(M)ans=a*d-b*c%find the determinant of the symbolic matrix上面的第一个例子的符号表达式是用单引号以隐含方式定义的。它告诉MA

4、TLAB cos(x)是一个字符串并说明diff(cosx )是一个符号表达式而不是数字表达式;而在第二个例子中,用函数sym显式地告诉MATLAB M=sym(a,b;c,d )是一符号表达式。在MATLAB可以自己确定变量类型的场合下,通常不要求显式函数sym。符号变量 当字符表达式中含有多于一个的变量时,只有一个变量是独立变量。如果不告诉MATLAB哪一个变量是独立变量,MATLAB将基于以下规则选择一个:在符号表达式中缺省的独立变量是唯一的,除去i和j的小写字母,不是单词的一部分。如果没有这种字母,就选择x作为独立变量。如字符不是唯一的,就选择在字母顺序中最接近x的字母。如果有相连的字

5、母,就选择在字母表中较后的那一个。缺省的独立变量,有时称作自由变量,在表达式 1/(5+cos(x)中是 x x ;在 3*y+z 中是 y y ;在 a+sin(t)是 t t 。在表式 sin(pi/4)-cos(3/5)中自由符号变量是 x x ,因为此式是一个符号常数无符号变量。可利用函数symvar询问MATLAB在符号表达式中哪一个变量它认为是独立变量。symvar(a*x+y*)%find the default symbolic variableans=xsymvar(a*t+s/(u+3)%u is the closest to x ans=usymvar(sin(omega

6、)%omega is not a singlee character。ans=xsymvar(3*i+4*j )%i and j are equel to sqrt(-1)ans=xsymvar(y+3*s ,t )ans=s%find the variable closest to t rather than x如果利用规则symvarsymvar不能找到一个缺省独立变量,它便假定无独立变量并返回x。这一结论对含有由多个字母组成的变量,如:alpha或s2的表达式,或不含变量的符号常数均成立。如果需要,绝大多数命令都使用用户选项以指定独立变量。diff(xn )%differentiate

7、with respect to the default variable x ans=xn*n/x diff(xn ,n )%differentiate xn with respect to n ans=xn*log(x)diff(sin(omega)%differentiate using the default variables(x)ans=0 diff(sin(omega),omega )%specify the independent variable ans=cos(omega)符号表达式运算 一旦创建了一个符号表达式,或许想以某些方式改变它;也许希望提取表达式的一部分,合并两个表

8、达式或求得表达的数值。有许多符号工具可以帮助完成这些任务。所有符号函数(很少特殊例外的情况)作用到符号表达式和符号数组,并返回符号表达式或数组。其结果有时可能看起来象一个数字,但事实上它是一个内部用字符串表示的一个符号表达式。可以运用MATLAB函数isstrisstr来找出像似数字的表达式是否真是一个整数或是一个字符串。如果表达式是一个有理分式(两个多项式之比),或是可以展开为有理分式(包括哪些分母为1的分式),可利用numdennumden来提取分子或分母。例如,给定如下的表达式:提取分子和分母在必要时,numdennumden将表达式合并、有理化并返回所得的分子和分母。进行这项运算的MA

9、TLAB语句是:m=x2 m=x2%create a simple expression m=m=x2x2nn,d=d=numdennumden(m)(m)%extract the numerator and denominatorn=x2n=x2d=1d=1f=a*x2/(b-x)f=a*x2/(b-x)%create a rational expressionf=a*x2/(b-x)f=a*x2/(b-x)n n,d=d=numdennumden(f)(f)%extract the numerator and denominatorn=n=a*x2a*x2d=d=b-xb-xg=3/2*x

10、2+2/3*x-3/5%rationalize and extract the partsg=3/2*x2+2/3*x-3/5n,d=numden(g)n=45*x2+20*x-18d=30h=(x2+3)/(2*x-1)+3*x/(x-1)%the sum of rational polynomialsh=(x2+3)/(2*x-1)+3*x/(x-1)n,d=numden(h)%rationalize and extractn=x3+5*x2-3d=(2*x-1)*(x-1)很多标准的代数运算可以在符号表达式上执行,函数symadd、symsub、symlnul和symdiv为加、减、乘、

11、除两个表达式,sympow将一个表达式上升为另一个表达式的幂次。标准代数运算例如:给定两个函数f=2*x2+3*x-5%definethesymbolicexpressionf=2*x2+3*x-5g=x2-x+7g=x2-x+7symadd(f,g)%findanexpressionforf+gans=3*x2+2*x+2symsub(f,g)%findanexpressionforf-gans=x2+4*x-12symmul(f,g)%findanexpressionforf*gans=(2*x2+3*x-5)*(x2-x+7)symdiv(f,g)%findanexpressionfor

12、f/gans=(2*x2+3*x-5)/(x2-x+7)sympow(f,3*x)%findanexpressionforans=(2*x2+3*x-5)3*变换函数函数symsym可获取一个数字参量并将其转换为符号表达式。函数numnericnumneric的功能正好相反,它把一个符号常数(无变量符号表达式)变换为一个数值。phi=(1+sqrt(5)/2%the golden ratiophi=(1+sqrt(5)/2%convert to a numeric valuenumeric(phi)ans=1.6180符号函数sym2polysym2poly将符号多项式变换成它的MATLAB等

13、价系数向量。函数poly2syrnpoly2syrn功能正好相反,并让用户指定用于所得结果表达式中的变量。f=2*x2+x3-3*x+5%f is the symbolic polynomialsf=2*x2+x3-3*x+5n=sym2poly(f)%extract eht numeric coefficient vectorn=1 2 -3 5poly2sym(n)%recreate the polynomials in x(the default)ans=2*x2+x3-3*x+5poly2sym(n,s)%recreate the polynomials in sans=s3+2*s2

14、-3*s+5变量替换 假设有一个以x为变量的符号表达式,并希望将变量转换为y。MATLAB提供一个工具称作subssubs,以便在符号表达式中进行变量替换。其格式为subssubs(f f,newnew,old)old),其中f是符号表达式,newnew和oldold是字符、字符串或其它符号表达式。新字符串将代替表达式f中各个旧字符串。f=a*x2+b*x+c%create a function f(x)f=a*x2+b*x+csubs(f,s,x)%substitute s for x in the expression f ans=a*s2+b*s+c subs(f,alpha,a)%su

15、bstitute alpha for a in f ans=alpha*x2+b*x+cg=3*x2+5*x-4%create another functiong=3*x2+5*x-4h=subs(g,2,x)%substitute 2 for x in g h=18isstr(h)%show that the result is a symbolic expression ans=1微分和积分 微分和积分是微积分学研究和应用的核心,并广泛地用在许多工程学科。MATLAB符号工具能帮助解决许多这类问题。微分导数(包括偏导数)函数 diffdiff格式 diff(S,v)、diff(S,sym(

16、v)%对表达式S中指定符号变量v计算S的1阶导数。diff(S)%对表达式S中的符号变量v计算S的1阶导数,其中v=findsym(S)。diff(S,n)%对表达式S中的符号变量v计算S的n阶导数,其中v=findsym(S)。diff(S,v,n)%对表达式S中指定的符号变量v计算S的n阶导数。syms x y tD1=diff(sin(x2)*y2,2)%计算D2=diff(D1,y)%计算D3=diff(t6,6)计算结果为:D1=-4*sin(x2)*x2*y2+2*cos(x2)*y2D2=-8*sin(x2)*x2*y+4*cos(x2)*yD3=720符号表达式的微分以四种形式利用函数diffdiff:f=a*x3+x2-b*x-c%define a symbolic expressionf=a*x3+x2-b*x-cdiff(f)%differentiate with respect to the default variable xans=3*a*x2+2*x-bdiff(f,a)%differentiate with respect to aans=x3diff(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1