纟沙理工久
数学与计算科学学院
实验报告
实验项目名称 Eular方法求解一阶常微分方程数值解 所属课程名称
偏微分方程数值解 _________________
实验类型 ________________ 验证性 _______________________ 实验日期 ___________ 2015-3-26 _____________________
班 学 姓 成
一、实验概述: 【实验目的】
级 __________
号 _________
名 ________________ 绩 ______________________
欢迎下载
熟练掌握应用显性Eular法和隐式Eular法求解一般一阶常微分方程的近似数 值解。 【实验原理】
虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特 殊类型的方程。求解从实际问题当中归结出来的微分方程主要靠数值解法。欧拉方 法是一类重要的数值解法。这类方法回避解
y(x)的函数表达式,而是寻求它在一系
列离散节点上的近似值,相邻的两个节点的间距称作步长。假定步长为定数。
欧拉方法是一类离散化方法,这类方法将寻求解
y(x)的分析问题转化为计算离
散值值的代数问题,从而使问题获得了实质性的简化。然而随之带来的困难是,由 于数据量往往很大,差分方法所归结出的可能是个大规模的代数方程组。 【实验环境】 1.硬件环境
22软件环境
MATLAB7.0 、实验内容:
欢迎下载
【实验过程】(实验步骤) (一)实验任务
描述某种化学反应过程的方程,利用显性和隐形 微分方程组的近似数值解:
Eualar方法求解下列一阶线性
0.04y1 10 y1y2
0.04% 104 y-i y2 3 1O7y2
4
yi(0) 5(0) 0, ya(0) 0
(二)求解过程 Eular方法:
一阶线性微分方程初值问题
y' f(x,y),a x b y(a) y。 a x0 x.,
.... xn b
( 1)
Xn x nh, h为步长
方程离散化:差分和差商
y'g y1 y0 y1 y0
x1 x0 愀必)y/0
h
y1 y° hf(x°,y°) yn 1 yn hf(X°,y°)
h
(2)
通过初始值y,依据递推公式(2)逐步算出Y1,Y2,....,yn就为显性的Eular方
法。
隐形Eular方法:
y1 y° hf(X1,yJ yn 1 yn hf(Xn1,yn1)
公式(3)即为隐式Eular公式
(3)
欢迎下载
(三) 程序算法 1.利用显式Eular法方求解 利用MATLA进行求解,编写脚本文件如下: 文件名:hql.m % 显性Eular 方法 f0=1; g0 =O;zO=O delta=0.01; time=1; t=0:delta:time; f=zeros(size(t)); g=zeros(size(t)); z=zeros(size(t)); f1=zeros(size(t)); g1=zeros(size(t)); z1=zeros(size(t)); f(1)=f0; g(1)=g0; z(1)=z0; for i=2:le ngth(t) f1(i-1) = -0.04*f(i-1) + 10000*f(i-1)*g(i-1); f(i)=f(i-1)+f1(i-1)*delta; g1(i-1) = 0.04*f(i-1) - 10000*f(i-1)*g(i-1)-3*10A7*g(i-1)A2; g(i)=g(i-1)+g1(i-1)*delta; z1(i-1)=3*10A7*g(i-1)A2; 欢迎下载
z(i)=z(i-1)+z(i-1)*delta;
Fun=f+g+z end
figure plot(t,f. xlabel( ylabel( ti tle(
'o' );
't'); 'y1' 't-y1
);
变化图')
figure plot(t,g, xlabel( ylabel( ti tle(
'o' );
't'); 'y2' 't-y2
);
变化图')
figure plot(t, z, xlabel( ylabel( ti tle(
'o' );
't'); 'y3' 't-y3
);
变化图')
figure
plot(t,Fu n);
xlabel( ylabel( ti tle(
't'); 'y1+y2+y3' 't-y1+y2+y3
);
变化图')
欢迎下载