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

下载本文档

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

文档简介

第四章MATLAB符号计算 1符号计算基础 1 符号对象的创建创建符号变量和表达式在MATLAB符号工具箱中 符号表达式是代表数字 函数和变量的MATLAB字符串或字符串数组 它不要求变量要有预先确定的值 MATLAB提供了两个基本函数 用来创建符号变量和表达式 分别是sym和syms 共有以下三种方法 1 利用单引号来生成符号表达式 2 用sym函数建立符号表达式 3 使用已经定义的符号变量组成符号表达式 下面具体介绍如何使用这三种方法 用单引号来创建符号表达式MATLAB在内部把符号表达式视为字符串 以示与数字相区别 而所有的字符串都用单引号来设定输入或输出 因此符号表达式也可用单引号来创建 用单引号创建符号函数 符号代数方程 符号微分方程 1 创建一般符号函数 f exp x f exp x 2 创建符号代数方程 f ax 2 bx c 0 f ax 2 bx c 0 3 创建符号微分方程 f D2y2 3Dy 4y 0 f D2y2 3Dy 4y 0 用函数sym和syms来创建符号变量和符号表达式 1 sym函数sym函数用来建立单个符号量 一般调用格式为 符号量名 sym 符号字符串 该函数可以建立一个符号量 符号字符串可以是常量 变量 函数或表达式 应用sym函数还可以定义符号常量 使用符号常量进行代数运算时和数值常量进行的运算不同 2 syms函数函数sym一次只能定义一个符号变量 使用不方便 MATLAB提供了另一个函数syms 一次可以定义多个符号变量 syms函数的一般调用格式为 syms符号变量名1符号变量名2 符号变量名n用这种格式定义符号变量时不要在变量名上加字符串分界符 变量间用空格而不要用逗号分隔 x sym a 创建一个符号变量x 同时将字符串a赋给x y sym b 创建一个符号变量y 同时将字符串b赋给y z x y 符号变量运算 注意不能用z a b y1 sym ax 2 bx c 创建一个符号表达式 即y1 ax 2 bx c symscde 创建一组符号变量c d e 函数syms用于多个符号变量的创建x3 2 c 3 4 d 2 5 e 用syms函数定义的符号变量创建符号表达式 属于第三种方法 使用已经定义的符号变量组成符号表达式 2 创建符号矩阵使用函数sym和syms可以创建符号矩阵 也可以将数值矩阵转换为符号矩阵 x sym abc def 由函数sym创建符号矩阵xy 123 456 789 创建数值矩阵y1 sym y 将数值矩阵转换为符号矩阵 注意y不要用单引号括起来symsghik 由函数syms创建符号变量g h i k z ghik hikg ikgh kghi 创建符号矩阵 运行结果 x x为符号矩阵 注意 a b c 符号矩阵的表示方法 d e f y y为数值矩阵123456789 y1 y1为符号矩阵 1 2 3 4 5 6 7 8 9 z z为符号矩阵 g h i k h i k g i k g h k g h i 由上例可见 普通数值矩阵与符号矩阵的区别 数值矩阵中的每个元素只是数值 而符号矩阵中的每个数值可以是数值也可以是字符 数值矩阵显示时 不显示方括号 而符号矩阵显示时 每行元素放在一对方括号内 而且每个元素之间用逗号分隔 3 数值矩阵和符号矩阵在工作空间中显示的变量图标也不同 符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常量 findsym可以帮助用户查找一个符号表达式中的的符号变量 该函数的调用格式为 findsym s n 函数返回符号表达式s中的n个符号变量 若没有指定n 则返回s中的全部符号变量 符号矩阵的命令符号矩阵也是一种符号表达式 所以前面介绍的符号表达式运算都可以在矩阵意义下进行 但应注意这些函数作用于符号矩阵时 是分别作用于矩阵的每一个元素 由于符号矩阵是一个矩阵 所以符号矩阵还能进行有关矩阵的运算 MATLAB还有一些专用于符号矩阵的函数 这些函数作用于单个的数据无意义 例如transpose s 返回s矩阵的转置矩阵 determ s 返回s矩阵的行列式值 其实 曾介绍过的许多应用于数值矩阵的函数 如diag triu tril inv det rank eig等 也可直接应用于符号矩阵 符号表达式的操作 介绍一些提高符号表达式可读性的一些操作指令 collect f v 对f表达式中指定的符号对象v的同幂系数进行合并 例题 按不同的方式合并同幂项 f sym x 2 x exp t 1 x exp t expr1 collect f 默认合并x同幂项系数expr2 collect f exp t 合并exp t 同幂项系数运行结果为 expr1 x 3 2 exp t x 2 1 exp t 2 x exp t expr2 x exp t 2 2 x 2 1 exp t x 2 1 x factor f 对f表达式进行因式分解例题 1 除x外不含其他自由变量的情况symsax f1 x 4 5 x 3 5 x 2 5 x 6 factor f1 结果为 ans x 1 x 2 x 3 x 1 2 含其他自由变量的情况之一f2 x 2 a 2 factor f2 结果为 ans a x a x horner f 对f表达式分解成嵌套形式例题 对多项式进行嵌套分解clear symsax f1 x 4 5 x 3 5 x 2 6 horner f1 运行结果为 ans 6 5 5 x x x 2 符号微积分 1 符号极限limit函数的调用格式为 1 limit f x a 求符号函数f x 的极限值 即计算当变量x趋近于常数a时 f x 函数的极限值 2 limit f a 求符号函数f x 的极限值 由于没有指定符号函数f x 的自变量 则使用该格式时 符号函数f x 的变量为函数findsym f 确定的默认自变量 即变量x趋近于a 3 limit f 求符号函数f x 的极限值 符号函数f x 的变量为函数findsym f 确定的默认变量 没有指定变量的目标值时 系统默认变量趋近于0 即a 0的情况 4 limit f x a right 求符号函数f的极限值 right 表示变量x从右边趋近于a 5 limit f x a left 求符号函数f的极限值 left 表示变量x从左边趋近于a 例1求下列极限 极限1 symsxlimit sin x x x 0 ans 1极限2 symsxlimit x 2 x 1 x 1 ans 1 2 极限3 symsx limit 1 x x 0 left ans inf极限4 symsx f sqrt x sqrt 2 sqrt x 2 sqrt x x 4 limit f x 2 right ans 1 2 2 符号微分diff函数用于对符号表达式求导数 该函数的一般调用格式为 diff s 没有指定变量和导数阶数 则系统按findsym函数指示的默认变量对符号表达式s求一阶导数 diff s v 以v为自变量 对符号表达式s求一阶导数 diff s n 按findsym函数指示的默认变量对符号表达式s求n阶导数 n为正整数 diff s v n 以v为自变量 对符号表达式s求n阶导数 例2求f xcos x 的一阶 二阶 三阶导数 symsxdiff x cos x x diff x cos x x 2 diff x cos x x 3 运行结果为 ans cos x x sin x ans 2 sin x x cos x ans 3 cos x x sin x 3 符号积分符号积分由函数int来实现 该函数的一般调用格式为 int s 没有指定积分变量和积分阶数时 系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分 int s v 以v为自变量 对被积函数或符号表达式s求不定积分 int s v a b 求定积分运算 a b分别表示定积分的下限和上限 该函数求被积函数在区间 a b 上的定积分 a和b可以是两个具体的数 也可以是一个符号表达式 还可以是无穷 inf 当函数f关于变量x在闭区间 a b 上可积时 函数返回一个定积分结果 当a b中有一个是inf时 函数返回一个广义积分 当a b中有一个符号表达式时 函数返回一个符号函数 例3求不定积分symsxint 1 x 2 1 ans atan x 当积分式中带有其他参变量时 在积分过程中视为常数处理 例如 求symsxyint x y 2 1 x x ans 1 2 x 2 y 2 log x MATLAB不能进行多重积分 对多重积分只能通过分次一元积分获得 例4求symsxyf int x y x int f y 运行结果 f 1 2 x 2 yans 1 4 x 2 y 2 例5求下列定积分1 2 3 symsxtf1 x 2 x 1 a1 int f1 1 2 f2 1 x 2 1 a2 int f2 inf inf f3 2 t x a3 int f3 1 sin t 计算结果为 a1 1 2 log 2 log 3 a2 pia3 t sin t 2 1 4 3Taylor级数展开 表达式的Taylor级数展开由函数taylor实现 调用格式为 taylor f 计算符号表达式f在默认自变量等于0处的5阶taylor级数展开式 taylor f n v 计算符号表达式f在自变量v 0处的n 1阶taylor级数展开式 taylor f n v a 计算符号表达式f在自变量v a处的n 1阶taylor级数展开式 例6求函数展开到含x4的项 symsxf 1 2 x 3 x 2 1 2 x 3 x 2 taylor f x 5 运行结果为 ans 1 4 x 14 x 2 40 x 3 122 x 4 4 4符号方程的求解 符号代数方程组的求解求解表达式的代数方程由函数solve实现 其调用格式为 g solve eq1 eq2 eqn var1 var2 varn 求解符号表达式eq1 eq2 eqn组成的代数方程组 自变量分别为var1 var2 varn symsxabcy a x 2 b x c solve y 运行结果为 ans 1 2 b b 2 4 a c 1 2 a 1 2 b b 2 4 a c 1 2 a 函数solve默认参数是0 求解变量x 也可以给出参数以指明来求解哪个变量 例如对上式求解未知变量a 可采用下面步骤 symsxabcy a x 2 b x c solve y a 运行结果为 ans b x c x 2 在求解后 有时解的表示是有理分数形式 可以使用double函数将结果化为小数形式 y x 2 3 x 4 a solve y double a 运行结果为 a 3 2 1 2 i 7 1 2 3 2 1 2 i 7 1 2 ans 1 5000 1 3229i 1 5000 1 3229i 若要求解是y f x 形式的方程 可给出整个方程 并用单引号引用起来 或将方程改为y f x 0 并将y f x 赋给一个变量 然后再用solve函数 a solve x 2 3 x 4 exp x double a 运行结果为 a 3 1525907367571582749969890047671ans 3 1526通过这个例子 知道了如何用solve求解方程 同时 注意到用double命令 会使结果不够准确 在使用的时候一定要注意 例求解一元二次方程组xy 2 x2 y2 4输出形式一 x y solve x y 2 x 2 y 2 4 运行结果为 x 2 1 2 2 1 2 y 2 1 2 2 1 2 输出形式二 v solve x y 2 x 2 y 2 4 运行结果为 v x 2x1sym y 2x1sym 要调用某一个解或某一组解进行运算 v x回车后结果为 ans 2 1 2 2 1 2 v x 1 回车后结果为 ans 2 1 2 符号微分方程求解 求表达式常微分方程的符号解由函数dsolve实现 其调用格式为 r dsolve eq1 eq2 cond1 cond2 v 求解eq1 eq2 指定的常微分方程的符号解 参数cond1 cond2 为指定常微分方程的边界条件或初始条件 自变量v如果不指定 将为默认自变量 在方程中 用大写字母D表示一次微分 D2和D3分别表示二次及三次微分 D后面的字符为因变量 自变量默认为t 如D2y表示d2y dt2 如果没有初始条件 MATLAB在解中会用C1 C2 来表示 y dsolve Dy sint y dsolve

温馨提示

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

评论

0/150

提交评论