




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB符号语言工具箱应用简介MATLAB具有符号数学工具箱,可以对符号表达式进行运算和处理。基本运算包括复合、化简、微分、积分以及求解代数方程式、微分方程式等。另外,还可以求解线性代数问题,如求解符号矩阵的逆、行列式、正则行的精确结果,找出符号矩阵的特征值而没有由数值计算引入的误差。工具箱还支持可变精度运算,由于符号运算不产生数值运算产生的运算误差,可以在运算最后将数字代入结果,因此避免了中间运算的误差,能够以指定的精度返回结果。符号数学工具箱的功能建立在 Maple软件的基础上。该软件最初是由加拿大的滑铁卢(Waterloo)大学开发的。当用户要求MATLAB进行符号运算时,它就转入Maple去计算并将结果返回到MATLAB命令窗口。因此,MATLAB中的符号运算是MATLAB处理数字功能的自然扩展。1符号表达式符号表达式是包括数字、代数或有理运算和符号变量的MATLAB字符串。它不要求变量有预先确定的值。符号方程式是含有等号的符号表达式。符号矩阵是数组,其元素是符号表达式。符号运算是使用已知的数学规则和给定的符号恒等式求解这些符号方程,它与代数和微积分所学到的求解方法完全一样。创建符号表达式MATLAB用sym(‘’)命令建立符号表达式。符号表达式表示成字符串,用单引号‘’括起来,以与数字变量或运算相区别。否则,这些符号表达式几乎完全像MATLAB命令。表B-1列有几则符号表达式和MATLAB等效表达式的例子。表B-1符号表达式与等效的MATLAB表达式MATLAB符号函数可让用户用多种方法来操作这些表达式。例如,定义符号表达式:y=sym('cos(x)')y=cos(x)对符号表达式进行运算c1=diff(y)%求微分cl=-sin(x)符号常量不含变量的符号表达式叫做符号常量。例如f=sym('2*4-6')%定义符号表达式,不含符号变量f=2*4-6求f的数值(进行数值运算):f1二numeric(f)f1=2进行符号运算:f2=f+1f2=3符号变量当字符表达式中含有多于一个的变量时,只有一个变量是独立变量,其余的文字符号作为常量处理。如果用户不指定哪一个变量是独立变量,MATLAB将基于以下规则选择一个独立变量:•除去i和j的小写字母,表达式中如果没有其他字母,选择x作为独立变量;•如果有多个字符变量,选择在字母顺序中最接近x的字符变量;•如果有相连的字母,选择在字母表中较后的那一个。例如,键入:diff('sin(x)+1')%只含有一个字符变量,该字符就是独立变量ans=cos(x)键入:diff('sin(a)+b')%含有两个字符变量,字母表中靠后的是独立变量ans=1键入:diff('3*y+z') %含有两个字符变量,接近x的是独立变量ans=32符号表达式运算一旦建立了一个符号表达式,符号运算功能可以完成如提取表达式的一部分、合并两个表达式、求表达式的数值以及表达式的加、减、乘、除等运算。提取分子和分母如果表达式是一个有理分式(两个多项式之比),或是可以展开为有理分式(包括那些分母为1的分式)可利用numden命令来提取分子或分母,必要时还可以进行表达式合并。例如,m=sym('x"2') %定义有理分式mm=x"2代数运算很多标准的代数运算可以在符号表达式上执行,命令symadd,symsub,symmul和symdiv可以加、减、乘、除两个表达式,sympow将一个表达式表示为另一个表达式的幕次。例如,f='2*x-5' %定义符号表达式ff=2*x-5g='x"2-x+7' %定义符号表达式gx2-x+7symadd(f,g)%求f+gans=x+2+x"2高级运算符号表达式的高级运算包括表达式的复合、求逆函数、求前n-1项和等。其中,•命令compose把f(x)和g(x)复合成f((g(x))。例如,f=sym('cos(x)')f=cos(x)•命令finverse求表达式的逆函数。表达式f(x)的逆函数g(x)满足g(f(x))=x。命令finverse给出表达式的逆函数,如果解不唯一,就给出警告。例如,p=sym(,e“x,)p=e"x键入:finverse(p)ans=log(x)/log(e)结果相当于ln(x),因为ln(e"x)=x。•命令symsum求表达式的前n—1项和。有下面四种形式:f=sym('x"2')f=x"2键入:symsum(f)%求前x-1项和ans=1/3*x"3T/2*x"2+1/6*x函数变换MATLAB的符号运算功能,可以将符号表达式变换成数值或反之。有些符号函数可返回数值。命令sym可将MATLAB的一般(数值)表达式转换为符号表达式,前面已经作过介绍。函数numeric的功能正好相反,它把一个符号常数(无变量符号表达式)变换为一个数值。例如,numeric('1+2"2')ans=53微分和积分微分和积分是微积分学研究和应用的核心,并广泛地用在许多工程学科。MATLAB符号运算功能可以解决许多这类问题。微分符号表达式的微分利用命令diff完成,有下面四种形式:p='a*x"2+b*x' %定义符号表达式pp=a*x"2+b*x键入:diff(p)%对缺省变量x求微分ans=2*a*x+b积分符号运算的积分命令为int(f),其中f是一个符号表达式。积分的目的是求出另一个符号表达式P,使其微分满足diff(P)=f。积分命令有多种表达形式,例如:f='cos(2*x)+s”2' %建立符号表达式ff=cos(2*x)+s"2键入:int(f) %对x求积分ans=1/2*sin(2*x)+s"2*x4符号表达式画图MATLAB提供了命令ezplot,将符号表达式可视化。对于一个自变量的函数,可视化实际上是求解自变量各点上的函数值并绘图的过程。例如,y='2*x"2-3*x+10'y=2*x"2-3*x+10键入不同命令:ezplot(y) %程序自动选择自变量范围绘图ezplot(y,[-1010]) %确定自变量范围绘图绘图结果如图B-1,图B-2所示,表明了同一个函数不同的自变量范围的图形。图B-1符号表达式画图,自动选择小x范围 图B-2符号表达式画图,给定范围5符号表达式的简化对于一些冗长繁复、难以理解的符号表达式,MATLAB提供了许多方法可以将其进行简化、约分、合并同类项等处理,使表达式变得更简洁易懂。包括:pretty命令,该命令以类似于数学课本上的形式(如有理分式)来显示符号表达式。collect命令可以合并同类项,给出降幕排列形式horner命令可将降幕排列的多项式变成嵌套形式factor命令将表达式分解因式expand命令展开表达式,给出降幕排列形式simplify命令将表达式进行简化Simplify是一个功能强大、通用的工具。它利用各种类型的代数恒等式,包括求和、积分和分数幕、三角、指数和log函数等来简化表达式。simple命令可在简化基础上进一步给出多种简化形式符号表达式的简化是很有用的工具,但由于简化方式不同,有时会产生不同的答案。在符号工具箱内的simple命令可以试用几种方式进行简化,然后选择最简形式。6可变精度算术运算计算机内的数值计算精度受到每次计算结果所保留的位数(字长、字节数)的限制,例如如果保留位数是16位,则第17位以后的数据将被舍去,所以任何数值运算都会引入舍入误差,重复多次的数值运算还会造成累计误差。而MATLAB的符号运算是对符号表达式的运算,结果是非常准确的,因为它们不需要进行数值运算,所以无舍入误差。对符号运算结果用函数eval或numeric求其数值,所以仅在结果转换时会引入一次性的舍入误差。原理上,符号运算可以实现任何数位的运算,但当保留位数增加时,每次计算就需要附加时间和计算机内存。Maple的缺省位数为16位精度,命令digits给出保留位数的当前值。命令digits(n)可以改变缺省位数,其中n是所期望精度的数位。用这种方法增加精度的副作用是,每个随后进行的Maple函数的计算都以新的精度为准,增加了计算时间。计算结果的显示不会改变,只有所用的aple函数的缺省精度受到影响。另外一个函数vpa可以用缺省的精度或任何指定的精度实行单个符号表达式的计算,以同样的精度来显示结果,而使全局的digits参数不变。7符号方程求解用MATLAB所具有的符号工具箱可以求解符号方程。解单个代数方程MATLAB用solve命令求解符号方程。如果表达式不是一个方程式(不含等号),则在求解之前自动将表达式置成等于0。它可以求解f(x)=0或y(x)=f(x)两种形式的代数方程。如果键入命令:solve('a*x"2+b*x+c') %求二次方程的根ans=[1/2/a*(-b+(b"2-4*a*c)”(1/2))][1/2/a*(-b-(b”2-4*a*c)”(1/2))]代数方程组求解solve命令还可以同时求解若干代数方程,语句形式为:solve(sl,s2,…,sn)对缺省变量求解n个方程;solve(s1,s2, ,sn,'v1,v2…vn')对n个未知数v1,v2…vn求解n个方程。解单个微分方程用MATLAB符号工具箱的dsovle命令可以求解微分方程。由于用符号运算解微分方程可以得到解析解,比起一般的数值解,更具有理论研究意义。在微分方程的表达式中,包含微分符号。Dsovle命令中用大写字母D来表示求微分,D2、D3等等表示二次、三次重复求微分。解微分方程组命令dsolve也可同时处理若十个微分方程式。8线性代数和矩阵MATLAB用线性代数求解符号矩阵问题。(1)建立符号矩阵符号矩阵和向量是数组,其元素为符号表达式,用sym命令产生。建立的符号矩阵,用行向量表示。例如,s=sym('[cos(x),a-b;cd,2+x]')s=[cos(x),a-b][cd,2+x](2)矩阵代数运算用symadd,symsub,symmul和symdiv命令,可以进行符号矩阵的加法、减法、乘法、除法等代数运算,用sympow可计算乘幕,用transpose可以给出符号矩阵的转置。线性代数运算在MATLAB5以上的版本中,符号矩阵运算的命令形式与数值矩阵运算命令相同,即同一个命令既可以用于数值矩阵,也可以用于符号矩阵。但得出的解的形式不同,对于数值矩阵,得出数值解;而对于符号矩阵,得出符号表达式。例如,inv(a)求矩阵的逆矩阵。det(a)可计算符号矩阵a的行列式。poly求解矩阵的特征多项式。[v,e]=eig(a)可以求得符号矩阵的特征根和特征向量,但要求矩阵元素是有理数。•[v,j]=jordan(A)可以得到矩阵的约当(Jordan)标准型。得到的v是A的特征向量矩阵,j是特征值的对角矩阵。jacobian(f,x)可求解函数f(x)对x的雅可比(Jacobia)矩阵。其结果的第(i,j)项是df(i)/dx(j)。缺省自变量是t。当f是标量时,f的雅可比值是f的梯度。下面的几个表综合给出了符号工具箱的命令和应用。表B-2 符号表达式的运算
命令说明Numeric符号到数值的转换Pretty显示悦目的符号输出Subs替代子表达式sym建立符号矩阵或表达式symadd符号加法symdiv符号除法symmul符号乘法symop符号运算sympow符号表达式的幕运算symrat有理近似symsub符号减法表B-3符号表达式的简化命令说明colleet合并同类项xepand展开factor因式simple求解最简形式simplify简化symsum和级数表B-4符号多项式命令说明charpoly特征多项式horner嵌套多项式表示numden分子或分母的提取poly2sym多项式向量到符号的转换sym2poly符号到多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药制剂技术模拟试题+参考答案
- 上海中心大厦买卖合同
- 酒店住宿预订取消政策协议
- 钢筋检测考试题及答案
- 浙江国企招聘2025台州温岭市粮食收储有限责任公司招聘14人笔试参考题库附带答案详解
- 2025重庆金纳动力科技有限公司招聘22人笔试参考题库附带答案详解
- 2025浙江宁波交通工程建设集团有限公司招聘30人笔试参考题库附带答案详解
- 2025河北唐山政务服务外包有限公司为服务项目招聘66人笔试参考题库附带答案详解
- 加油站项目投资前景分析报告
- 透彻理解纺织工艺的试题及答案
- 2024年江苏武进经济发展集团招聘笔试参考题库含答案解析
- 星巴克基本管理制度
- 高速公路收费员培训模板案例(个人经验总结分析)
- 苏教版五年级下册数学 第4单元 第10招 分数单位的拆分 知识点梳理重点题型练习课件
- 跨文化交际智慧树知到课后章节答案2023年下齐鲁工业大学
- (完整版)中国书法英文版
- 开关设备检修工(技师)技能鉴定备考试题库及答案
- 宏观经济学期末考试试题(含答案)
- 机械制造工艺学 王先逵课后答案
- 招商计划书内容
- 地铁车站毕业设计
评论
0/150
提交评论