首页 | 文章中心 | 下载中心 | 本站特供 | 软硬件结合论坛 | 软硬件结合博客 | 
您现在的位置: 中国软硬件结合技术网 >> 文章中心 >> 软件技术 >> Matlab应用 >> 正文 用户登录 新用户注册
[组图]Matlab 应用            【字体:
Matlab 应用
作者:matlabcn    文章来源:MATLAB教学网    点击数:    更新时间:2007-1-13
 

常微分方程有时很难求解,MATLAB提供了功能强大的工具,可以帮助求解微分方程。函数dsovle计算常微分方程的符号解。因为我们要求解微分方程,就需要用一种方法将微分包含在表达式中。所以,dsovle句法与大多数其它函数有一些不同,用字母D来表示求微分,D2D3等等表示重复求微分,并以此来设定方程。任何D后所跟的字母为因变量。方程 =0用符号表达式D2y=0来表示。独立变量可以指定或由symvar规则选定为缺省。例如,一阶方程dy/dx=1+y2的通解为:

 

>> dsolve( ' Dy=1+y^2 ' )  %  find the general solution

ans=

       -tan(-x+C1)

 

其中,C1是积分常数。求解初值y(0)=1的同一个方程就可产生:

 

>>  dsolve(' Dy=1+y^2 '' y(0)=1 ')  %  add an initial condition

y=

       tan(x+1/4*pi)

 

独立变量可用如下形式指定:

 

>>  dsolve(' Dy=1+y^2 '' y(0)=1 '' v ')  %  find solution to dy/dv

ans=

       tan(v+1/4*pi)

 

让我们举一个二阶微分方程的例子,该方程有两个初始条件:

 

  =cos(2x)-y  (0)=0  y(0)=1

 

>> y=dsolve(' D2y=cos(2*x)-y '' Dy(0)=0 '' y(0)=1 ')

y=

       -2/3*cos(x)^2+1/3+4/3*cos(x)

 

>> y=simple(y)  %  y looks like it can be simplified

y=

       -1/3*cos(2*x)+4/3*cos(x)

 

通常,要求解的微分方程含有一阶以上的项,并以下述的形式表示:

 

-2 -3y=0

通解为:

 

>> y=solve( 'D2y-2Dy-3*y=0 ')

y=

       C1*exp(-x)+C2*exp(3*x)

 

加上初始条件:y(0)=0y(1)=1可得到:

 

>> y=solve( ' D2y-2Dy-3*y=0 ' ' y(0)=0y(1)=1 ' )

y=

       1/(exp(-1)-exp(3))*exp(-x)-1/(exp(-1)-exp(3))*exp(3*x)

 

>> y=simple(y)  %  this looks like a candidate for simplification

y=

       -(exp(-x)-exp(3*x))/(exp(3)-exp(-1))

 

>> pretty(y)  %   pretty it up

           exp(-x)-exp(3 x)

       - ---------------------

          exp(3) -exp(-1)

 

现在来绘制感兴趣的区域内的结果。

 

>> ezplot(y[-6 2])

 

22.3   符号函数y=-(exp(-x)-exp(3*x))/(exp(3)-exp(-1))  (-6x2)

 

微分方程组

 

函数dsolve也可同时处理若干个微分方程式,下面有两个线性一阶方程。

              =3f+4g            =-4f+3g

 

通解为:

 

>> [fg]=dsolve( ' Df=3*f+4*g ' ' Dg=-4*f+3*g ' )

f=

       C1*exp(3*x)*sin(4*x)+C2*exp(3*x)*cos(4*x)

g=

       -C2*exp(3*x)*sin(4*x)+C1*exp(3*x)*cos(4*x)

 

加上初始条件:f(0)=0g(0)=1,我们可以得到:

 

>> [fg]=dsolve( ' Df=3*f+4*g ' ' Dg=-4*f+3*g ' ' f(0)=0g(0)=1 ' )

f=

  exp(3*x)*sin(4*x)

g=

  exp(3*x)*cos(4*x)

文章录入:spring78    责任编辑:Polylove 
  • 上一篇文章: 利用matlab解决桌球射击方位角

  • 下一篇文章: 没有了
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
          最新热点       最新推荐       相关文章
  • 利用matlab解决桌球射击方位…

  • 数据的输入与输出应用到的函…

  • matlab二维绘图

  • matlab数值计算

  • Matlab中Uicontrol 对象属性…

  • matlab有限元法计算分析程序…

  • matlab安装问题终极解决方案

  • matlab的功能及对网站的感谢

  • MATLAB复习大纲

  • 8节点等参单元matlab编程

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)