欧拉法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欧拉法的MATLAB实现
班级:123082--04 姓名:应业敏学号:20081001088
摘要:
在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解。
它是一种解决常微分方程数值积分的最基本的一类显型方法(Explicit method)。
欧拉法(euler method)是以流体质点流经流场中各空间点的运动即以流场作为描述对象研究流动的方法。
它不直接追究质点的运动过程,而是以充满运动液体质点的空间——流场为对象。
研究各时刻质点在流场中的变化规律。
将个别流体质点运动过程置之不理,而固守于流场各空间点。
通过观察在流动空间中的每一个空间点上运动要素随时间的变化,把足够多的空间点综合起来而得出的整个流体的运动情况。
基本思想:
基本思想是迭代。
其中分为前进的EULER法、后退的EULER法、改进的EULER法。
所谓迭代,就是逐次替代,最后求出所要求的解,并达到一定的精度。
误差可以很容易的计算出来。
特点:
单步,显式,一阶求导精度,截断误差贰阶
缺点:
欧拉法简单地取切线的端点作为下一步的起点进行计算,当步数增多时,误差会因积累而越来越大。
因此欧拉格式一般不用于实际计算。
改进欧拉格式:
为提高精度,需要在欧拉格式的基础上进行改进。
采用区间两端的函数值的平均值作为直线方程的斜率。
改进欧拉法的精度为二阶。
算法为:
微分方程的本质特征是方程中含有导数项,数值解法的第一步就是设法消除其导数值,这个过程称为离散化。
实现离散化的基本途径是用向前差商来近似代替导数,这就是欧拉算法实现的依据。
欧拉(Euler)算法是数值求解中最基本、最简单的方法,但其求解精度较低,一般不在工程中单独进行运算。
所谓数值求解,就是求问题的解y(x)在一系列点上的值y(xi)的近似值yi。
对于常微分方程:
,x∈[a,b]
y(a) = y0
可以将区间[a,b]分成n段,那么方程在第x i点有y'(x i) = f(x i,y(x i)),再用向前
差商近似代替导数则为:,在这里,h是步长,即相邻两个结点间的距离。
因此可以根据xi点和yi点的数值计算出
y i+1来:
,i=0,1,2,L
这就是欧拉格式,若初值y i+ 1是已知的,则可依据上式逐步算出数值解y1,y2,L。
为简化分析,人们常在y i为准确即y i = y(x i)的前提下估计误差y(x i+ 1) − y i + 1,这种误差称为局部截断误差。
如果一种数值方法的局部截断误差为O(h p + 1),则称它的精度是p阶的,或称之为p阶方法。
欧拉格式的局部截断误差为O(h2),由此可知欧拉格式仅为一阶方法。
欧拉公式:
且(i=0,1,2,…,n-1)
局部截断误差是O(h2)
欧拉格式matlab程序为:
x=zeros(1,11);
y=zeros(1,11);
x(1)=0;
y(1)=0;
h=0.1;
for n=1:10
x(n+1)=x(n)+h;
y(n+1)=y(n)+h*feval(@myf4,x(n),y(n));
end
E=[x,y]
y1=fz(x)
实例:
用欧拉格式解方程:
10(1)(0)0
y x y y '=-⎧⎨
=⎩,
并与准确解y(x)=e 2x
画图比较。
解:
微分方程的函数文件:
function z=@myf4(x,y) z=10*x.*(1-y);
准确解的函数文件:
function fz=fz(x) fz=1-exp(-5*(x.^2)); 在matlab 上运行后,结果为:
准确解:
y1 =
0 488 513 564 607 671 834 1372 1592 1826 2433
Euler 格式:
E =
Columns 1 through 12
0 1 2 3 4 5 6 7 8 9 10 Columns 13 through 22
0 485 503 542 580 647 805 1123 1362 1578 1890 在matlab 中图像比较为:
结果:
由上图我们可以看出,用欧拉方法求解做出来的图与准确解的图比较相差较大,即欧拉方法求解的误差较大。
微分方程数值解法
实习报告
学院:数理学院
学号:20081001088
姓名:应业敏
班级:123082--04。