第11章MATLAB71符号计算_第1页
第11章MATLAB71符号计算_第2页
第11章MATLAB71符号计算_第3页
第11章MATLAB71符号计算_第4页
第11章MATLAB71符号计算_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、技术凝聚实力技术凝聚实力专业创新出版专业创新出版第11章 符号计算l与一般的数值计算不同,符号计算是对字符串符号进行分析和运算,为了便于理解,读者可以将符号计算看作“由计算机实现的数学公式推导”。进行符号计算时,matlab负责将计算请求提交给其内置的maple组件并返回maple的计算结果。matlab的符号计算历经多次的改进和完善,其功能已经非常强大,尤其是在大规模的简单公式推导、逻辑推导等应用中有重要应用。本章介绍的内容如下。l符合对象的创建 符号函数l符号对象的复合和化简 符号对象的运算l符号矩阵l符号微积分l符号方程求解技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.1 符号类

2、型与数值类型l符号对象(symbolic objet)是matlab符号工具箱中定义的一种新的数据类型。与一般的简单数值类型(如logical、int、float、double等)不同,符号对象是一种保存了符号字符串表示的复杂数据结构。本节主要讨论符号类型与普通数值类型的差别。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.2 符号对象及其创建lmatlab符号工具箱定义的数据类型符号对象(symbolic object),是一种存储了符号字符串表示的复杂数据结构。matlab利用符号对象表示符号变量、符号表达式、符号函数、符号矩阵,本节介绍符号变量、符号表达式的创建,至于符号函数和符号

3、矩阵,将分别在11.3、11.5节进行详细介绍。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.2.1 创建符号变量lsym函数可用于创建符号常量和变量,其调用格式为:lsym_variable = sym(sym_expression)l该指令创建符号变量(或常量)sym_variable,其中sym_expression为符号变量的字符串表示。如果sym_expression为常数(例如pi、1、2.01等),则函数返回符号常量;如果sym_expression是符合命名规则的字符串(即该字符串只能包含数字、英文字母和下画线,且不能以数字开头),则函数返回符号变量。技术凝聚实力技术凝

4、聚实力专业创新出版专业创新出版11.2.2 创建符号表达式l符号表达式是符号变量或常量的组合,也可以将符号变量和符号常量认为是符号表达式。符号表达式的创建,依然使用函数sym,其调用格式为:lsym_variable = sym(sym_expression)l这里的输入字符串参数sym_expression与11.2.1中有所不同,它是由多个子字符串通过数值运算符组合而成的,每个子字符串或者是符合命名规则的字符串或者是数值常量。也可以事先利用sym或syms创建符号变量和常量,然后通过数值运算符、支持符号计算的函数等将这些符号变量或常量组合起来构成符号表达式。技术凝聚实力技术凝聚实力专业创新

5、出版专业创新出版11.2.3 符号对象与数值的转换lmatlab符号计算工具箱提供如下三类运算操作:lnumberic,即matlab浮点运算;lrational,即maple符号运算;lvpa,即maple精度可变运算。l浮点运算是三者中运算速度最快、内存使用最少的一种,但其结果的精度也较低,format可以控制输出结果的位数,但其内部表示仍然是8字节浮点表示,也就是说format不能改变结果的精度。符号运算的结果是精确、无近似的,但运算速度慢、消耗内存最多。vpa是浮点运算与符号运算的折中,用户可以通过函数digits控制计算结果的精度,默认情况下digits = 32。技术凝聚实力技术凝

6、聚实力专业创新出版专业创新出版11.3 符号函数l显而易见,符号函数与通常的数值函数有很大的不同。本节从matlab中符号函数的创建开始,分别介绍了符号函数的复合、反函数等内容,然后给出了一些在理论和实际中具有重要应用的符号函数。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.3.1 创建符号函数l可以通过下面两种方法创建符号函数:l符号表达式;lm文件。l利用符号表达式创建符号函数的方法在例11.4中已经介绍,这种方法适合于创建一些比较简单的函数,对于比较复杂的符号函数的创建,应该利用m文件。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.3.2 复合函数l已知函数、,复合函数定

7、义为。matlab符号计算工具箱提供函数compose用于符号函数复合,其调用格式为:lcompose(f,g)lcompose(f,g,z)lcompose(f,g,x,z)lcompose(f,g,x,y,z)技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.3.3 反函数lmatlab符号工具箱的函数finverse用于计算函数的反函数,其调用格式为:lg = finverse(f)lg = finverse(f,v)l其中f为符号表达式,该函数求f关于v的反函数,如果未指定v,那么v = findsym(f)。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.3.4 特殊符号函

8、数lmatlab符号工具箱对一些重要的数学函数提供了支持,技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.4 符号表达式的复合和化简l符号表达式的显示、展开、分解、化简等是符号运算的重要内容,matlab符号工具箱对这些内容提供了强大的支持。本节将详细介绍matlab符号工具相中符号表达式的显示、展开、分解、替换、化简等操作。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.4.1 显示符号表达式lmatlab显示符号表达式时,默认的方式是matlab式的显示,例如在matlab命令窗口输入以下代码。l f = a*x2 + b*x + cl运行结果如下。lf =la*x2+b*x+

9、c技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.4.2 展开、分解及化简符号表达式l对数学表达式的展开、分解、化简是学习数学和应用数学中经常要做的工作,matlab符号工具箱这些工作提供了强大的支持,下面列出了一些相关的函数及其使用方法。l函数collect用于同类项合并,其调用格式为:lcollect(f, s)lcollect(f)lcollect(f, s)将符号表达式f看作符号变量s的多项式(如果未指定s,则默认s为findsym(f, 1)),对具有相同阶数的项进行合并。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.4.3 符号表达式替换l符号表达式的替换有两种,一是

10、利用符号变量或符号表达式替换目标符号表达式中的符号变量(包括符号常量),利用函数subs实现;二是用符号变量替代目标符号表达式中的某个子符号表达式,利用函数subexpr实现。函数subs的一般调用格式为:lr = subs(s) lr = subs(s, new)lr = subs(s,old,new)技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5 符号矩阵l符号矩阵是数值矩阵的扩展,符号矩阵的每个元素为符号表达式。与数值矩阵一样,符号矩阵也有代数运算、逻辑运算等;还可以求符号矩阵的奇异值,对符号进行奇异值分解。对于符号方阵,可以求行列式、特征值;符号方阵可逆时,还可以求符号方阵的

11、逆。本节涉及的许多符号矩阵运算与数值矩阵相同,读者在学习本节内容时可以参考第7章。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.1 创建符号矩阵lmatlab符号工具箱中没有提供专门用于创建符号矩阵的函数,用户可以通过以下三种方式创建符号矩阵:l直接输入符号矩阵的各个元素符号表达式;l利用sym函数将数值矩阵转化为符号矩阵,这种方法只能创建符号常量矩阵;l简单符号矩阵的组合创建复杂符号矩阵。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.2 符号矩阵的代数运算l同数值矩阵一样,符号矩阵也能进行加、减、乘、除四则运算,并且具有与数值矩阵几乎相同的运算规则,只是矩阵元素由数值

12、变成了符号表达式。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.3 符号矩阵的逻辑运算lmatlab符号工具箱对符号的逻辑运算支持很有限,仅支持=和=。l符号的逻辑运算。 l运行结果如下。l? function gt is not defined for values of class sym.lerror in = gt at 16lbuiltin(gt, varargin:);技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.4 符号矩阵的行列式l符号矩阵的行列式与数值矩阵的行列式具有相同的定义,只是符号矩阵的行列式为符号函数。同样,行列式仅对符号方阵才有意义。lmat

13、lab利用同名函数det计算符号矩阵的行列式,该函数在符号工具箱中被重载。l符号矩阵的行列式。l矩阵 被称为单位旋转矩阵,试求该矩阵的行列式。 sincoscossinxxxx技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.5 符号矩阵的逆l对阶符号方阵,满足的符号方阵称为的逆,记为。其中为单位符号方阵,对角线上元素为符号常量,其余为0。lmatlab符号工具箱提供同名函数inv用于计算符号方阵的逆,这里的inv在符号工具箱中被重载。下面是符号矩阵求逆应用的例子。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.6 符号矩阵的秩l符号矩阵秩的含义与数值矩阵相似,对符号矩阵,取

14、其任意行列得到的阶子式, 的秩定义为使“至少有一个阶子式的行列式不为0”的最大,即所有的阶子式行列式为0,且至少有一个阶子式行列式不为0。lmatlab提供同名函数rank计算符号矩阵的秩,这里的rank在符号工具箱中被重载。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.7 符号矩阵的特征分解l特征值反映了符号矩阵的一些重要的性质,对符号矩阵特征值的分析在信号处理、自动控制中有重要的应用。符号方阵的特征值是满足的,其中为单位符号矩阵。由于即为a的特征多项式,所以的特征值即为特征多项式的根。回忆第10章中利用函数poly求数值矩阵的特征多项式,事实上,在符号工具箱中该函数被重载,利用

15、poly(a)可以得到符号方阵的特征多项式,对特征多项式求根:lsolve(poly(a)技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.5.8 符号矩阵的svd分解l关于符号矩阵svd分解的相关概念,可以参考第7章数值矩阵svd分解,这里不再赘述。需要强调的是,matlab符号工具箱仅支持常量符号矩阵(元素为符号常量的符号矩阵)的svd分解,这其中的原因可能是对一般的符号矩阵来说,svd分解过于复杂而变得不可用。lmatlab中利用同名函数svd对符号矩阵进行svd分解,其一般的调用格式为:lu,s,v = svd(a)技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.6 符号微积

16、分l第7章已经介绍了数值微积分,数值微积分的适用范围广泛,但对问题的描述一般是近似的,而符号微积分可能得到问题的精确描述,因此在条件允许的情况下利用符号微积分解决理论和实际问题是一个很好的选择。本节内容包括符号的极限、微分、积分、taylor级数以及级数求和等内容。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.6.1 极限l极限是当变量无限接近特定值时函数的值,例如,一元函数的导数的定义为下面的极限:。matlab符号工具箱利用函数limit计算符号极限,技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.6.2 微分技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.6.3 积分l函数积分是微分的反运算,对符号函数,的积分是使的,用 表示。同diff相似,如果为多变量符号表达式,用户应该指定对某个自变量求积分,即f = int(f, v);如果未指定,则v设定为由函数fingsym(f, 1)决定的默认符号变量。技术凝聚实力技术凝聚实力专业创新出版专业创新出版11.6.4 taylor展开技术凝聚实力技术凝聚实力专业创新出版专业创新出版11

温馨提示

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

评论

0/150

提交评论