第三讲 MATLAB的符号运算

上传人:飞*** 文档编号:51631660 上传时间:2018-08-15 格式:PPT 页数:51 大小:454KB
返回 下载 相关 举报
第三讲 MATLAB的符号运算_第1页
第1页 / 共51页
第三讲 MATLAB的符号运算_第2页
第2页 / 共51页
第三讲 MATLAB的符号运算_第3页
第3页 / 共51页
第三讲 MATLAB的符号运算_第4页
第4页 / 共51页
第三讲 MATLAB的符号运算_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第三讲 MATLAB的符号运算》由会员分享,可在线阅读,更多相关《第三讲 MATLAB的符号运算(51页珍藏版)》请在金锄头文库上搜索。

1、*1第三讲 MATLAB的符号运算vMatlab 不仅具有数值运算功能,还开发 了在Matlab环境下实现符号计算的工具包 SymbolicvMath Toolbox 。符号工具箱在Matlab中引 入新的数据类型符号对象sym。Date2符号运算的功能l符号表达式、符号矩阵的创建 l因式分解、展开和化简 l符号代数方程求解 l符号微积分 l符号微分方程Date3在数值计算中,包括输入、输出及中间 过程,变量都是数值变量,而在符号运算中 ,变量都以字符形式保存和运算,即使是数 字也被当作变量来处理。符号表达式包括符号函数和符号方程, 他们创建的方式是一样的,最简单易用的创 建方法和MATLAB

2、字符串变量的生成方法相 同。Date4v与数值运算的区别v 数值运算中必须先对变量赋值,然 后才能参与运算。v 符号运算无须事先对独立变量赋值, 运算结果以标准的符号形式表达。Date5v3.1 符号表达式的生成v 创建符号函数f= log(x)v创建符号方程equation=a*x2+b*x+c=0v创建符号微分方程Diffeq=Dy-y=xv注:由这种方法创建的符号表达式对空格是很敏感 的,因此不要在字符间乱加空格符.v符号表达式在MATLAB被看作是11阶的符号矩 阵,因此可用sym命令来创建.f 符号变量名 log(x) 符号表达式 符号标识 符号表达式一定要用 单引号括起来 matl

3、ab才能识别。Date6f=sym(sin(x)f f=sym(sin(x)2=0)v另外一种符号函数的创建方法为syms 命 令Sym xF=sin(x)+cos(x)vsyms a b c %syms可同时定义多个变 量 Date7v3.2 符号和数值之间的转化v有时符号运算的目的是为了得到精确的数值 解,这样就需要对得到的解析解进行数值转 换。在symbolic中有三种不同的算术运算:v数值类型 matlab的浮点算术运算v有理数类型 maple的精确符号运算vvpa类型 maple的任意精度算术运算 Date8v浮点算术运算 1/2+1/3 (定义输出格式format long) an

4、s = 0.83333333333333v符号运算 sym(1/2)+(1/3) ans =5/6 精确解Date9v解析解(精确解)进行数值转化的两个 函数. digits(n) 函数设置有效个 数为n的近似解精度.vpa(x,n) 符号表达式在digits(n) 精度下的数值解. digits(25) vpa(1/2+1/3) ans = .8333333333333333333333333 Date10numeric(s): 将不含自由变量的符号表达式转 换为数值形式,其效果double(sym(s)相同.( 旧版中的数值转化函数). Subs(f,old,new)Date11vpa(5

5、/6,40) ans = .833333333333333333333333333333333333333 3 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.098612289, .4285714286Date12v3.2 符号矩阵的创建v 数值矩阵A=1,2;3,4v A=a,b;c,d 不识别v用matlab函数sym创建矩阵( symbolic的缩写)v命令格式:A=sym( ) v 符号矩阵内容同数值矩阵v 需用sym指令定义v 需用

6、标识Date13v例如:A = sym(a , 2*b ; 3*a , 0)A = a, 2*b3*a, 0这就完成了一个符号矩阵的创建。v注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。Date14用字符串直接创建矩阵v 模仿matlab数值矩阵的创建方法v 需保证同一列中各元素字符串有相同的长度。例:A = a,2*b; 3*a, 0 A = a, 2*b3*a, 0Date15v例:创建符号矩阵vsyms a b c d e f g hvA=a b;c d,B=e f;g h,C=A*BvD=sym(1/(x+t),sin(x);1,exp(x)B =

7、 e, f g, hA = a, b c, dC = a*e+b*g, a*f+b*h c*e+d*g, c*f+d*hD = 1/(x+t), sin(x) 1, exp(x)Date16 符号矩阵的修改a.直接修改可用、 键找到所要修改的矩阵, 直接修改 b.指令修改A(行标,列标)符号表达式A1=subs(S, new ,old)Date17例如:A = a, 2*b3*a, 0A1=subs(A, c, b) A2 = a, 2*c 3*a, 4*c A(2,2)=4*b A = a, 2*b3*a, 4*bDate18 符号矩阵与数值矩阵的转换v将数值矩阵转化为符号矩阵函数调用格式:

8、sym(A) A=1/3,2.5;1/0.7,2/5 A =0.3333 2.50001.4286 0.4000 sym(A) ans = 1/3, 5/2 10/7, 2/5Date19v将符号矩阵转化为数值矩阵 函数调用格式:double(A)、int8(A)、 int16(A) A = 1/3, 5/2 10/7, 2/5 double(A) int8(A) ans = ans =0.3333 2.5000 0 31.4286 0.4000 1 0Date20二、符号运算1、符号矩阵基本运算数值运算中,所有矩阵运算操作指 令都比较直观、简单。例如:a=b+c; a=a*b ;A=2*a2

9、+3*a-5等。符号运算也是采用与数值运算相同的 运算符。Date21q 符号矩阵的基本运算 符号矩阵的基本运算与数值矩阵的基本运算相类 似。1) 基本运算符:+、-、*、/、.*、.、./、.、 、.2) 三角函数与反三角函数:sin、cos、tan、 3) 指数、对数函数:sqrt、exp、log、 4) 复数函数:real、imag、conj、 abs5) 矩阵函数:det、inv、rank、转 (没有norm)6) 矩阵元素的抽取:diag、tril、triuDate22v例1:f= sym(2*x2+3*x-5);v g= sym(x2+x-7);v h= f + gv h= v 3

10、*x2+4*x-12v例2: f=sym(cos(x);g=sym(sin(2*x);v f / g + f * gv ans =v cos(x)/sin(2*x)+cos(x)*sin(2*x)Date23v例1:f= 2*x2+3*x-5; g= x2+x-7; syms x f=2*x2+3*x-5; g= x2+x-7; h=f+g h = 3*x2+4*x-12 例2:f=cos(x);g= sin(2*x); syms x f=cos(x);g=sin(2*x); f/g+f*g ans = cos(x)/sin(x)+cos(x)*sin(x) Date24例3.71 符号矩阵的

11、基本操作和运算vx=reshape(sym(0:3),2,2); syms t;vy=x.2,z=x*x,w=inv(z),vw(2 4)=0,wt=expm(w*t)vsyms a b c;t=a b*2 c+3;4 5 6;c b a,sum(t)vreshape:符号矩阵的变形;vexpm:符号矩阵的幂运算;vsum:符号矩阵按列求和Date252 符号矩阵其它运算: 1. 1. r=collect(S,v) 合并同类项,S是符号表达式,v是 变量或表达式,r是合并同 类项后的结果, 将符号表 达式中的各元素的v的同幂项系数合并。r=collect(S) 对由findsym函数返回的默认

12、变量进行 同类项合并。Date26例1. 按不同的方式合并同幂项EXPR= sym(x2+x*exp(-t)+1)*(x+exp(-t); expr1=collect(EXPR)expr2=collect(EXPR,exp(-t)2. factor(S) 符号计算的因式分解,S是待分解的符号多项式例2. factor指令的使用(1)除x外不含其他自由变量的情况 (2) 含其他自由变量的情况之一 syms a x; f2=x2-a2;f1=x4-5*x3+5*x2+5*x-6; factor(f2)factor(f1)(3)对正整数的质数分解,若正整数数大于252,则用 factor(sym(N

13、))factor(1025), factor(sym(12345678901234567890), Date273. expand(S) 对符号多项式或函数S进行展开例:syms x y;expand(x+1)3)expand(sin(x+y)4. r=simple(S) 或 r=simplify(S) 对符号表达式S进行化简例3. 简化 (1)运用simplify简化syms x;f=(1/x3+6/x2+12/x+8)(1/3);sfy1=simplify(f), sfy1=simplify(sfy1)(2)运用simple简化g1=simple(f), g2=simple(g1)说明:s

14、imple给出的 简化式比simplify给 出的更短Date28例4. 简化 ff=cos(x)+sqrt(-sin(x)2);ssfy1=simplify(ff), ssfy2=simplify(ssfy1)gg1=simple(ff), gg2=simple(gg1)5. subs(S,old,new) 把符号变量中的变量old用new代替,new可以是一个符号,也可以是具体的数例5. 用简单的算例演示subs的置换规则 (1)产生符号函数 (4) 双精度数值置换syms a x; f3=subs(f,a,x,2, pi/3)f=a*sin(x)+5; (2) 符号变量置换 (5)数值数组置换之一f1=subs(f,s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号