数学建模——欧拉算法(求解常微分方程)
欧拉算法
定义
定义:在数学和计算机科学中,欧拉方法,命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解。它是一种解决数值常微分方程的最基本的一类显型方法(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)=y0a≤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
算法缺点
欧拉算法简单地取切线地端点作为起点来计算,当步数增多时,误差会因积累而越来越大。因此,欧拉算法一般不用于实际计算。
数学建模——欧拉算法(求解常微分方程)相关推荐
- [计算机数值分析]改进欧拉格式解常微分方程的初值问题
欧拉方法yn+1 = yn +hf(xn,yn) 是一种显式算法,计算量小,但精度很低.梯形方法yn+1 = yn + h / 2 *[f(xn,yn) + f(xn+1,yn+1)] 虽然提高了精度 ...
- 隐式欧拉解常微分方程c语言,利用欧拉方法求常微分方程近似数值解.doc
利用欧拉方法求常微分方程近似数值解,欧拉微分方程,欧拉运动微分方程,欧拉平衡微分方程,欧拉型微分方程,微分方程的欧拉算法,微分方程的欧拉解法,欧拉型常微分方程,偏微分方程数值解,微分方程数值解法 利用 ...
- 数学建模_数学模型的分类数学建模十大算法
数学模型的分类 数学建模十大算法 1.蒙特卡罗算法 (该算法又称随机性模拟算法, 是通过计算机仿真来解决问题的算法, 同时可以 通过模拟可以来检验自己模型的正确性,比较好用的算法) 2.数据拟合.参数 ...
- 蹦极模型matlab仿真,科学网—蹦极的数学建模及其龙格-库塔法求解方法 - 赵也非的博文...
论文: 蹦极的数学建模及其龙格-库塔法求解方法 在"华东师范大学首届研究生数学建模竞赛"中,获得二等奖. 发表日期: 2007年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 ...
- 【数学建模】2003年全国大学生数学建模竞赛B题求解
目录 [数学建模]2003年全国大学生数学建模竞赛B题求解 [数学建模]2003年全国大学生数学建模竞赛B题求解 model: title CUMCM-2003B-01; sets: cai / 1. ...
- matlab:使用欧拉方法求解微分方程
书目:<数值方法(matlab版)>,作者周璐等译 %欧拉方法求解微分方程function [t,y] = my_euler(f, t0, tf , y0, h)%f-函数: t0,tf: ...
- 欧拉算法及其改进算法
电磁场中微积分方程的仿真实验(欧拉算法) 一.Euler公式 以当前点的值为初值,当前点的导数为导数,计算下一个步长的点的值. 代码实现如下: from matplotlib import pyplo ...
- matlab欧拉方程求解微分方程并和ode45对比结果
1.内容简介 matlab欧拉方程求解微分方程并和ode45对比结果 2.内容说明 略 3.仿真分析 clc close all clear %% ode45方法 y0 = [8.5;2;1];%初始 ...
最新文章
- python编写脚本方法_【Python】教你一步步编写banner获取脚本
- 用python3编写彩虹的代码_[面试题目]如何用三个Div实现彩虹效果?
- c语言字符串作为函数返回值的类型,返回字符串类型的函数怎么写?
- 微型计算机滑动平均值滤波器方程,微型计算机控制技术期末复习2011.ppt
- 设计模式在Netty 中的应用-单例模式源码举例
- Spring对JNDI的支持方法
- Java Optionals获得更具表现力的代码
- 个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔
- [html] 写页面布局时你有考虑过分辨率因素吗?还要考虑哪些因素呢
- mysql集群和主从区别_搭建MySQL主从集群,主从复制过程中同步延迟问题
- 牛顿下山法python_一文看懂牛顿法(附Python实现)
- TLE5012B ESP32驱动程序、硬件电路设计、4线SPI通信,驱动完美兼容4线SPI不用改MOSI开漏推挽输出
- python绘制音频频谱_Python 读取wav画频谱
- 《iOS8 Swift编程指南》类书图像
- 好的技术不一定能给你带来财富,但是好的工具一定可以让你创造财富
- MATLAB神经网络工具箱学习
- 现在出纳记账手写还是用计算机,出纳现金日记账的手写样本
- 学生作业信息管理系统
- DirectSOFT(光洋PLC编程软件)v6.3官方版
- 使用机器学习预测股价
热门文章
- Provide/inject 真的可以取代 Vuex 吗?
- 分段函数的计算 程序编写
- 独行月球:沈腾版云天明起承转合破中庸 | 真北影评
- android 截屏 效率,android 截屏以及对该图进行模糊
- 在word中使用vba遍历Range对象的Characters
- ROS 2 Humble Hawksbill 之 f1tenth gym
- 销巴生活全返平台模式需注意的6大原则性问题
- POP店铺设置京东拼购与拼购店铺一样么?
- 即构服务端录制SDK上线,音视频数据实现本地存储录制回放
- python 炒股公式_同事用Python炒股赚了3W,我酸了...