- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章MATLAB的符号运算
第三章 MATLAB的符号运算;§3.1符号对象与符号表达式 ;
(2) 符号变量的建立
符号变量就是含有变量的符号表达式。
syms函数的一般调用格式为:
syms 符号变量名1 符号变量名2 … 符号变量名n
用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。;2. 建立符号表达式
符号表达式就是代表数字、函数和变量的MATLAB字符串或字符串数组,它不要求变量要有预先定义的值。符号表达式包含符号函数和符号方程,其中符号函数没有等号,而符号方程必须带有等号。在MATLAB中建立符号表达式主要有一下三种方式:
(1) 用单引号建立符号表达式
(2) 用sym建立符号表达式
(3) 使用已经定义的符号变量来组成符号表达式;§3.2 符号表达式的运算;3.2.1 提取分子分母
numden函数的调用形式如下:
[n,d]=numden(a) 提取符号表达式a的分子与分母,并分别将其存放在n与d中
n=numden(a) 提取符号表达式a的分子与分母,但只把分子存放在n中
例 提取符号表达式 的分子和分母;3.2.2 符号表达式的基本代数运算
符号表达式的加、减、乘、除四则运算及幂运算等基本的代数运算,与矩阵的数值运算几乎完全一样。其中,符号表达式的加、减、乘、除运算可分别有函数symadd、symsub、symmul、symdiv来实现,也可与矩阵的数值运算一样,用“+”、“-”、“×”、“÷”符号进行运算,而符号表达式的幂运算也可以由函数sympow来实现,也可以由幂运算符“^”来实现。
例 符号表达式f=2x2+3x+4与g=5x+6的代数运算。 ;§3.3 符号表达式的操作及转换;如果我们无法确定表达式中的自由变量,我们可以使用MATLAB提供的findsym函数来确定,该函数的一般调用形式为
findsym(EXPR,n) %确定自由符号变量
说明:EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量的个数,当n省略时,则不按顺序得出EXPR中所有的符号变量。
例 使用matlab指令得出 的符号变量;3.3.2 符号表达式的化简
当通过MATLAB的符号函数运算生成的符号表达式难于看懂时,可以通过MATLAB的符号数学工具箱中提供的函数,来对符号表达式进行化简,把它化成易于看懂的形式。这方面的函数主要有:pretty、collect、expand、horner、factor、simplify、simple。;一般来说同一个数学函数可以表示成三种,如
多项式形式的表达方式:f(x)=x3+6x2+11x-6
因式形式的表达方式:f(x)=(x-1)(x-2)(x-3)
嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6 ;1.pretty函数化简 (常用的书写方式显示化简)
2. collect函数化简
合并表达式
当有多个符号变量,可以指定按某个符号变量来合并同类项。 ;;例 利用三角函数来简化符号表达式cos2x-sin2x。
7. simple函数 最简表达式
寻求包含最少数目字符的表达式简化形式。
利用simple简化符号表达式
Cos2x+sin2x。
cos2x-sin2x。 ;3.3.3 符号表达式的替换
subs(s)%用给定值替换符号表达式s中的所有变量
subs(s,new)%用new替换符号表达式s中的自由变量
subs(s,old,new) %用new替换符号表达式s中的old变量
例 用subs函数对符号表达式(x+y)2+3(x+y)+5进行替换。 ;3.3.4 符号数值任意精度控制和运算
在MATLAB的符号运算工具箱(Symbolic Math Toolbox)中共包含3种算术运算:
A 数值类型 matlab的浮点算术运算
B 有理数类型 精确符号运算
C vpa类型 任意精度算术运算
;任意精度的VPA型运算可以使用digits和vpa命令来实现。
digits(n) %设定默认的精度
说明:n为所期望的有效位数。digits函数可以改变默认的有效位数来改变精度,随后的每个进行Maple函数的计算都以新精度为准。 ;3.3.5 符号与数值间的转换
1. 将符号表达式转换成数值表达式
将符号表达式转换成数值表达式主要是通过函数numeric或eval来实现;2. 将数值转换成符号表达式
将数值转换成符号表达式主要是通过函数sym来实现。
3.符号表达式与多项式的转换
构成多项式的符号表达式f(x)可以与多项式系数构成的行向量进行相互转换,MATLAB提供了函数sym2poly和poly2sym实
文档评论(0)