- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 符号计算 同一般的数值计算不同,MATLAB的符号计算是对字符串进行符号分析和运算。在进行符号计算时,MATLAB负责将计算请求提交给其内置的MAPLE组件,并返回MAPLE的计算结果。 MATLAB的符号计算历经多次的改进和完善,其功能已经非常强大。本章介绍的内容包括符合表达式、符号表达式的复合和化简、符号矩阵的运算、符号微积分、符号代数方程求解、符号微分方程解等。 14.1 符号对象和一般数值类型比较 符号对象(Symbolic Objet)是MATLAB符号工具箱中定义的一种新的数据类型。一般的MATLAB数值类型,如logical、int、float、double等,都是简单的数据类型,而符号对象是一种保存了符号字符串表示的复杂数据结构。例如,对double型数值2求自然对数。 log(2) ans = 0.6931 返回结果为double型数值。下面首先将double型数值2转换成符号类型,再求其自然对数。 log(sym(2)) ans = log(2) 14.2 符号对象的创建 MATLAB符号工具箱定义的数据类型——符号对象(Symbolic Object),是一种存储了符号的字符串表示的复杂数据结构。MATLAB利用符号对象表示符号变量、符号表达式、符号函数、符号矩阵。本节介绍符号变量、符号表达式和符号函数的创建,至于符号矩阵,将在第14.4节进行详细介绍。 14.2.1 创建符号变量 14.2.2 创建符号表达式 14.2.3 符号函数 14.3 符号对象的转换 本节介绍符号表达式的显示、符号表达式的各种表达形式及其相互转换、符号常量与一般数值类型的相互转换、符号表达式的替换。本节中的符号表达式是广义的符号表达式,包括了符号变量和符号常量。 14.3.1 符号表达式的显示 在显示符号表达式时,默认的方式是MATLAB式的显示,例如, f = a*x^2 + b*x + c f = a*x^2+b*x+c 另外,MATLAB符号工具箱中的函数pretty,允许用户将符号表达式显示为符合一般数学表达习惯的数学表达式,对上述的f,其pretty显示为 pretty(f) 2 a x + b x + c 14.3.2 符号表达式间的相互转换 对数学表达式的展开、化简、因式分解等是在数学学习和应用中经常要做的工作,MATLAB符号工具箱同样也具备这些功能。MATLAB符号工具箱为符号表达式的展开、化简等提供了强大的支持,下面列出了一些相关的函数及其使用方法。 函数collect的调用格式为 collect(f, s) collect(f) 函数expand对符号表达式进行展开,调用格式为 R = expand(S) 函数factor对符号表达式进行因式分解,调用格式为 R = factor(X) 函数simple和simplify都用于对符号表达式进行化简,但simple函数会尝试多种方法,直到找到认为“最简”的表达式。 函数numden将有理分式形式的符号表达式表示为简单分式之和。 14.3.3 符号表达式的替换 符号表达式的替换有两种,一是利用符号变量或符号表达式替换目标符号表达式中的符号变量(包括符号常量),利用函数subs实现;二是用符号变量替代目标符号表达式中的某个子符号表达式,利用函数subexpr实现。函数subs的一般调用格式为: R = subs(S) R = subs(S, new) R = subs(S,old,new) R = subs(S)替换S中与调用函数空间或基本工作空间同名的符号变量。 14.3.4 符号常量与数值类型的转换 在符号常量与数值类型的相互转换中,数值向符号常量的转换即是符号常量的创建,由函数sym实现,如有疑问请参考第14.2.1节。这里主要介绍符号常量向数值类型的转换。 MATLAB中的函数vpa用于符号常量向一般数值类型的转换,vpa的调用格式为 v = vpa(s, d)或v = vpa(s) 其中,s为符号常量,d为转换结果v的小数位个数,未设定时,d是函数digits(关于digits的使用,不是本节所要讨论的内容,如有疑问请参考帮助)设定的值。 14.4 符号矩阵 符号矩阵是数值矩阵的扩展,符号矩阵的每个元素都是符号表达式。同一般的数值矩阵一样,符号矩阵也有四则运算,可以求符号矩阵的奇异值,对符号进行奇异值分解。对于符号方阵,有符号矩阵的行列式、特征值,符号方阵可逆时,还可以求符号方阵的逆。本节涉及到的符号矩阵运算大多与数值矩阵相同,读者在学习本节内容时可以参考第5章的内容。 14.
文档评论(0)