| | 首页 | 文章中心 | 下载中心 | 本站特供 | 软硬件结合论坛 | 软硬件结合博客 | | |
![]() | |
| 您现在的位置: 中国软硬件结合技术网 >> 文章中心 >> 软件技术 >> Matlab应用 >> 正文 |
|
|||||
| Matlab 应用 | |||||
| 作者:matlabcn 文章来源:MATLAB教学网 点击数: 更新时间:2007-1-13 | |||||
|
常微分方程有时很难求解,MATLAB提供了功能强大的工具,可以帮助求解微分方程。函数dsovle计算常微分方程的符号解。因为我们要求解微分方程,就需要用一种方法将微分包含在表达式中。所以,dsovle句法与大多数其它函数有一些不同,用字母D来表示求微分,D2,D3等等表示重复求微分,并以此来设定方程。任何D后所跟的字母为因变量。方程 >> 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) 让我们举一个二阶微分方程的例子,该方程有两个初始条件: >> 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) 通常,要求解的微分方程含有一阶以上的项,并以下述的形式表示: 通解为: >> y=solve( 'D2y-2Dy-3*y=0 ') y= C1*exp(-x)+C2*exp(3*x) 加上初始条件:y(0)=0和y(1)=1可得到: >> y=solve( ' D2y-2Dy-3*y=0 ' , ' y(0)=0,y(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)) (-6≤x≤2) 微分方程组 函数dsolve也可同时处理若干个微分方程式,下面有两个线性一阶方程。 通解为: >> [f,g]=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)=0和g(0)=1,我们可以得到: >> [f,g]=dsolve( ' Df=3*f+4*g ' , ' Dg=-4*f+3*g ' , ' f(0)=0,g(0)=1 ' ) f= exp(3*x)*sin(4*x) g= exp(3*x)*cos(4*x) |
|||||
| 文章录入:spring78 责任编辑:Polylove | |||||
| 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
Copyright ©2004 - 2006 中国软硬件结合技术网 91tech.net 91tech.cn 91tech.com 站长:Polylove |