MATLAB语言课件第3讲MATLAB语言的符号运算.ppt_第1页
MATLAB语言课件第3讲MATLAB语言的符号运算.ppt_第2页
MATLAB语言课件第3讲MATLAB语言的符号运算.ppt_第3页
MATLAB语言课件第3讲MATLAB语言的符号运算.ppt_第4页
MATLAB语言课件第3讲MATLAB语言的符号运算.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

3 MATLAB语言的符号运算,3.1.1 符号变量与基本运算 1、符号变量与符号表达式,3.1 基本符号运算,使用sym()函数可以创建符号变量和符号表达式 例:a=sym(abcd) f=sym(a*x2+b*x+c) 定义了符号变量 f 后,通过 f 可对其进行一系列操作: df=diff(f) df=2*a*x+b nf=int(f) nf=1/3*x3+1/2*x2+c*x,上例中,系统自动地将 x 作为自变量处理,而将a、b、c等作为常量参数。即符号表达式中含有多于一个符号变量时,在没有指定自变量时,Matlab会自行决定自变量。其原则为:除了 i 和 j 之外,字母位置最接近x 的小写字母;如果式子中没有上述字母,则 x 会被视为默认的自变量。,Matlab自变量确定原则如下: 符号表达式 默认自变量 a*x2+b*x+c x 1/(4+cos(t) t 4*x/y x 2*a+b b 2、符号运算 数值运算的大部分运算规则与MATLAB语言的各种数值运算函数都适用于基本符号变量的解析运算。 例:R=sym(-1+sqrt(5)/2) %定义符号数值 syms w t F=sin(w*t) %定义一个正弦函数表达式,3.2 微积分,1、极限 Matlab提供了求表达式极限的函数limit,其基本用法如下: limit(f,x,a) x趋近a limit(f,x,a,left) x左趋近a limit(f,x,a,right) x右趋近a,3.1.2 符号运算的扩展 利用MAPLE数学专用软件实现实现符号运算的扩展。,例: limit(1/x,x,0) limit(1/x,x,0,left) limit(1/x,x,0,right) 例:求如下函数的极限: syms x a limit ( ( ( x+a ) / ( x-a ) ) x , inf ),2、微分 Matlab求微分的函数是diff() 说明: 用diff(f)求 f 对预设独立变量的一次微分; diff(f,t)求 f 对独立变量 t 的一次微分; 用diff(f,n)求 f 对预设独立变量的n次微分 diff(f,t,n)求 f 对独立变量 t 的n次微分; f 可以是标量、向量、矩阵。,例:已知 求 f(x) 的微分。 syms a b c x f= a * x 2 + b * x + c diff( f ) diff( f ,a ) diff( f , a , 2) diff( diff( f ) ,a),3、积分 Matlab求积分的函数是int() 说明: 用int(f)返回 f 对预设独立变量的积分; int(f,t)返回 f 对独立变量 t 的积分; int(f,a,b)求 f 对预设独立变量的积分,积分区间为a,b,a和b为数值式; int(f,t,a,b)求 f 对独立变量 t 的积分,积分区间为a,b,a和b为数值式;, int(f,m,n)求 f 对预设独立变量的积分,积分区间为m,n,m和n为字符式 f 可以是标量、向量、矩阵。 例:求下列积分: f = sym( sqrt( x ) / (1 + x 2 ) ) int( f , 0 , inf ),3.3 方程求解,1、利用符号表达式求解代数方程 例1: 求解一元二次方程 的根。 f=sym(a*x2+b*x+c) solve(f) solve(f,a),2、利用符号表达式求解线性方程组 例2:求解线性代数方程 x+y+z=10 x-y+z=0 2*x-y-z=-4 f1=sym(x+y+z=10); f2=sym(x-y+z=0); f3=sym(2*x-y-z=-4); x,y,z=solve(f1,f2,f3),3.4 微分方程求解,符号运算中的微分方程求解函数可利用如下格式 dsolve(方程1,方程2,) 函数格式说明: 可多至12个微分方程的求解; 默认自变量为x,并可任意指定自变量t,u等; 方程的各阶导数项以大写字母“D”作为标识,后接数字阶数,再接解变量名; 初始条件以符号代数方程给出,如果初始条件项缺省,其默认常数为C1,C2,等; 返回变量的格式为:Y1,Y2,=dsolve(),下面是一些实例: 一阶微分方程 dsolve(Dy=a*y , x ) dsolve(Df=f+sin(t) y= dsolve(Dy)2+y2=1,s) 一阶微分方程,给定初始条件 dsolve(Dy=a*y,y(0)=b) dsolve(Df=f+sin(t),f(pi/2)=0) y= dsolve(Dy)2+y2=1,y(0)=5,s),二阶微分方程 dsolve(D2y=-a2*y) 二阶微分方程,给定初始条件 dsolve(D2y=-a2*y,y(0)=1,Dy(pi/2)=0) 2个微分方程 x,y= dsolve(Dx=y,Dy=-x) f,g= dsolve(Df=3*f+4*g,Dg=-5*f+2*g), 2个微分方程,给定初始条件 x,y= dsolve(Dx=y,Dy=-x,x(0)=0,y(0)=1) f,g= dsolve(Df=3*f+4*g, Dg=-5*f+2*g,f(0)=0,g(0)=1) 3个微分方程,给定初始条件 u,v,w=dsolve(Du=u+v,Dv=-v-2*w, Dw=-u,u(0)=0,v(0)=1,w(0)=1),3.5 微分方程求数值解,微分方程数值求解函数与基本应用格式为: t,y=ode23(fun,T0,Tfinal,Y0) t,y=ode45(fun,T0,Tfinal,Y0) 函数说明: (1)ode23采用龙格-库塔二阶算法 ode45采用龙格-库塔四阶算法 (2)fun为由m函数定义的微分方程组的m函数名。 (3) T0,Tfinal,为数值积分区间,仿真范围 (4)Y0为微分方程的初始条件向量。,例:解下列微分方程组: 初始条件:x1(0)=x2(0)=0 , x3=1e-10,1、求微分方程的数值解 第一步:建立M函数 function xdot=zmfun(t,x) xdot=-8*x(1)/3+x(2)*x(3); -10*x(2)+10*x(3); -x(1)*x(2)+28*x(2)-x(3) 第二步:解微分方程 t_final=100;x0=0;0;1e-10; t,x=ode23(zmfun,0,t_final,x0); plot(t,x),2、求微分方程的解析解 令:x=x1 , y=x2 , z=x3 syms x y z x , y , z=dsolve(Dx=y , Dy=z , Dz=-25*x-15*y-7*z+25 , x(0)=1 , y(0)=1 , z(0)=1) ezplot(x);hold on ezplot(y);ezplot(z) hold off,例:解下列微分方程: 初始条件为:x1(0)=x2(0)=x3(0)=0 , u为单位阶跃输入。 解析解: 令x1=x , x2=y , x3=z x,y,z=dsolve(Dx=y , Dy=z , Dz= - 6*x -11*y - 6*z +2 , x(0)=0 , y(0)=0 , z(0)=0 ),数值解: 第一步:建立M函数 function xdot=zmfun4(t,x) xdot=x(2) ; x(3) ; -6*x(1)-11*x(2)-6*x(3)+2 第二步:解微分方程 x0=0,0,0 ; t_final=100 ; t , x=ode23(zmfun4 , 0 , t_final , x0) plot(t,x),3.6 符号表达式的运算,常用的符号运算函数 symadd(a,b) symsub(a,b) symmul(a,b) symdiv(a,b) sympow(a,b),3.7 符号表达式的简化,常用的符号表达式运算函数 collect(f) 将表达式 f 中同次幂的项合并; expand(f) 将表达式 f 展开; factor(f) 将表达式 f 因式分解; simplify(f) 利用代数规则对 f 进行简化; simple(f) 尽可能对 f 做简化,目的是使表达 式 f 以最少的字表示出来。,3.8 积分变换,1、Fourier变换 调用格式如下: 通过F=fourier(f)求时域函数f的Fourier变换 如果采用F=fourier(f)的格式,默认积分变量是x; 如果采用F=fourier(f,u)的格式,指定u为积分变量; invfourier()为Fourier反变换。,例:计算时间函数的 Fourier变换。 syms t w f1=sym(exp(-t2); F1=fourier(f1,w) 例:计算时间函数的 Fourier变换。 syms t w f2=sym(0.1*exp(-t2)*sin(t-pi/3) F2=fourier(f2,w),例:求下列函数的Fourier反变换 syms w,t sym(sqrt(pi)*exp(-1/4*w2) f1=ifourier(F1),2、Laplace变换 Laplace变换的定义: Laplace反变换的定义: Laplace变换函数的调用格式为: 通过L=laplace(f)求时域函数f的Laplace变换。 通过f=ilaplace(F)求频域函数F的Laplace反变换。,例:求下列函数的Laplace变换: syms t,s f1=sym(t5*sin(t) L=laplace(f,s) syms t,s f2=sym(sin(t)*cos(t) L2=laplace(f2,s),例:求下列函数的Laplace反变换: syms t,s L1=sym(s+3)/(s*(s+1)*(s+2) l1=ilaplace(L1) L2=sym(s2-8)/(s+4)*(s2+16) l2=ilaplace(L2),3、Z变换 Z变换函数的调用格式为:Z=ztrans(f) 求下列函数的Z变换 syms n,z f1=sym(exp(-1*n)*sin(n) Z1=ztrans (f1) Z 反变换

温馨提示

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

评论

0/150

提交评论