微分方程(组)的解析解和数值解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微分方程的求解仿真问题

一. 上机目的

1. 了解求微分方程(组)的解的知识。

2. 学习Matlab 中求微分方程的各种解的函数,如dsolve 命令、ode45函数等等,其中注意把

方程化为新的方程的形式。

3. 掌握用matlab 编写程序解决求解微分方程的问题。

二. 上机内容

1、求高阶线性齐次方程:y ’’’-y ’’-3y ’+2y=0。

2、求常微分方程组

020210cos ,224,0

t t t dx dy x t x dt dt dx dy y e y dt dt =-=⎧+-==⎪⎪⎨

⎪++==⎪⎩

3、求解

分别用函数ode45和ode15s 计算求解,分别画出图形,图形分别标注标题。

4、求解微分方程

,1)0(,1'=++-=y t y y

先求解析解,在[0,1]上作图;

再用ode45求数值解(作图的图形用“o ”表示),在同一副图中作图进行比较,用不同的颜色表示。

三. 上机方法与步骤

给出相应的问题分析及求解方法,并写出Matlab程序,并有上机程序显示截图。题1:直接用命令dsolve求解出微分方程的通解。

Matlab程序:

dsolve('D3y-D2y-3*Dy+2*y','x')

题2:将微分方程组改写为

5cos2exp(2)

5cos2exp(2)

(0)2,(0)0

dx

t t x y

xt

dy

t t x y

dt

x y

=+---

=-+-+-

==

,再用命令dsolve求解微分方

程的通解。Matlab程序:

建立timu2.m如下:

[x,y]=dsolve('Dx=5*cos(t)+2*exp(-2*t)-x-y','Dy=-5*cos(t)+2*exp(-2*t)+x-y ','x(0)=2,y(0)=0','t')

x=simple(x)

y=simple(y)

题3:由于所给的微分方程为一阶微分方程,则直接用函数ode45和ode15s求解微分方程的数值解,具体程序如下:

(1)Matlab程序:

建立M文件fun2.m,如下:

function dy=fun2(t,y);

dy=zeros(2,1);

dy(1)=0.04*(1-y(1))-(1-y(2))*y(1)+0.0001*((1-y(2))^2);

dy(2)=-10000*y(1)+3000*((1-y(2))^2);

取t0=0,tf=100,建立程序timu32.m如下:

t0=0;tf=100;

[T,Y]=ode45('fun2',[0 100],[1 1]);

plot(T,Y(:,1),'+',T,Y(:,2),'*');

title('ode45图形');

(2)Matlab程序:

建立M文件fun1.m,如下:

function dy=fun1(t,y);

dy=zeros(2,1);

dy(1)=0.04*(1-y(1))-(1-y(2))*y(1)+0.0001*((1-y(2))^2); dy(2)=-10000*y(1)+3000*((1-y(2))^2);

取t0=0,tf=100,建立程序timu3.m如下:

t0=0;tf=100;

[T,Y]=ode15s('fun1',[0 100],[1 1]);

plot(T,Y(:,1),'+',T,Y(:,2),'*');

title('ode15s图形');

题4:

Matlab程序:

(1)先建立程序timu41.m如下:

y=dsolve('Dy=-y+t+1','y(0)=1','t') 截图如下:

作图:建立程序tuxing41.m如下:

ezplot('t + 1/exp(t)',[0,1])

title('t + 1/exp(t)')

(2)先建立M文件fun3.m,如下:

function dy=fun3(t,y)

dy=zeros(1,1);

dy(1)=-y(1)+t+1;

再取t0=0,tf=1,建立程序tuxing42.m如下:t0=0;tf=1;

[T,Y]=ode45('fun3',[0 1],[1]);

plot(T,Y,'ro');

title('比较图');

t=0:0.1:1;

y=t+1./exp(t);

hold on

plot(t,y,'b');

四.上机结果

题1结果为:

ans =

C4*exp(2*x) + C2*exp(x*(5^(1/2)/2 - 1/2)) + C3/exp(x*(5^(1/2)/2 + 1/2))

题2结果为:

x =

4*cos(t) - 2/exp(2*t) + 3*sin(t) - (2*sin(t))/exp(t) y =

sin(t) - 2*cos(t) + (2*cos(t))/exp(t)

题3结果为:

相关文档
最新文档