matlab_符号运算

上传人:第*** 文档编号:49139652 上传时间:2018-07-24 格式:PPT 页数:53 大小:535.50KB
返回 下载 相关 举报
matlab_符号运算_第1页
第1页 / 共53页
matlab_符号运算_第2页
第2页 / 共53页
matlab_符号运算_第3页
第3页 / 共53页
matlab_符号运算_第4页
第4页 / 共53页
matlab_符号运算_第5页
第5页 / 共53页
点击查看更多>>
资源描述

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

1、MATLAB 符号运算12符号运算u什么是符号运算?直接对抽象的符号对象进行计算,结果以标准的符号形式来表示。可以获得比数值计算更一般的结果。u符号运算的特点:运算以推理解析的方式进行,因此不受计算误差积累问题困扰;计算结果或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时 );符号计算指令的调用比较简单,经典教科书公式相近;计算所需时间较长,有时难以忍受。uMATLAB符号运算是通过集成在MATLAB中的符号运算工具箱(symbolic math toolbox)来实现的。符号数学工具箱中的工具是建立在功能强大的称作 Maple软件的基础上。它最初是由加拿大的滑铁卢(Water

2、loo)大学开发的。当要求MATLAB进行符号 运算时,它就请求Maple去计算并将结果返回到MATLAB命令窗口。u符号数学工具箱是操作和解决符号表达式的符号数学工具箱(函数)集合,有符 号表达式的运算,复合、简化、微分、积分以及求解代数方程和微分方程的工 具。3主要内容u符号计算基础u符号函数及其应用u符号积分u级数u符号方程求解u其他常用命令4符号计算基础uMATLAB定义了一种符号数据类型 运算对象为符号对象 符号常量:无变量的符号表达式称作符号常量 符号变量 符号表达式u建立符号对象x=sym(x) 创建单个符号常量/变量x 符号常量: x不为变量 符号变量: x为字符、字符串、表达

3、式或字符表达式syms用于方便地一次创建多个符号变量,调用格式为:syms a b c d . 这种格式定义符号变量时不需要在变量名上加字符分界符(),变量间用空格 而不要用逗号分隔。 书写简洁意义清楚,建议使用。5符号计算基础(续)u符号表达式 含有符号对象的表达式称为符号表达式uMATLAB在内部把符号表达式表示成字符串,以与数字 变量或运算相区别;否则,这些符号表达式几乎完全象基 本的MATLAB命令。u符号表达式例子以及MATLAB等效表达式 符号表达式MATLAB表达式 1/(2*xn) y= 1/sqrt(2*x) cos(x2)-sin(2*x) M=sym( a,b;c,d )

4、6符号计算基础(续)u考察符号变量和数值变量的差别u例a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定义4个符号变量w=10;x=5;y=-8;z=11; %定义4个数值变量A=a,b;c,d %建立符号矩阵AB=w,x;y,z %建立数值矩阵Bdet(A) %计算符号矩阵A的行列式det(B) %计算数值矩阵B的行列式7符号计算基础(续)u比较符号常数与数值在代数运算时的差别u例pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定义符号变量pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量sin(pi1/3)

5、% 计算符号表达式值 sin(pi2/3) % 计算数值表达式值sqrt(k1) % 计算符号表达式值sqrt(r1) % 计算数值表达式值sqrt(k3+sqrt(k2) % 计算符号表达式值sqrt(r3+sqrt(r2) % 计算数值表达式值8基本的符号运算(续)u基本的符号运算 符号表达式的四则运算 + , - , * , / 。 符号表达式的提取分子和分母运算 numden 因式分解与展开 factor,expand 表达式化简 simplify,simple 符号表达式与数值表达式之间的转换 sym,numeric,eval9基本的符号运算(续)u符号表达式的四则运算 符号表达式的

6、四则运算和其他表达式的运算并无不同,但要注意 ,其运算结果依然是一个符号表达式。10基本的符号运算(续)u例uf=sym(2*x2+3*x-5)ug=sym(x2-x+7)uf+guf-guf*guf/guf311基本的符号运算(续)u符号表达式的提取分子和分母运算(分式通分) 如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden 函数来提取符号表达式中的分子或分母。其一般调用格式为:n,d=numden(s) 该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。u例 对表达式 f=x/y+y/x 进行通分。syms x yf=x/y+y/x;n,d=numden(f

7、)n = x2+y2d = y*x12基本的符号运算(续)u因式分解与展开 factor(S) 对S分解因式,S是符号表达式或符号矩阵。 expand(S) 对S进行展开,S是符号表达式或符号矩阵。 collect(S) 对S合并同类项,S是符号表达式或符号矩阵。 collect(S,v) 对S按变量v合并同类项,S是符号表达式或符号矩阵u例1: 对表达式f=x9-1进行因式分解。 syms x f=factor(x9-1)u例2:对大整数12345678901234567890进行因式分解 factor(sym(12345678901234567890)13基本的符号运算(续)u表达式展开:

8、expand(S) 例 展开表达式f=(x+1)5和f=sin(x+y) syms x y f=(x+1)5; expand(f) f=sin(x+y); expand(f)14基本的符号运算(续)u符号表达式的同类项合并:collect(S,n) 将符号表达式中自变量的同次幂项的系数合并。u例:对于表达式f=x(x(x-6)+12)t, 分别将自变量x和t的 同类项合并。 syms x t f=x*(x*(x-6)+12)*t; collect(f) collect(f,t)15基本的符号运算(续)u符号表达式化简 simplify(S): 应用函数规则对S进行化简。 simple(S):

9、调用MATLAB的其他函数对表达式进行综合化简,选 择在结果表达式中含有最少字符的那种形式,并显示化简过程。 r,how=simple(S) 函数可寻找符号表达式S的最简型, r为返回的简 化形式,how为化简过程中使用的主要方法,simple函数综合使用了下 列化简方法:usimplify 函数对表达式进行化简uradsimp 函数对含根式(surd)的表达式进行化简ucombine 函数对表达式中以求和、乘积、幂运算等形式出现的项进行合 并ucollect 合并同类项ufactor 函数实现因式分解uconvert 函数完成表达式形式的转换 16基本的符号运算(续)u例1:对表达式f=si

10、n2(x)+cos2(x)进行化简.syms xf=sin(x)2+cos(x)2;simplify(f)u例2 观察最简表达式的获得syms x tf=cos(x)2-sin(x)2;simple(f)r,how=simple(f)r =cos(2*x)how =combine(trig) 17基本的符号运算(续)u符号表达式与数值表达式之间的转换 Sym:可以将数值表达式变换成它的符号表达式。 eval:可以将符号表达式变换成数值表达式。 例 sym(1.5) sym(3.14) a= (1+sqrt(5)/2 eval(234/5)18基本的符号运算(续)u符号表达式中变量的确定 fin

11、dsym :可以帮助用户查找一个符号表达式中的的符号变量。该函数 的调用格式为:findsym(S,n) 函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全 部符号变量。 例 syms x a y z b; s1=3*x+y;s2=a*y+b; findsym(s1) findsym(s2,2) findsym(5*x+2) c=sym(3) findsym(a*x+b*y+c)19基本的符号运算(续)u在求函数的极限、导数和积分时,如果用户没有明确指定 自变量,MATLAB将按缺省原则确定主变量并对其进行相 应微积分运算。u可用findsym(S,1)查找系统的缺省变量,事实

12、上MATLAB 按离字符x最近原则确定缺省变量。u例 syms a b y z w findsym(a*y+b*w,1) findsym(a*z+b*w,1) findsym(a*5+b,1)20基本的符号运算(续)u符号矩阵 符号矩阵也是一种符号表达式 前述符号表达式运算的函数分别作用于矩阵的每一个元素u例:创建一个循环矩阵。 syms a b c d n=a b c d;b c d a;c d a b;d a b c n = a, b, c, d b, c, d, a c, d, a, b d, a, b, c 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数 值矩阵的一个重

13、要区别。 21基本的符号运算(续)u例:将3阶Hilbert矩阵转换为符号矩阵。 h=hilb(3) h1=sym(h)h =1.0000 0.5000 0.33330.5000 0.3333 0.25000.3333 0.2500 0.2000h1 = 1, 1/2, 1/3 1/2, 1/3, 1/4 1/3, 1/4, 1/522基本的符号运算(续)u应用于数值矩阵的函数diag,triu,tril,inv,det,rank,eig也可 直接应用于符号矩阵u专用于符号矩阵的函数 transpose(S) 返回S矩阵的转置矩阵。 A=sym(sin(x),cos(x);acos(x),as

14、in(x) B=transpose(A) D=det (A) E=inv(A)23主要内容u符号计算基础u符号函数及其应用u符号积分u级数u符号方程求解24符号函数求极限u符号函数求极限 limit(f,x,a) 计算符号表达式f在xa条件下的极限; limit(f,a) 计算符号表达式f中由默认自变量趋向于a条件下的极 限; limit(f) 计算符号表达式f在默认自变量趋向于0条件下的极限 ; limit(f,x,a,right) 和limit(f,x,a,left) 计算符号表达式f在 xa条件下的右极限和左极限。 25符号函数求极限(续)u例 求极限syms a m x;f=(x(1/

15、m)-a(1/m)/(x-a);limit(f,x,a) %求极限(1)f=(sin(a+x)-sin(a-x)/x;limit(f) %求极限(2)f=x*(sqrt(x2+1)-x);limit(f,x,inf,left) %求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right) %求极限(4)26符号函数求导u符号函数求导及其应用 MATLAB中求导的函数为:diff(f,x,n) 求函数f对变量x的n阶导数。 参数x缺省,取默认变量 n的缺省值是127符号函数求导(续)u例 1 求函数的导数syms x y;f=sqrt(1+exp(x);diff(f) %求(1)。未指定

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

当前位置:首页 > 办公文档 > 其它办公文档

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