第三章 MATLAB的符号计算(修改版).ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 MATLAB的符号计算(修改版)

第三章 MATLAB的符号运算 1. 什么是符号运算 2. 符号变量与符号表达式 f = sin(x)+5x f —— 符号变量名 sin(x)+5x—— 符号表达式 —— 符号标识 符号表达式一定要用 单引 号括起来matlab才能识别。 3.符号矩阵的创建 例如:A = sym([a , 2*b ; 3*a , 0]) A = [ a, 2*b] [3*a, 0] 这就完成了一个符号矩阵的创建。 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。 (2)用字符串直接创建矩阵 模仿matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相同的长度。 (3) 符号矩阵与数值矩阵的转换 将数值矩阵转化为符号矩阵函数调用格式:sym(A) A=[1/3,2.5;1/0.7,2/5] A = 0.3333 2.5000 1.4286 0.4000 sym(A) ans = [ 1/3, 5/2] [10/7, 2/5] 将符号矩阵转化为数值矩阵函数调用格式: numeric(A) A = [ 1/3, 5/2] [10/7, 2/5] numeric(A) ans = 0.3333 2.5000 1.4286 0.4000 二、符号运算 1. 符号矩阵运算 数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a^2+3*a-5等。 而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行 符号矩阵运算的函数: symadd(a,b) —— 符号矩阵的加 symsub(a,b) —— 符号矩阵的减 symmul(a,b) —— 符号矩阵的乘 symdiv(a,b) —— 符号矩阵的除 sympow(a,b) —— 符号矩阵的幂运算 symop(a,b) —— 符号矩阵的综合运算 例1:已知f= 2*x^2+3*x-5和g= x^2+x-7,求二者之和 法一: f= 2*x^2+3*x-5; g= x^2+x-7; h= symadd(f,g) h= 3*x^2+4*x-12 法二: syms x; f=2*x^2+3*x-5; g= x^2+x-7; h=f+g h= 3*x^2+4*x-12 例2:已知f=cos(x),g= sin(2*x),求f/g+f*g 法一: f=‘cos(x)’;g= ‘sin(2*x)’; Symop(f,’/’,g,’+’,f,‘*’,g) ans = cos(x)/sin(2*x)+cos(x)*sin(2*x) 法二: syms x f=cos(x);g=sin(2*x); f/g+f*g ans = cos(x)/sin(2*x)+cos(x)*sin(2*x) 符号运算函数(部分): symsize —— 求符号矩阵维数 charploy —— 特征多项式 determ —— 符号矩阵行列式的值 eigensys —— 特征值和特征向量 inverse —— 逆矩阵 transpose —— 矩阵的转置 jordan —— 约当标准型 simple —— 符号矩阵简化 符号表达式的简化命令: 2. 任意精度的数学运算 在symbolic中有三种不同的算术运算: 数值类型 matlab的浮点算术运算 有理数类型 maple的精确符号运算 vpa类型 maple的任意精度算术运算 浮点算术运算 1/2+1/3 ans = 0.83333333333333 符号运算 sym(1/2)+(1/3) ans = 5/6 --精确解 任意精度算术运算 digits(n) —— 设置今后数值计算以n位相对精度进行 vpa(x,n) —— 在n位相对精度下,给出x的数值型符号结果 digits(25) vpa(1/2+1/3) ans = .8333333333333333333333333 vpa(5/6,40) ans = .8333333333333333333333333333333333333333 a=sym([1/4,exp(1);log(3),3/7]) a = [ 1/4,exp(1)] [log(3), 3/7] vpa(a,10) ans = [.2500000000, 2.718281828] [1.0

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档