数学实验三.docx

上传人:b****2 文档编号:17106510 上传时间:2023-07-22 格式:DOCX 页数:15 大小:291.02KB
下载 相关 举报
数学实验三.docx_第1页
第1页 / 共15页
数学实验三.docx_第2页
第2页 / 共15页
数学实验三.docx_第3页
第3页 / 共15页
数学实验三.docx_第4页
第4页 / 共15页
数学实验三.docx_第5页
第5页 / 共15页
数学实验三.docx_第6页
第6页 / 共15页
数学实验三.docx_第7页
第7页 / 共15页
数学实验三.docx_第8页
第8页 / 共15页
数学实验三.docx_第9页
第9页 / 共15页
数学实验三.docx_第10页
第10页 / 共15页
数学实验三.docx_第11页
第11页 / 共15页
数学实验三.docx_第12页
第12页 / 共15页
数学实验三.docx_第13页
第13页 / 共15页
数学实验三.docx_第14页
第14页 / 共15页
数学实验三.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数学实验三.docx

《数学实验三.docx》由会员分享,可在线阅读,更多相关《数学实验三.docx(15页珍藏版)》请在冰点文库上搜索。

数学实验三.docx

数学实验三

实验三种群数量的状态转移——微分方程

一、实验目的及意义

[1]归纳和学习求解常微分方程(组)的基本原理和方法;

[2]掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;

[3]熟悉MATLAB软件关于微分方程求解的各种命令;

[4]通过范例学习建立微分方程方面的数学模型以及求解全过程;

通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。

这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。

二、实验内容

1.微分方程及方程组的解析求解法;

2.微分方程及方程组的数值求解法——欧拉、欧拉改进算法;

3.直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解);

4.利用图形对解的特征作定性分析;

5.建立微分方程方面的数学模型,并了解建立数学模型的全过程。

三、实验步骤

1.开启软件平台——MATLAB,开启MATLAB编辑窗口;

2.根据微分方程求解步骤编写M文件

3.保存文件并运行;

4.观察运行结果(数值或图形);

5.根据观察到的结果和体会写出实验报告。

四、实验要求与任务

根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论)

基础实验

1.求微分方程的解析解,并画出它们的图形,

y’=y+2x,y(0)=1,0

编写程序如下:

y=dsolve('Dy=y+2*x','y(0)=1','x')

输出结果为:

y=

  3*exp(x)-2*x-2

 

画图程序如下:

x=0:

0.1:

2;

y=-2-2*x+3*exp(x);

plot(x,y,'r-*')

xlabel('x'),ylabel('y'),title('y=-2-2*x+3*exp(x)')

图像如下:

2.用向前欧拉公式和改进的欧拉公式求方程y’=y-2x/y,y(0)=1(0≤x≤1,h=0.1)的数值解,要求编写程序,并比较两种方法的计算结果,说明了什么问题?

实验过程:

为了后面在数值解和图像上更加直观的比较两种方法的优越性,所以首先我们应该先求出解析解。

程序如下:

y=dsolve(‘Dy=y-2*x/y’,y(0)=1’,’x’)

输出结果为:

y=

(2*x+1)^(1/2)

比较优越性程序如下:

x1

(1)=0;y1

(1)=1;y2

(1)=1;h=0.1;

for k=1:

10 

   x1(k+1)=x1(k)+h; 

   y1(k+1)=y1(k)+h*(y1(k)-2*x1(k)/y1(k)); 

y2(k+1)=y2(k)+h/2*(y2(k)-2*x1(k)/y2(k)+y2(k)+h*(y2(k)-2*x1(k)/y2(k))-2*x1(k+1)/(y2(k)+h*(y2(k)-2*x1(k)/y2(k))));   

end 

x1,y1,y2 

x=0:

0.1:

1;

y=(1+2*x).^(1/2)  

plot(x,y,x1,y1,'r-*',x1,y2,'k-o') 

结果如下:

x1=

  0   0.1000  0.2000  0.3000 0.4000  

0.50000.6000   0.7000 0.8000  0.9000            

1.0000

  y1=

1.0000    1.1000    1.1918    1.2774    1.3582

1.4351    1.5090    1.5803    1.6498    1.7178

1.7848 

y2=

1.0000 1.0959   1.1841 1.26621.34341.4164 1.4860   1.5525 1.61651.6782

  1.7379

 

y=

1.0000 1.0954   1.1832 1.2649 1.34161.4142 1.4832   1.5492 1.6125 1.6733

   1.7321

图像如下:

说明:

改进欧拉法的解比向前欧拉得到的解更加接近于解析解(即精确解)。

3.

Rossler微分方程组:

 

当固定参数b=2,c=4时,试讨论随参数a由小到大变化(如a∈(0,0.65))而方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状?

程序如下:

 

functionxdot=fish(t,x)

b=2;c=4;

globala;

xdot=[-x

(2)-x(3);x

(1)+a*x

(2);b+x(3)*(x

(1)-c)];

end

x0=[0,0,0];

globala;

fora=0:

0.65/13:

0.65

[t,x]=ode45(‘fish',[0,150],x0);

x1=(:

1);x2=(:

2);x3=(:

3);

subplot(1,2,1),

plot(t,x1,'r',t,x2,'g',t,x3,'b');

title('x(红色),y(绿色),z(篮色)随t变化情况');

xlabel(‘t’);

subplot(1,2,2),plot(x1,x2,x3);

title(‘相图’);

xlabel(x’);ylabel(‘y’);zlabel(‘z’);

pause

end

实验结果如下:

(1)a=0

(2)a=0.05

(3)a=0.1

(4)a=0.15

(5)a=0.2

(6)a=0.25

 

(7)a=0.3

(8)a=0.35

(9)a=0.4

(10)a=0.45

(11)a=0.5

(12)a=0.55

当a=0.05时,x,y,z分别收敛于0,-0.5,0.5

当a=0.1时,仍然收敛于上述三个值

当a>0.15时,可以看到图像逐渐发散,并且随着a值的变大,出现周期性的振荡。

从右边的相图可以看见,当a增大时,单个极限环的稳定性逐渐失去,进入第二周期极限环,当a值继续变大时,第二周期的极限环的稳定性也失去,当a一直变大时,任意周期的极限环都将失去其稳定性,

这就是产生混沌的必要条件。

 

4.Apollo卫星的运动轨迹的绘制

 

实验过程:

 

首先创建一个M文件如下:

 

functionf=fun(x,y)

u=1/82.45;

u1=1-u;

r1=sqrt((y1)+u)^2+y(3)^2),

r2=sqrt((y

(1)-u1)^2+y(3)^2);

f=[y

(2);2*y(4)+y

(1)-u1*(y

(1)+u)/(r1)^3-u*(y

(1)-u1)/(r2)^3;

y(4);-2*y

(2)+y(3)-u1*y(3)/(r1)^3-u*y(3)/(r2)^3];

然后,绘图程序如下:

 

[x,y]=ode45('fun',[0,20],[1.2,0,0,-1.04935751]);

plot(y(:

1),y(:

3)),

gridon

title('Appollo卫星运动轨迹'),xlabel('X'),ylabel('Y')

实验结果如下:

应用实验

盐水的混合问题

一个圆柱形的容器,内装350升的均匀混合的盐水溶液。

如果纯水以每秒14升的速度从容器顶部流入,同时,容器内的混合的盐水以每秒10.5升的速度从容器底部流出。

开始时,容器内盐的含量为7千克。

求经过时间t后容器内盐的含量。

 

过程:

分析:

 由于容器的容积相对于单位时间内水的体积变化来说很大,所以可以忽略溶质盐在在不同浓度的

水内扩散至均匀的时间。

根据在每个微小的时间段内,减少的盐加上容器内剩余的盐等于开始的盐量建立方程。

实验过程:

假设:

 

  容器内盐的含量在每一时刻都是均匀的,记y(t)为每时刻容器内盐的含量,T(t)为每时刻

容器内水的体积,盐水流出的速率为v1,纯水流入的速率为v2则,在△t内有:

         

y(t+△t)=y(t)-y(t)/T(t)*v1△t

 

又      

T(t)=T(t0)+(v2-v1)t, 

原方程可化为:

  y(t)+dy=y(t)-y(t)v1dt/(T(t0)+(v2−v1)t),

 

化简得:

        

dy/dt=−yt*v1/(T(t0)+(v2−v1)t)

 

又由题目已知条件可得:

T(t0)=350,v1=10.5,v2=14,y(0)=7,解微分方程得:

                  

y(t)=

7000000/(t+100)^3

 

实验结果及分析:

 

        当t=0时,y(0)=7,当t趋向于无穷大时,y(t)也趋向于0,但总有y(t)>0,与实际情况相符的较好.

 

总结体会:

1.通过本次实验,我进一步熟悉了MatLab的工作环境,学会了用MatLab解方程的方法,掌握了MatLab数组的操作,强化了用MatLab作图的能力。

2.使我对数学建模的过程有了一定的掌握,而使用matlab的使用方法和使用数学模型解决问题的思路有了进一步的了解和掌握,对以后数学实验的学习打下基础。

Matlab的强大功能和简洁编程使平时一些很难得问题解决起来得心应手。

3.学会怎样解微分方程。

还要学会怎样建立合理的数学模型,以便使我们的实验结果更加正确

4.;掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;熟悉MATLAB软件关于微分方程求解的各种命令.

5.了解和熟悉了微分方程及方程组的解析求解法.

6.直接使用MATLAB命令对微分方程(组)进行求解(包括解析解、数值解)以及利用图形对解的特征作定性分析。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2