实验十 微分方程
- 格式:ppt
- 大小:5.05 MB
- 文档页数:15


1 常微分方程的差分方法实验
实验目的及要求:
(1)深入理解常微分方程的差分方法的原理,学会用差分方法解决某些实际的常微分方程问题,比较这些方法解题的不同之处。
(2)熟悉Matlab编程环境,利用Matlab实现具体的常微分方程。
用Matlab软件实现欧拉方法、改进的欧拉方法、龙格-库塔方法和亚当姆斯方法,并用实例在计算机上计算。
实验内容:
实验题目
(1)取h=0.1,用欧拉方法、改进的欧拉方法、四阶龙格-库塔方法求解初值问题:
0)0(21122yyxy 40x
并与精确解221xxy比较计算结果.
2 (2)分别用二阶亚当姆斯预估校正系统、改进的四阶亚当姆斯预估校正系统求解初值问题0)0(1yyy,,取181.0)2.0(2.0yh,,计算)0.1(y。
实验过程:
(1)f2 .m:
function z=f2(x,y)
z=1/(1+x^2)-2*(y^2);
solvef2.m:
function y=solvef2(x)
y=x./(1+x.^2);
1. Euler方法:
首先编写.Eulerm文件,如下:
function E=Euler(f,a,b,N,ya)
h=(b-a)/N;
y=zeros(1,N+1);
x=zeros(1,N+1);
y(1)=ya;
x=a:h:b;
for i=1:N
x(i+1)=x(i)+h;
y(i+1)=y(i)+h*feval(f,x(i),y(i));
end
E=[x',y'];
1. 改进的Euler方法:
编写文件MendEulerm文件,如下:
function E=MendEuler(f,a,b,N,ya)
h=(b-a)/N;
y=zeros(1,N+1);
x=zeros(1,N+1);
y(1)=ya;
x=a:h:b;
for i=1:N
1 微分方程模型介绍
在研究实际问题时,常常会联系到某些变量的变化率或导数,这样所得到变量之间的关系式就是微分方模型。微分方程模型反映的是变量之间的间接关系,因此,要得到直接关系,就得求微分方程。
求解微分方程有三种方法:
1)求解析解;2)求数值解(近似解);3)定性理论方法。
建立微分方程模型的方法:
1)利用数学、力学、物理、化学等学科中的定理或经过实验检验的规律等来建立微分方程模型。
2)微元分析法
利用已知的定理与规律寻找微元之间的关系式,与第一种方法不同的是对微元而不是直接对函数及其导数应用规律
3)模拟近似法
在生物、经济等学科的实际问题中,许多现象的规律性不很清楚,即使有所了解也是极其复杂的,建模时在不同的假设下去模拟实际的现象,建立能近似反映问题的微分方程,然后从数学上求解或分析所建方程及其解的性质,再去同实际情况对比,检验此模型能否刻画、模拟某些实际现象。
2 下面我们以生态学模型为例介绍微分方程模型的建立过程:
一. 单种群模型
1. 马尔萨斯(Malthus)模型
假定只有一个种群,Nt表示t时刻生物总数,r表示出生率,0t表示初始时刻,则生物总数增长的数学模型为
00d,d(1)ttNtrNttNtN
不难得到其解为0()0rttNtNe.
2. 密度制约模型
由马尔萨斯模型知,种群总数将以几何级数增长,显然与实际不符,因为种群密度增大时,由于食物有限,生物将产生竞争,或因为传染病不再按照增长率r增长,因而有必要修改,在(1)式右端增加一项竞争项。
d(1)(2)dNtNtrNttK
其中K为最大容纳量,可以看出当NtK时,种群的规模不再增大。这个模型就是著名的Logistic模型,可以给出如下解释:由于资源最多仅能维持K个个体,故每个个体平均需要的资源为总资源的1K,在t时刻个体共消耗了总资源的NtK此时资源剩余1NtK,因此Logistic模型表明:种群规模的相对增长率与当时所剩余的资源份量成正比,这种种群密度对种群规模增长的抑制作用。称为密度制约。显然当不考虑密度制约因素时,Logistic方程就变成了Malthus模型。
微分方程模型的建立与求解
微分方程是自然界中许多现象的数学描述,通过建立微分方程模型可以更好地理解和预测各种现象。本文将介绍微分方程模型的建立与求解方法。
一、微分方程模型的建立
微分方程通常用来描述系统内部的变化规律,要建立微分方程模型,首先需要根据具体问题分析系统的特点,确定影响系统变化的因素,并建立相关的数学表达式。
以一个简单的弹簧振子系统为例,假设弹簧的位移为𝑥(𝑡),弹簧的弹性系数为𝑘,质量为𝑚,外力为𝑓(𝑡),则可以建立微分方程模型:
$$ m\\frac{{d^2x}}{{dt^2}} + kx = f(t) $$
二、微分方程模型的求解
1. 解析解法
对于一些简单的微分方程,可以通过解析的方法求解。例如,对于一阶线性微分方程:
$$ \\frac{{dy}}{{dx}} + P(x)y = Q(x) $$
可以通过积分因子的方法求解。
2. 数值解法
对于复杂的微分方程或无法求得解析解的情况,可以借助数值方法进行求解。常用的数值解法包括欧拉方法、龙格-库塔法等,通过逐步迭代逼近真实解。
3. 计算机模拟
借助计算机编程,可以通过数值方法对微分方程进行求解,这在实际工程和科学研究中非常常见。利用计算机程序,可以模拟出系统的运行状态,观察系统的响应特性。
三、实例分析
以简单的振动系统为例,通过建立微分方程模型并利用数值方法进行求解,可以分析系统的振动特性。通过调节参数值,可以观察到系统振动的变化规律,为系统设计和控制提供重要参考。 结论
微分方程模型的建立与求解是数学建模中的重要一环,通过适当的模型建立和求解方法,可以更好地了解和预测系统的行为。在实际应用中,需要综合运用解析方法、数值方法和计算机模拟,以全面分析和解决问题。
以上是关于微分方程模型的建立与求解的介绍,希望对读者有所帮助。
实验4 常微分方程的数值解
【实验目的】
1. 掌握用MATLAB软件求微分方程初值问题数值解的方法;
2. 通过实例学习用微分方程模型解决简化的实际问题;
3. 了解欧拉方法和龙格-库塔方法的基本思想和计算公式,及稳定性等概念。
【实验内容】
1.题目2.
小型火箭初始重量为1400kg,其中包括1080kg燃料。火箭竖直向上发射时燃料燃烧率
为18kg/s,由此产生32000N的推力,火箭引擎在燃烧用尽时关闭。设火箭上升时空气阻力
正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度、速度、加速度,及
火箭到达最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。
模型及其求解 假设在上升过程中,重力加速度不随高度的变化,恒为g=9.8m/s2。
(1)分析引擎关闭前,火箭质量为m,高度为h,速度为v,加速度为a,阻力为f,
则由题意可知:
()140018mmtt,dhvdt,20.4fv
由牛顿第二定律可得:
2320000.49.8140018FdvFfmgvadtmmt总
由此得到一个常微分方程组:
dhvdt
2320000.49.8140018dvv
dtt
初值为v=0m/s,h=0m;条件为1080kg60s18kg/st
根据常微分方程组的初值问题,在MATLAB中计算数值解,记(1)xh,(2)xv
T((1),(2))xxx。源程序为:
function dx=rocket(t,x)
dx=[x(2);(32000-0.4*x(2)^2)/(1400-18*t)-9.8];
ts=0:60;
x0=[0,0];
option=odeset('reltol',1e-3,'abstol',1e-6);
[t,x]=ode45(@rocket,ts,x0,option);
[t,x]
plot(t,x(:,1)),grid,