Matlab讲义5.ppt_第1页
Matlab讲义5.ppt_第2页
Matlab讲义5.ppt_第3页
Matlab讲义5.ppt_第4页
Matlab讲义5.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、1,数学软件 MATLAB,电子教案(五) 符号运算与基本微积分,2,符号对象的定义,MATLAB中的Symbolic Math Toolbox工具箱对符号对象支持数学解析式似的推演。故进行公式演算前应将推演对象先指定为符号对象类型(sym)的数据。 定义基本符号对象的指令有sym、syms两个。它们的基本使用方式为:f=sym(arg) 把数字/字符串/表达式转换为符号对象f。f=sym(argn,flagn) 把数值表达式argn转换为flagn格式的符号对象f。argv=sym(argv,flagv) 按flagv要求把字符串argv定义为符号对象argv。syms(argv1,argv

2、2,.) 把字符arg1,arg2等定义为基本符号对象。syms argv1 argv2 . 为syms( . )的简洁形式。,3,sym、syms的选项简要说明,f=sym(argn,flagn)中的选项flagn可取:d最接近的十进制浮点数精确表示。r 最接近的有理表示(缺省设置)。所谓“有理”表示,是指用两个正整数p,q构成的:p/q,p*pi/q,sqrt(p),2q,10q形式之一表示。 argv=sym(argv,flagv)中选项flagv可取:positive限定argv为“正实数型”符号变量。real限定argv为“实数型”符号变量。unreal指定argv为“非实数型”变量

3、(清除argv的实数属性)。,4,符号常数与数值常数的转换,数值计算受计算机字长的限制,每次数值操作都带截断误差,故无任采用何种算法均会产生积累误差。但符号计算的结果是绝对准确的,因此在输出最终结果时,再根据需要转换为指定精度的数值将减少误差。 Symbolic Toolbox中与数值精度计算有关的指令有:double(x) 将符号常数x转为16位相对精度浮点数。digits(n) 设置今后的数值计算以n位相对精度进行。xs=vpa(x) 在digits指定精度下,给出x的数值型符号结果xs。xs=vpa(x,n) 在n位相对精度下,给出x的数值型符号结果xs。,5,字符表达式转符号对象示例,

4、y=sym(2*sin(x)*cos(x) %字符表达式化为符号变量。 y=simple(y)%把y表示的符号表达式化为最简形式。 syms fai1 fail2; y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2) syms a11 a12 a21 a22; A=a11,a12;a21,a22 DA=det(A),IA=inv(A),EA=eig(A) 注意:进行符号计算前,首先定义基本符号对象(可以是常数、变量、表达式),然后利用这些基本符号对象去构成新的符号表达式,进行所需的符号运算。由符号对象构成表达式生成的衍生对象通常仍为符号对象。,6,

5、符号计算的运算符和基本函数,由于采用了重载技术,符号表达式中的运算符以及内建函数与数值计算形式几乎一致。下面进行简要归纳。 基本运算符:“+”,“-”,“*”,“”,“/”,“”;“.*”,“./”,“.”,“.”;“ . ”,“ ” 。 关系运算符:“=”,“=” (符号对象间比较时,无大小概念) 。 三角函数、双曲函数及其反函数。 指数函数、对数函数等(exp、log、sqrt)。 复数函数(conj,real,imag,abs;但无求辐角指令)。 矩阵代数指令 (diag,triu,tril,inv,det,rank)(rref,null,colspace,poly,expm,eig,s

6、vd)。,7,符号对象的识别,数值对象、符号对象、字符串对象各自遵循不同的运算法则,但外形常常很相似。MATLAB提供class,isa,whos等指令对它们进行识别。另外,观察基本工作空间浏览器也可知道已有对象的类型。 例如:vs=sym(f=x+y),vc=f=x+y,vf=5.2+1.8class(vs),class(vc),class(vf)isa(vs,sym),isa(vc,char),isa(vf,double)whos,8,符号表达式中自由变量的确定,MATLAB指令findsym能帮助用户了解系统对符号表达式中的独立自变量是如何自动认定的。具体方法如下:findsym(EXP

7、R) 确认表达式EXPR中所有自由符号变量。findsym(EXPR,N) 从EXPR中确认出靠x最近的N个独立自变量。 说明:EXPR可以是符号矩阵。此时指令对自由变量的确认是对整个矩阵进行,而非元素。按照自然科学习惯,MATLAB总是默认将x以及最靠近x的字母表示的变量优先确认为独立的自由变量。(小写字母总是比大写字母更靠近x),9,确定自由变量示例,syms a b x X Y; k=sym(3); z=sym(c*sqrt(delta)+y*sin(theta); EXPR=a*z*X+(b*x2+k)*Y; % k为常量,z不自由 findsym(EXPR) % ans=X,Y,a,

8、b,c,delta,theta,x,y findsym(EXPR,1)% ans=x findsym(EXPR,2)% ans=x,y findsym(EXPR,3) % ans=x,y,theta syms a b t u v x y; A=a+b*x,sin(t)+u;x*exp(-t),log(y)+v findsym(A,1) % ans=x 对整个矩阵的元素判断。,10,符号表达式的操作,符号表达式常用的一些基本操作指令有: collect(EXPR ,v)合并同类项。 expand(EXPR)对指定项展开。 factor(EXPR)因式/因子分解。 horner(EXPR)转换成嵌

9、套形式。 N,D=numden(EXPR)通分。 simplify(EXPR)恒等式简化。 pretty(EXPR)习惯方式显示。 simple(EXPR)转换成最简短形式。,11,符号对象的置换操作,一.子表达式置换操作为了使表达式简洁易读,MATLAB提供指令subexpr,用符号变量替换子表达式:RS,ssub=subexpr(S,ssub) %用符号变量ssub置换相同的表达式,重写S为RS。 二.通用置换指令RES=sub(ES,old,new)% 用new置换ES中old后产生RES。RES=subs(ES,new)% 用new置换ES中自由变量产生RES。,12,置换操作示例,c

10、lear all syms a b c d W V,D=eig(a b;c d); RVD,W=subexpr(V;D,W clear all syms a x;f=a*sin(x)+5; f1=subs(f,sin(x),sym(y) f2=subs(f,a,x,2,sym(pi/3) f3=subs(f,a,x,2,pi/3) f4=subs(subs(f,a,2),x,0:pi/6:pi) f5=subs(f,a,x,0:6,0:pi/6:pi),13,基本符号微积分,求极限:limit 求导数(偏导数):diff 求雅可比矩阵:jacobian 求积分:int 级数求和:symsum

11、一元函数泰勒展开:taylor,14,符号微积分(续),一般符号代数方程(组)的解: solove 符号微分方程(组)求解: dsolove 多元函数完全泰勒展开: mtaylor 求Hess矩阵: hessian Fourier变换及其反变换: fourier,ifourier Laplace变换及其反变换: laplace,ilaplace Z变换及其反变换: ztrans,iztrance,15,求函数极限,1. limit(f) 2. limit(f,v) 3. limit(f,v,a)注意:a可以为inf或-inf。 例:clear all;syms x y c;f=sin(c+2*

12、y/x);limit(f,y),limit(f,x,inf),limit(f,c),16,求导数与偏导数,1. diff(f) 2. diff(f,n) 3. diff(f,v,n) 例: clear all; syms x y z; f=x2*sin(exp(y(1/2)/z; dfdx2=diff(f);pretty(dfdx2) dfdy=diff(f,y);pretty(dfdy),17,雅可比矩阵,jacobian(f)或jacobian(f,v) 注:当f是向量函数时,求得雅可比矩阵;当f是标量函数时,求得函数梯度,等价于gradient(f)。 例:syms x1 x2;f=x1

13、*exp(x2);x2;cos(x1)*sin(x2);v=x1 x2;fjac=jacobian(f,v),18,求积分(无穷限广义积分),int(f) int(f,v) int(f,a,b) int(f,v,a,b),例 解: syms a b x; f=a*x,b*x2;1/x,sin(x); pretty(int(f) syms x y F2=int(int(x2+y2,y,sqrt(x),x2),x,1,2) VF2=vpa(F2),a,b可取inf,-inf,19,级数求和,symsum(f) symsum(f,a,b) symsum(f,v) symsum(f,v,a,b) 例

14、syms k t; f1=t k3; f2=1/(2*k-1)2,(-1)k/k; s1=simple(symsum(f1) s2=simple(symsum(f2,1,inf),20,一元函数泰勒展开,1. taylor(f) 2. taylor(f,n) 3. taylor(f,v) 4. taylor(f,a) 5. taylor(f,n,a) 6. taylor(f,n,v,a) 例 syms x y a b u v f=a*sin(x)*yx+u*cos(v); g=exp(v)+b*vu; Mf=taylor(f),Tf=taylor(f,3,b) Mg=taylor(g,v),T

15、g=taylor(g,4,v,a),21,多元函数完全泰勒展开,maple(readlib(mtaylor);) %读库TL=maple(mtaylor(f(u,v),u=a,v=b,n);)pretty(sym(TL) 注意:遵循MAPLE语法规则;返回输出的结果是字符型对象。检索maple帮助目录指令:mhelp index。检索maple函数帮助指令:mhelp functionName 例 maple(readlib(mtaylor);); TL=maple(mtaylor(sin(x2+y2),x=0,y=0,8); pretty(sym(TL),22,Hess矩阵,FH=maple

16、(hessian(f(u,v,w),u,v,w);)sym(FH) 例 FH=maple(hessian(x*y*z,x,y,z);) sym(FH),23,差分方程(递推公式)求通解,gs=maple(rsolve(f(n)=G(n),f(k);) gs=maple(rsolve,f(n)=G(n),f(k) 例 求f(n)=-3*f(n-1)-2*f(n-2)通解. 解: gs1=maple(rsolve(f(n)=-3*f(n-1)-2*f(n-2),f(k);) 或 gs2=maple(rsolve,f(n)=-3*f(n-1)-2*f(n-2),f(k),24,Fourier变换及其

17、反变换*,时域中的函数f(t)与它在频域中的Fourier变换F(w)之间有如下关系:,MATLAB中实现Fourier变换及其逆变换的指令为: (t,w是符号变量) Fw=fourier(ft,t,w) 求ft的fourier变换Fw ft=ifourier(Fw,w,t) 求Fw的fourier逆变换ft,25,Fourier变换示例,例 求其Fourier变换与反变换。 解: syms t w ut=sym(Heaviside(t); %定义单位阶跃函数 UT=fourier(ut) % Fourier变换 UTC=maple(convert,UT,piecewise,w) UTS=si

18、mple(UT) % 化简 Ut=ifourier(UT,w,t) % Fourier变换 Uts=ifourier(UTS,w,t) 注意:Heaviside/Dirac函数分别为单位阶跃/脉冲函数。,26,Laplace变换及其反变换*,Laplace变换及其反变换的定义为:,MATLAB中实现Laplace变换及其逆变换的指令为:(s,t是符号变量) Fs=laplace(ft,t,s) 求ft的laplace变换Fs ft=ilaplace(Fs,s,t) 求Fs的laplace逆变换ft,27,Laplace变换示例,【例】验证Laplace时移性质,解: syms t s;t0=sym(t0,positive); ft=sym(f(t-t0)*sym(Heaviside(t-t0) FS=laplace(ft,t,s),FS_t=ilaplace(FS,s,t) 结果: ft =f(t-t0)*Heaviside(t-t0) FS =exp(-s*t0)*laplace(f(t),t,s) FS_t =f(t-t0)*Heaviside(t-t0),28,Z变换及其反变换*,一个离散因果序列的Z变换及其反变换的定义为:,MATLAB中实现Z变换及其逆变换的指令为: (n

温馨提示

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

评论

0/150

提交评论