您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第11章__MATLAB7[1].0_符号计算
技术凝聚实力专业创新出版第11章符号计算与一般的数值计算不同,符号计算是对字符串符号进行分析和运算,为了便于理解,读者可以将符号计算看作“由计算机实现的数学公式推导”。进行符号计算时,MATLAB负责将计算请求提交给其内置的MAPLE组件并返回MAPLE的计算结果。MATLAB的符号计算历经多次的改进和完善,其功能已经非常强大,尤其是在大规模的简单公式推导、逻辑推导等应用中有重要应用。本章介绍的内容如下。符合对象的创建符号函数符号对象的复合和化简符号对象的运算符号矩阵符号微积分符号方程求解技术凝聚实力专业创新出版11.1符号类型与数值类型符号对象(SymbolicObjet)是MATLAB符号工具箱中定义的一种新的数据类型。与一般的简单数值类型(如logical、int、float、double等)不同,符号对象是一种保存了符号字符串表示的复杂数据结构。本节主要讨论符号类型与普通数值类型的差别。技术凝聚实力专业创新出版11.2符号对象及其创建MATLAB符号工具箱定义的数据类型——符号对象(SymbolicObject),是一种存储了符号字符串表示的复杂数据结构。MATLAB利用符号对象表示符号变量、符号表达式、符号函数、符号矩阵,本节介绍符号变量、符号表达式的创建,至于符号函数和符号矩阵,将分别在11.3、11.5节进行详细介绍。技术凝聚实力专业创新出版11.2.1创建符号变量sym函数可用于创建符号常量和变量,其调用格式为:sym_variable=sym(sym_expression)该指令创建符号变量(或常量)sym_variable,其中sym_expression为符号变量的字符串表示。如果sym_expression为常数(例如pi、1、2.01等),则函数返回符号常量;如果sym_expression是符合命名规则的字符串(即该字符串只能包含数字、英文字母和下画线,且不能以数字开头),则函数返回符号变量。技术凝聚实力专业创新出版11.2.2创建符号表达式符号表达式是符号变量或常量的组合,也可以将符号变量和符号常量认为是符号表达式。符号表达式的创建,依然使用函数sym,其调用格式为:sym_variable=sym(sym_expression)这里的输入字符串参数sym_expression与11.2.1中有所不同,它是由多个子字符串通过数值运算符组合而成的,每个子字符串或者是符合命名规则的字符串或者是数值常量。也可以事先利用sym或syms创建符号变量和常量,然后通过数值运算符、支持符号计算的函数等将这些符号变量或常量组合起来构成符号表达式。技术凝聚实力专业创新出版11.2.3符号对象与数值的转换MATLAB符号计算工具箱提供如下三类运算操作:Numberic,即MATLAB浮点运算;Rational,即Maple符号运算;VPA,即Maple精度可变运算。浮点运算是三者中运算速度最快、内存使用最少的一种,但其结果的精度也较低,format可以控制输出结果的位数,但其内部表示仍然是8字节浮点表示,也就是说format不能改变结果的精度。符号运算的结果是精确、无近似的,但运算速度慢、消耗内存最多。VPA是浮点运算与符号运算的折中,用户可以通过函数digits控制计算结果的精度,默认情况下digits=32。技术凝聚实力专业创新出版11.3符号函数显而易见,符号函数与通常的数值函数有很大的不同。本节从MATLAB中符号函数的创建开始,分别介绍了符号函数的复合、反函数等内容,然后给出了一些在理论和实际中具有重要应用的符号函数。技术凝聚实力专业创新出版11.3.1创建符号函数可以通过下面两种方法创建符号函数:符号表达式;M文件。利用符号表达式创建符号函数的方法在例11.4中已经介绍,这种方法适合于创建一些比较简单的函数,对于比较复杂的符号函数的创建,应该利用M文件。技术凝聚实力专业创新出版11.3.2复合函数已知函数、,复合函数定义为。MATLAB符号计算工具箱提供函数compose用于符号函数复合,其调用格式为:compose(f,g)compose(f,g,z)compose(f,g,x,z)compose(f,g,x,y,z)技术凝聚实力专业创新出版11.3.3反函数MATLAB符号工具箱的函数finverse用于计算函数的反函数,其调用格式为:g=finverse(f)g=finverse(f,v)其中f为符号表达式,该函数求f关于v的反函数,如果未指定v,那么v=findsym(f)。技术凝聚实力专业创新出版11.3.4特殊符号函数MATLAB符号工具箱对一些重要的数学函数提供了支持,技术凝聚实力专业创新出版11.4符号表达式的复合和化简符号表达式的显示、展开、分解、化简等是符号运算的重要内容,MATLAB符号工具箱对这些内容提供了强大的支持。本节将详细介绍MATLAB符号工具相中符号表达式的显示、展开、分解、替换、化简等操作。技术凝聚实力专业创新出版11.4.1显示符号表达式MATLAB显示符号表达式时,默认的方式是MATLAB式的显示,例如在MATLAB命令窗口输入以下代码。f=a*x^2+b*x+c运行结果如下。f=a*x^2+b*x+c技术凝聚实力专业创新出版11.4.2展开、分解及化简符号表达式对数学表达式的展开、分解、化简是学习数学和应用数学中经常要做的工作,MATLAB符号工具箱这些工作提供了强大的支持,下面列出了一些相关的函数及其使用方法。函数collect用于同类项合并,其调用格式为:collect(f,s)collect(f)collect(f,s)将符号表达式f看作符号变量s的多项式(如果未指定s,则默认s为findsym(f,1)),对具有相同阶数的项进行合并。技术凝聚实力专业创新出版11.4.3符号表达式替换符号表达式的替换有两种,一是利用符号变量或符号表达式替换目标符号表达式中的符号变量(包括符号常量),利用函数subs实现;二是用符号变量替代目标符号表达式中的某个子符号表达式,利用函数subexpr实现。函数subs的一般调用格式为:R=subs(S)R=subs(S,new)R=subs(S,old,new)技术凝聚实力专业创新出版11.5符号矩阵符号矩阵是数值矩阵的扩展,符号矩阵的每个元素为符号表达式。与数值矩阵一样,符号矩阵也有代数运算、逻辑运算等;还可以求符号矩阵的奇异值,对符号进行奇异值分解。对于符号方阵,可以求行列式、特征值;符号方阵可逆时,还可以求符号方阵的逆。本节涉及的许多符号矩阵运算与数值矩阵相同,读者在学习本节内容时可以参考第7章。技术凝聚实力专业创新出版11.5.1创建符号矩阵MATLAB符号工具箱中没有提供专门用于创建符号矩阵的函数,用户可以通过以下三种方式创建符号矩阵:直接输入符号矩阵的各个元素——符号表达式;利用sym函数将数值矩阵转化为符号矩阵,这种方法只能创建符号常量矩阵;简单符号矩阵的组合创建复杂符号矩阵。技术凝聚实力专业创新出版11.5.2符号矩阵的代数运算同数值矩阵一样,符号矩阵也能进行加、减、乘、除四则运算,并且具有与数值矩阵几乎相同的运算规则,只是矩阵元素由数值变成了符号表达式。技术凝聚实力专业创新出版11.5.3符号矩阵的逻辑运算MATLAB符号工具箱对符号的逻辑运算支持很有限,仅支持==和~=。符号的逻辑运算。运行结果如下。???Function'gt'isnotdefinedforvaluesofclass'sym'.Errorin==gtat16builtin('gt',varargin{:});技术凝聚实力专业创新出版11.5.4符号矩阵的行列式符号矩阵的行列式与数值矩阵的行列式具有相同的定义,只是符号矩阵的行列式为符号函数。同样,行列式仅对符号方阵才有意义。MATLAB利用同名函数det计算符号矩阵的行列式,该函数在符号工具箱中被重载。符号矩阵的行列式。矩阵被称为单位旋转矩阵,试求该矩阵的行列式。sincoscossinxxxx技术凝聚实力专业创新出版11.5.5符号矩阵的逆对阶符号方阵,满足的符号方阵称为的逆,记为。其中为单位符号方阵,对角线上元素为符号常量,其余为0。MATLAB符号工具箱提供同名函数inv用于计算符号方阵的逆,这里的inv在符号工具箱中被重载。下面是符号矩阵求逆应用的例子。技术凝聚实力专业创新出版11.5.6符号矩阵的秩符号矩阵秩的含义与数值矩阵相似,对符号矩阵,取其任意行列得到的阶子式,的秩定义为使“至少有一个阶子式的行列式不为0”的最大,即所有的阶子式行列式为0,且至少有一个阶子式行列式不为0。MATLAB提供同名函数rank计算符号矩阵的秩,这里的rank在符号工具箱中被重载。技术凝聚实力专业创新出版11.5.7符号矩阵的特征分解特征值反映了符号矩阵的一些重要的性质,对符号矩阵特征值的分析在信号处理、自动控制中有重要的应用。符号方阵的特征值是满足的,其中为单位符号矩阵。由于即为A的特征多项式,所以的特征值即为特征多项式的根。回忆第10章中利用函数poly求数值矩阵的特征多项式,事实上,在符号工具箱中该函数被重载,利用poly(A)可以得到符号方阵的特征多项式,对特征多项式求根:solve(poly(A))技术凝聚实力专业创新出版11.5.8符号矩阵的SVD分解关于符号矩阵SVD分解的相关概念,可以参考第7章数值矩阵SVD分解,这里不再赘述。需要强调的是,MATLAB符号工具箱仅支持常量符号矩阵(元素为符号常量的符号矩阵)的SVD分解,这其中的原因可能是对一般的符号矩阵来说,SVD分解过于复杂而变得不可用。MATLAB中利用同名函数svd对符号矩阵进行SVD分解,其一般的调用格式为:[U,S,V]=svd(A)技术凝聚实力专业创新出版11.6符号微积分第7章已经介绍了数值微积分,数值微积分的适用范围广泛,但对问题的描述一般是近似的,而符号微积分可能得到问题的精确描述,因此在条件允许的情况下利用符号微积分解决理论和实际问题是一个很好的选择。本节内容包括符号的极限、微分、积分、Taylor级数以及级数求和等内容。技术凝聚实力专业创新出版11.6.1极限极限是当变量无限接近特定值时函数的值,例如,一元函数的导数的定义为下面的极限:。MATLAB符号工具箱利用函数limit计算符号极限,技术凝聚实力专业创新出版11.6.2微分技术凝聚实力专业创新出版11.6.3积分函数积分是微分的反运算,对符号函数,的积分是使的,用表示。同diff相似,如果为多变量符号表达式,用户应该指定对某个自变量求积分,即F=int(f,v);如果未指定,则v设定为由函数fingsym(f,1)决定的默认符号变量。技术凝聚实力专业创新出版11.6.4Taylor展开技术凝聚实力专业创新出版11.6.5级数求和技术凝聚实力专业创新出版11.7符号方程求解方程求解在数学理论研究、实际应用中都是一类非常重要的问题,也是符号运算关注的一个主要内容。MATLAB符号工具箱对符号方程求解提供了强大的支持。本节主要介绍一般代数方程、线性代数方程组、常微分方程的符号求解。技术凝聚实力专业创新出版11.7.1一般代数方程技术凝聚实力专业创新出版11.7.2线性代数方程组技术凝聚实力专业创新出版11.7.3符号常微分方程
本文标题:第11章__MATLAB7[1].0_符号计算
链接地址:https://www.777doc.com/doc-3262246 .html