重庆大学数学模型数学实验作业四资料.doc
文本预览下载声明
开课学院、实验室:数统学院 实验时间 :2015 年 10月28日
课程
名称 数学实验
名 称 种群数量的状态转移——微分方程 实验项目类型 验证 演示 综合 设计 其他 指导
教师 肖剑
实验目的
[1] 归纳和学习求解常微分方程(组)的基本原理和方法;
[2] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;
[3] 熟悉MATLAB软件关于微分方程求解的各种命令;
[4] 通过范例学习建立微分方程方面的数学模型以及求解全过程;
(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。
基础实验
一、问题重述
1.求微分方程的解析解, 并画出它们的图形,
y’= y + 2x, y(0) = 1, 0x1;
2.用向前欧拉公式和改进的欧拉公式求方程y’= y - 2x/y, y(0) = 1 (0≤x≤1,h = 0.1) 的数值解,要求编写程序,并比较两种方法的计算结果,说明了什么问题?
3.Rossler微分方程组:
当固定参数b=2, c=4时,试讨论随参数a由小到大变化(如a∈(0,0.65))而方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状?
4.Apollo卫星的运动轨迹的绘制
二、实验过程
1.编辑程序代码Untitle1:
s=dsolve(Dy=y+2*x,y(0)=1,x)
ezplot(s,[0,1])
运行结果如下:s =3*exp(x) - 2*x – 2
图形为
2.编写程序代码Untitle2:
clc
y=dsolve(Dy=y-2*x/y,y(0)=1,x)
ezplot(y,[0,1])
hold on
x=[];x(1)=0;y1(1)=1;y2(1)=1;
for n=1:10
x(n+1)=x(n)+0.1;
y1(n+1)=1.1*y1(n)-0.2*x(n)/y1(n);
k1=y2(n)-2*x(n)/y2(n);
k2=y2(n)+0.1*k1-2*x(n)/(y2(n)+0.1*k1);
y2(n+1)=y2(n)+0.05*(k1+k2);
end
plot(x,y1,k:,x,y2,k-.)
运行得到y =(2*x + 1)^(1/2),这是解析解图像如下
此题中向前欧拉公式更逼近解析解其实提高精度即n的取值两种方式都可以无限逼近解析解
3.首先编辑函数rossler.m:
function eq=rossler(t,x)
global a b c
b=2;c=4;
eq=[0 -1 -1;1 a 0;x(3) 0 -c]*x+[0;0;b];
然后在命令行窗口输入全局变量,并对a赋值,当a=0.1时
global a b c
a=0.1;
x0=[0;0;0];
[t,x]=ode45(rossler,[0,1000],x0);
plot(t,x(:,1),r,t,x(:,2),k,t,x(:,3),g)
pause
plot3(x(:,1),x(:,2),x(:,3))
grid on
得到的图形为:
当a=0.2,积分区间改为时
当当a=0.6,积分区间改为
由此一系列图可知此空间图线是混沌的
4. 编写函数m文件apollo.m:
function ep=apollo(t,y)
syms y1 y2 y3 y4
u=1/82.45;u1=1-u;
r1=((y(1)+u)^2+y(3)^2)^(1/2);
r2=((y(1)-u1)^2+y(3)^2)^(1/2);
ep(1)=y(2);
ep(2)=2*y(4)+y(1)-u1*(y(1)+u)/r1^3-u*(y(1)-u1)/r2^3;
ep(3)=y(4);
ep(4)=-2*y(2)+y(3)-u1*y(3)/r1^3-u*y(3)/r2^3;
ep=[ep(1);ep(2);ep(3);ep(4)];
运行Untitle4:
[t,y]=ode45(apollo,[0,20],[1.2 0 0 -1);
y1=y(:,1);
y2=y(:,2);
y3=y(:,3);
y4=y(:,4);
pl
显示全部