欧拉法的来源

  在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解。它是一种解决常微分方程数值积分的最基本的一类显型方法(Explicit method)。

什么是欧拉法

  欧拉法是以流体质点流经流场中各空间点的运动即以流场作为描述对象研究流动的方法。——流场法

  它不直接追究质点的运动过程,而是以充满运动液体质点的空间——流场为对象。研究各时刻质点在流场中的变化规律。将个别流体质点运动过程置之不理,而固守于流场各空间点。通过观察在流动空间中的每一个空间点上运动要素随时间的变化,把足够多的空间点综合起来而得出的整个流体的运动情况。

  常微分方程的数值解法的一种。基本思想是迭代。其中分为前进的EULER法、后退的EULER 法、改进的EULER法。所谓迭代,就是逐次替代,最后求出所要求的解,并达到一定的精度。误差可以很容易的计算出来。

欧拉算法

  微分方程的本质特征是方程中含有导数项,数值解法的第一步就是设法消除其导数值,这个过程称为离散化。实现离散化的基本途径是用向前差商来近似代替导数,这就是欧拉算法实现的依据。欧拉(Euler)算法是数值求解中最基本、最简单的方法,但其求解精度较低,一般不在工程中单独进行运算。所谓数值求解,就是求问题的解y(x)在一系列点上的值y(xi)的近似值yi。对于常微分方程:

  ,x∈[a,b]

  y(a) = y0

  可以将区间[a,b]分成n段,那么方程在第xi点有y'(xi) = f(xi,y(xi)),再用向前差商近似代替导数则为:,在这里,h是步长,即相邻两个结点间的距离。因此可以根据xi点和yi点的数值计算出yi+1来:

  ,i=0,1,2,L

  这就是欧拉格式,若初值yi + 1是已知的,则可依据上式逐步算出数值解y1,y2,L。

  为简化分析,人们常在yi准确yi = y(xi)的前提下估计误差 y(xi + 1) − yi + 1,这种误差称为局部截断误差。

  如果一种数值方法的局部截断误差为O(hp + 1),则称它的精度是p阶的,或称之为p阶方法。欧拉格式的局部截断误差为O(h2),由此可知欧拉格式仅为一阶方法。

欧拉公式

  

  且 (i=0,1,2,…,n-1)

  局部截断误差是O(h2)

非形式化的几何诠释

考虑计算下面一个未知曲线的形状:它具有给定的起点并且满足一个给定的微分方程。这里,所谓“微分方程”可以看作能够通过曲线上任意点的位置而计算出这一点的切线斜率的公式。

思路是,一开始只知道曲线的起点,曲线其他部份是未知的,不过通过微分方程,的斜率可以被计算出来,也就得到了切线。

顺着切线向前走一小步到点。如果我们假设是曲线上的一点(实际上通常不是),那么同样的道理就可以确定下一条切线,依此类推。在经过几步之后,一条折线就被计算出来了。大部分的情况下,这条折线与原先的未知曲线偏离不远,并且任意小的误差都可以通过减少步长来得到(虽然对于刚性方程而言会比较复杂)。

欧拉方法的推导

以以下微分方程为例

希望用y 在点(t0,y(t0)) 附近的线性近似来得到其近似解。利用时间 tn 时的数值,若用单步的欧拉方法,可得到时间tn+1 =&nbsp ;tn + h 时的近似值如下:

欧拉方法是一种显型方法,也就是说yn + 1 的解是yi, 的显函数。

欧拉方法可以求解一阶的微分方程,一个N阶的微分方程可以用导入N − 1 个变数来表示y' , y'', ..., y(N) 的方式,分解N个一阶的微分方程。因此可以用欧拉方法求解以下的向量 来得到高阶微分方程的解。

改进的欧拉算法

  先用欧拉法求得一个初步的近似值,称为预报值,然后用它替代梯形法右端的yi+1再直接计算 fi+1,得到校正值yi+1,这样建立的预报-校正系统称为改进的欧拉格式:

  预报值

  校正值

  它有下列平均化形式:

  

  且

  且

  它的局部截断误差为O(h3),可见,改进欧拉格式较欧拉格式提高了精度,其截断误差比欧拉格式提高了一阶。

  注:欧拉法用差商 近似代替y(xi)的导数,局部截断误差较大;改进欧拉法先用欧拉法求出预报值,再利用梯形公式求出校正值,局部截断误差比欧拉法低了一阶,较大程度地提高了计算精度。

Euler-Maruyama discretization("欧拉-丸山"数值解法)的更多相关文章

  1. HDU2824 The Euler function(欧拉函数)

    题目求φ(a)+φ(a+1)+...+φ(b-1)+φ(b). 用欧拉筛选法O(n)计算出n以内的φ值,存个前缀和即可. φ(p)=p-1(p是质数),小于这个质数且与其互质的个数就是p-1: φ(p ...

  2. hdu2824 The Euler function(欧拉函数个数)

    版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/36426357 题目链接:h ...

  3. The Euler function(欧拉函数)

    The Euler function Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) ...

  4. hdu 2824 The Euler function(欧拉函数)

    如果打表的话会超内存,我想到了一种方法解决这个问题.题目给出的数据时3000000,我将三百万分成300个数据,将整万的数据存储下来,计算的时候,先计算x和y之间整万的数据,然后再计算零散数据. 想法 ...

  5. [Project Euler] 来做欧拉项目练习题吧: 题目013

    问题描述: Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 371072 ...

  6. HDOJ 1787 GCD Again(欧拉函数)

    GCD Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. POJ3090_Visible Lattice Points【欧拉函数】

    Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5653 Accepted: 333 ...

  8. nyoj 1007 GCD(数学题 欧拉函数的应用)

    GCD 描述 The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b) ...

  9. 欧拉函数 || LightOJ 1370 Bi-shoe and Phi-shoe

    给出x,求最小的y使y的欧拉函数大于等于x *解法:i).求出1e6之内的数的欧拉函数,遍历找             ii).求比x大的第一个质数——因为每个质数n的欧拉函数都是n-1 wa一次是因 ...

随机推荐

  1. wxWidgets

    wxWidgets Code::Blocks环境 Code::Blocks下载: Code::Blocks使用: codeblocks-16.01mingw-setup.exe 它的gcc版本为4.9 ...

  2. ASP.NET五步打包下载Zip文件

    本文版权归博客园和作者吴双共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws 首先分享几个振奋人心的新闻: 1.谷歌已经宣布加入.NET基金会 2.微软加入Linux基金会, ...

  3. CSS3鼠标滑过图标放大以及旋转

    本人是HTML5-CSS3初学者,这次分享一款纯CSS3实现的图片动画,当鼠标滑过小图标时,图标会放大,同时图标会出现旋转的动画效果.我们在很多个性化个人博客中经常看到鼠标滑过人物头像后头像图片旋转就 ...

  4. Mysql性能优化一

    下一篇:Mysql性能优化二 mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包 ...

  5. Css3新特性应用之形状

    一.自适应椭圆 * border-radius特性:    * 可以单独指定水平和垂直半径,并且值可以是百分比,用/(斜杠)分隔这两个值即可(可以实现自适应宽度椭圆).    * 还可以单独指定四个角 ...

  6. 商业智能软件对比评测:FineBI和Tableau

    FineBI和Tableau是比较好的自助式商业智能软件,功能都很强大,是企业数据可视化不可或缺的利器,但两款产品还是有非常大的区别的,例如Tableau的功能全面且深入,更适合专业的数据分析人员,而 ...

  7. 在Asp.net MVC 3 web应用程序中,我们会用到ViewData与ViewBag,对比一下:

    Asp.net MVC中的ViewData与ViewBag ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP. ...

  8. CSS3:backgroud-size和background-origin的使用方法

    backgroud-size CSS3以前,背景图像大小由图像的实际大小决定,background-size指定背景图像的大小. 你可以指定像素或百分比大小,你指定的大小是相对于父元素的宽度和高度的百 ...

  9. 简单说下COALESCE这个日常使用的函数

    COALESCE 作用是返回第一个非空的值. SELECT COALESCE(NULL,NULL,'A','CC') ---- A 原理的话其实也是相当于 case when A is not nul ...

  10. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...