欧拉算法

定义

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

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

非线性方程都是所谓“解不出来”的,即使是 d y d x = y 2 + x 2 \frac{\mathrm{ d}y}{\mathrm{d}x}=y^2+x^2 dxdy​=y2+x2。对于用微分方程解决实际问题来说,数值解法是一个重要的手段。

公式推导

设微分方程为
{ d y d x = f ( x n , y ( x n ) ) , a ≤ x ≤ b y ( a ) = y 0 \begin{cases} \frac{\mathrm{ d}y}{\mathrm{d}x}=f(x_n,y(x_n)),&a\leq x \leq b\\ y(a)=y_0 \end{cases} {dxdy​=f(xn​,y(xn​)),y(a)=y0​​a≤x≤b

  • 差商近似导数

    若用向前差商 y ( x n + 1 ) − y ( x n ) h \frac{y(x_{n+1})-y(x_n)}{h} hy(xn+1​)−y(xn​)​代替 y ′ ( x n ) y'(x_n) y′(xn​)带入微分方程 d y d x = f ( x n , y ( x n ) ) \frac{\mathrm{ d}y}{\mathrm{d}x}=f(x_n,y(x_n)) dxdy​=f(xn​,y(xn​))中,可得
    y ( x n + 1 ) − y ( x n ) h ≈ f ( x n , y ( x n ) ) y ( x n + 1 ) = y ( x n ) + h f ( x n , y ( x n ) ) \frac{y(x_{n+1})-y(x_n)}{h} \approx f(x_n,y(x_n))\\ y(x_{n+1})=y(x_n)+hf(x_n,y(x_n)) hy(xn+1​)−y(xn​)​≈f(xn​,y(xn​))y(xn+1​)=y(xn​)+hf(xn​,y(xn​))

如果用 y ( x n ) y(x_n) y(xn​)的近似值 y n y_n yn​代入上式右端,所得结果作为 y ( x n + 1 ) y(x_{n+1}) y(xn+1​)得近似值,记为 y n + 1 y_{n+1} yn+1​,则有
y n + 1 = y n + h f ( x n , y n ) , n = 0 , 1 , ⋯ , N − 1 y_{n+1}=y_n+hf(x_n,y_n),n=0,1,\cdots,N-1 yn+1​=yn​+hf(xn​,yn​),n=0,1,⋯,N−1
这样,微分方程的近似解可以通过求解下述式子来获得
{ y n + 1 = y n + h f ( x n , y n ) , n = 0 , 1 , ⋯ , N − 1 y 0 = y ( a ) \begin{cases} y_{n+1}=y_n+hf(x_n,y_n),& n=0,1,\cdots,N-1\\ y_0=y(a) \end{cases} {yn+1​=yn​+hf(xn​,yn​),y0​=y(a)​n=0,1,⋯,N−1

算法缺点

欧拉算法简单地取切线地端点作为起点来计算,当步数增多时,误差会因积累而越来越大。因此,欧拉算法一般不用于实际计算。

数学建模——欧拉算法(求解常微分方程)相关推荐

  1. [计算机数值分析]改进欧拉格式解常微分方程的初值问题

    欧拉方法yn+1 = yn +hf(xn,yn) 是一种显式算法,计算量小,但精度很低.梯形方法yn+1 = yn + h / 2 *[f(xn,yn) + f(xn+1,yn+1)] 虽然提高了精度 ...

  2. 隐式欧拉解常微分方程c语言,利用欧拉方法求常微分方程近似数值解.doc

    利用欧拉方法求常微分方程近似数值解,欧拉微分方程,欧拉运动微分方程,欧拉平衡微分方程,欧拉型微分方程,微分方程的欧拉算法,微分方程的欧拉解法,欧拉型常微分方程,偏微分方程数值解,微分方程数值解法 利用 ...

  3. 数学建模_数学模型的分类数学建模十大算法

    数学模型的分类 数学建模十大算法 1.蒙特卡罗算法 (该算法又称随机性模拟算法, 是通过计算机仿真来解决问题的算法, 同时可以 通过模拟可以来检验自己模型的正确性,比较好用的算法) 2.数据拟合.参数 ...

  4. 蹦极模型matlab仿真,科学网—蹦极的数学建模及其龙格-库塔法求解方法 - 赵也非的博文...

    论文: 蹦极的数学建模及其龙格-库塔法求解方法 在"华东师范大学首届研究生数学建模竞赛"中,获得二等奖. 发表日期: 2007年5月 摘要: 本文通过参照题中给出的数据,对蹦极者在 ...

  5. 梅森数形如2 ​n ​​ −1的素数称为梅森数(Mersenne Number)。例如2 ​2 ​​ −1=3、2 ​3 ​​ −1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了2 ​3

    形如2 ​n ​​ −1的素数称为梅森数(Mersenne Number).例如2 ​2 ​​ −1=3.2 ​3 ​​ −1=7都是梅森数.1722年,双目失明的瑞士数学大师欧拉证明了2 ​31 ​ ...

  6. 【数学建模】2003年全国大学生数学建模竞赛B题求解

    目录 [数学建模]2003年全国大学生数学建模竞赛B题求解 [数学建模]2003年全国大学生数学建模竞赛B题求解 model: title CUMCM-2003B-01; sets: cai / 1. ...

  7. matlab:使用欧拉方法求解微分方程

    书目:<数值方法(matlab版)>,作者周璐等译 %欧拉方法求解微分方程function [t,y] = my_euler(f, t0, tf , y0, h)%f-函数: t0,tf: ...

  8. 欧拉算法及其改进算法

    电磁场中微积分方程的仿真实验(欧拉算法) 一.Euler公式 以当前点的值为初值,当前点的导数为导数,计算下一个步长的点的值. 代码实现如下: from matplotlib import pyplo ...

  9. matlab欧拉方程求解微分方程并和ode45对比结果

    1.内容简介 matlab欧拉方程求解微分方程并和ode45对比结果 2.内容说明 略 3.仿真分析 clc close all clear %% ode45方法 y0 = [8.5;2;1];%初始 ...

最新文章

  1. python编写脚本方法_【Python】教你一步步编写banner获取脚本
  2. 用python3编写彩虹的代码_[面试题目]如何用三个Div实现彩虹效果?
  3. c语言字符串作为函数返回值的类型,返回字符串类型的函数怎么写?
  4. 微型计算机滑动平均值滤波器方程,微型计算机控制技术期末复习2011.ppt
  5. 设计模式在Netty 中的应用-单例模式源码举例
  6. Spring对JNDI的支持方法
  7. Java Optionals获得更具表现力的代码
  8. 个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔
  9. [html] 写页面布局时你有考虑过分辨率因素吗?还要考虑哪些因素呢
  10. mysql集群和主从区别_搭建MySQL主从集群,主从复制过程中同步延迟问题
  11. 牛顿下山法python_一文看懂牛顿法(附Python实现)
  12. TLE5012B ESP32驱动程序、硬件电路设计、4线SPI通信,驱动完美兼容4线SPI不用改MOSI开漏推挽输出
  13. python绘制音频频谱_Python 读取wav画频谱
  14. 《iOS8 Swift编程指南》类书图像
  15. 好的技术不一定能给你带来财富,但是好的工具一定可以让你创造财富
  16. MATLAB神经网络工具箱学习
  17. 现在出纳记账手写还是用计算机,出纳现金日记账的手写样本
  18. 学生作业信息管理系统
  19. DirectSOFT(光洋PLC编程软件)v6.3官方版
  20. 使用机器学习预测股价

热门文章

  1. Provide/inject 真的可以取代 Vuex 吗?
  2. 分段函数的计算 程序编写
  3. 独行月球:沈腾版云天明起承转合破中庸 | 真北影评
  4. android 截屏 效率,android 截屏以及对该图进行模糊
  5. 在word中使用vba遍历Range对象的Characters
  6. ROS 2 Humble Hawksbill 之 f1tenth gym
  7. 销巴生活全返平台模式需注意的6大原则性问题
  8. POP店铺设置京东拼购与拼购店铺一样么?
  9. 即构服务端录制SDK上线,音视频数据实现本地存储录制回放
  10. python 炒股公式_同事用Python炒股赚了3W,我酸了...