MATLAB14符号数学工具箱.ppt_第1页
MATLAB14符号数学工具箱.ppt_第2页
MATLAB14符号数学工具箱.ppt_第3页
MATLAB14符号数学工具箱.ppt_第4页
MATLAB14符号数学工具箱.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

第十四章 符号数学工具箱 MATLAB所具有的符号数学工具箱(symbolic Math Toolbox) 中定义了一种新的数据结构,用来存储代表符号的字符 串,称为符号对象。可以用来代表符号变量、表达式和矩阵等。 在进行符号计算时,首先要定义基本的符号对象(可以是常数 、变量以及表达式等),然后利用这些基本符号对象去构成新的表 达式,从而进行所需的符号运算。 在运算中,凡是由包含符号对象的表达式所生成的新对象也 那是符号对象。sym和syms是创建和定义基本的符号对象的两个 函数,函数syms是sym的简捷方式。 1 14.1 符号表达式及运算 利用sym命令可以创建符号变量和表达式。 S=sym(arg): 由表达式创建一个sym对象S,如果arg是一 个字符串(string),则S是符号变量或符号数;如明是数值标量 或矩阵,则S是这些给定数值的符号形式。 以下是sym函数调用形式的具体实现方式: x=sym(x): 建立符号变量x,变量的值为单引号内的字符 或字符串,这里是和变量名相同的字符x; xsym(x,real): 设定符号变量为实型变量(Real) ; xsym(x,unreal): 使x为纯粹的形式变量,没有附加属 性;一般用来清除x的实数特性,从mapple的工作空间中清除掉。 pi=sym(pi)和delta=sym(1/10): 建立符号数,避免了浮点 数本身的近似,建立的符号数是数值的精确表示。 2 例141 链接 Example 1。 符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或字符 串数组。不要求变量有预先确定的值。 利用sym命令创建表达式: 例142 链接 Example1_01。 注意,该例子中用的是显式格式,在MATLAB可以自己确定变量类型的场 合下,通常不要求显式函数sym,可以直接用表达式。 例143 链接 Example1_ 02。 然而,很多时候sym是必要的。尤其是建立符号数组时,必须用函数sym ,特别地将字符串变为符号表达式。 例144 链接 Example 1_03。 3 MATLAB在内部把符号表达式表示成字符串,与数字变量或运算相 区别;否则,这些符号表达式几乎完全像基本的MATLAB命令。 符号表达式 MATLAB表达式 4 许多符号函数能够自动将字符转变为符号表达式。但是最简单形式(无引号) 要求个参量,它是一个单字符的字符串,不能包含空格。 例145 链接 Example 1_04。 符号变量 当字符表达式中含有多于一个的变量时,只有一个变量是独立变量。如 果不告诉哪一个变量是独立交量,则可以通过findsym函数、查询,找出符 号表达式或符号矩阵中的一个或所有变量。 例146 链接 Example 1_05。 符号矩阵的创建: 例147 链接 Example 1_06。 提取分子和分母 如果表达式是个有理分式(两个多项式之比),利用numden来提取分子 或分母。在必要时 numden将表达式合并、有理化并返回所得的分子和分母 。 5 例148 链接 Example 1_07。 标准代数运算 很多标准的代数运算可以在符号表达式上执行: symadd, symsub, symmul, symdiv: 加、减、乘、除两个表达式 Sympow: 将一个表达式上升为另一个表达式的幂次。 例149 链接 见Example 1_07。 另一个通用函数可让用户用其它的符号变量、表达式和算子创建新的表 达式。 Symop:取由逗号隔开的参量。各个参量可为符号表达式、数值或算子, 然后symop可将参量联接起来,返回最后所得的表达式。 例1410 链接 见Example 1_07。 6 高级运算 MATLAB具有对符号表达式执行更高级运算的功能。 compose: 把f(x)和g(x)复合成f(g(x)。 例1411 链接 见Example 1_07。 finverse: 求表达式的函数逆,返回表达式的逆函数。如果解不是唯一就给 出警告。 例1412 链接 见Example 1_07。 Symsum:求表达式的符号和,有四种形式: 7 例1413 链接 见Example 1_07。 变换函数 Sym:可获取一个数字参量并将其转换为符号表达式。 Char:Convert sym object to string。 Numeric:功能正好相反,它把一个符号常数(无变量符号表达式)变换为一 个数值。(double7.0版本) Eval:另一个可用于把符号常数变换为数字或计算表达式的函数。 例1414 链接 见Example 1_07。 Sym2poly:将符号多项式变换成它的MATLAB等价系数向量。 poly2sym:功能正好相反,并让用户指定用于所得结果表达式中的变量。 例1415 链接 见Example 1_07。 8 变量替换 Subs: 在符号表达式个进行变量替换。 subs(f, old, new): f是符号表达式,new和old是字符、字符串或其它符号 表达式。 例1416 链接 见Example1_07。 14.2 微积分 微分 符号表达式的微分以四种形式利用函数diff。 例1417 链接 Example2。 diff也可对数组进行运算。如果F是符号向量或数组,diff(F)对数组内的各个 元素进行微分。diff也用计算数值向量或矩阵的数值差分。 例1418 链接 Example2。 9 积分 int(f):积分函数,f为符号表达式,力图求出另一符号表达式F使diff(F)f 。 积分比微分复杂得多。积分或逆求导不一定是以封闭形式存在,或许存在 但软件也许找不到,或者软件可明显地求解,但超过内存或时间限制。当 MATLAB不能找到逆导数时,它将返回未经计算的命令。 例1419 链接 Example2_01 。 14.3 符号表达式画图 在许多的场合,将表达式可视化是有利的。MATLAB提供了函数ezplot来 完成该任务。 例1420 链接 Example3。 10 14.4 符号表达式简化及格式化 有时MATLAB返回的符号表达式难以理解,有许多工具可以使表达式变 得更易读懂。 Pretty:以类似于数学课本上的形式来显示符号表达式。 Collect: 合并所有相似项 Factor: 表示成多项式乘积 Expand: 多项式展开 例1421 链接 Example 4。 simplify: 利用各种类型代数恒等式,包括求和、积分和分数幂、三角、指 数和log函数、Bessel函数、超几何函数和g函数,来简化表达式。 例1422 链接 Example 4_01。 simple函数: 最有用的、但也是最不正统的,试用了几种不同的简化工具, 然后选择在结果表达式中含有最少字符的那种形式。 例1423 链接 见Example 4_01。 11 14.5 可变精度算术运算 因为数值的精度受每次操作所保留的数值的限制,所以数值的任何 运算都会引入舍入误差,重复的多次数值运算会造成累积误差。而对符 号表达式的运算是非常准确的,因为不需要进行数值运算,所以无舍入 误差。对符号运算结果用函数eval或numeric,仅在结果转换时会引入 舍入误差。 maple缺省为18位的精度。Maple缺省准确度可以由digits(n)来改 变,其中n是所期望的准确度数值。另外有一个函数vpa,可以用任何精 度实行单个计算。它以缺省的精度或任何指定的精度对单个符号表达式 进行计算,并以同样的精度来显示结果。 例1424 链接 Example5。 将函数vpa作用于符号矩阵,对它的每一个元素进行计算。 例1425 链接 见Example5。 12 14.6 方程求解 用MATLAB所具有的符号工具可以求解符号方程。 求解单个代数方程 如果表达式不是一个方程式(不合等号),则在求解之前solve将表达式 置成等于0。 例1426 链接 见Example6。 注意:在求解周期函数方程时,有无穷多的解。在这种情况下,solve对解 的搜索范围限制在接近于零的有限范围,并返回非唯一的解的子集。 代数方程组求解 例1427 链接 见Example6。 13 单个微分方程 dsolve:计算常微分方程的符号解。用字母D来表示求微分。 D2,D3等等表示重复求微分,并以此来设定方程。任何D后所跟的字母 为因变量。 方程d2y/dx20用符号表达式D2y0来表示。 例如,一阶方程dy/dx1+y2的通解为, 例1428 链接 见Example6。 二阶微分方程的例子,该方程有两个初始条件: 微分方程含有一阶以上的项: 例1429 链接 见Example6。 14 函数dsolve也可同时处时处 理若干个微分方程式,下面有两个线线性一阶阶方程 , 例1430 链接 见见Example6。 14.7 线性代数和矩阵 符号矩阵阵 例1431 链接 见Example7。 代数运算 用函数symadd,symsub,symmul和symdiv,对对符号矩阵阵可以执执行许许多通 用的代数运算用sympow可计计算乘幂幂,用transpose计计算符号矩阵阵的转转置。 7.0版本已和数值值矩阵阵代数运算统统一。 微分方程组组 15 例1432 链接 见Example7。 线线性代数运算 用函数inv和determ,可计算符号矩阵的逆阵以及行列式。 例1433 链接 见Example7_01。 linsolve(A,B)对X方阵求解矩阵方程A*XB 例1434 链接 见Example7_02。 其

温馨提示

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

评论

0/150

提交评论