改进欧拉方程的公式如下:

yp=yn+hf(xn,yn)y_{p}=y_{n}+h f\left(x_{n}, y_{n}\right)yp​=yn​+hf(xn​,yn​)
yc=yn+hf(xn+1,yn)y_{c}=y_{n}+h f\left(x_{n+1}, y_{n}\right)yc​=yn​+hf(xn+1​,yn​)
yn+1=12(yp+yc)y_{n+1}=\frac{1}{2}\left(y_{p}+y_{c}\right)yn+1​=21​(yp​+yc​)

利用改进后的欧拉方程建立M函数文件求解初值。函数文件如下所示:

function [x,y] = adeuler(f,x0,y0,xf,h)
n = fix((xf-x0)/h);
y(1)=y0;
x(1)=x0;
for i=1:nx(i+1) = x0+i*h;yp = y(i) + h*feval(f,x(i),y(i));yc = y(i) + h*feval(f,x(i+1),yp);y(i+1) = (yp+yc)/2;%欧拉公式
end

例 求解初值条件{y′=y−2xy(0<x<1)y(0)=1\left\{\begin{array}{l}y^{\prime}=y-\frac{2 x}{y} \quad(0<x<1) \\ y(0)=1\end{array}\right.{y′=y−y2x​(0<x<1)y(0)=1​

MATLAB的程序如下:

 [x,y] = adeuler('f',0,1,1,0.1)x =1 至 10 列​     0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.900011 列1.0000y =1 至 10 列1.0000    1.0959    1.1841    1.2662    1.3434    1.4164    1.4860    1.5525    1.6165    1.678211 列1.7379y1 = (1+2*x).^0.5y1 =1 至 10 列1.0000    1.0954    1.1832    1.2649    1.3416    1.4142    1.4832    1.5492    1.6125    1.673311 列1.7321plot(x,y,x,y1,'--')

图像结果如下所知:

由上面绘制曲线可以看出,改进的欧拉方程解法要比原来的方法优秀,数值解和解析解曲线能够重合。

改进欧拉方程求初值(十四)相关推荐

  1. qt 模拟鼠标滑轮_【游戏流体力学基础及Unity代码(四)】用欧拉方程模拟无粘性染料之公式推导...

    先放一张动态图吊一下胃口~下面就是最终的效果 不可压缩的欧拉方程只比NS方程少一个粘性项.所以下面的内容是完全适合NS方程的.各位请准备好! 散度定理 模拟流体的时候会遇到许多数学公式.为了深刻理解这 ...

  2. 指数复合函数的求导与欧拉方程

    指数复合函数的求导与欧拉方程: [f(et)]′=f′(et)∗et[f(e^t)]'=f'(e^t)*e^t[f(et)]′=f′(et)∗et xn∗y(n)+P1∗xn−1∗y(n−1)+--+ ...

  3. 【微分方程数值解】常微分方程(一)欧拉方法和改进欧拉方法(附python算例,封装类)

    欧拉方法与改进欧拉方法 一.算法原理 对给定微分方程 {y′=f(x,y)y(x0)=y0(1)\begin{cases} y' = f(x,y)\\ y(x_0) = y_0 \end{cases} ...

  4. 6.1 欧拉方法与改进欧拉方法

    6.1.1 欧拉方法 欧拉方法是一种数值解常微分方程(ODE)的方法,可以用于近似求解给定的初值问题.它是以欧拉命名的瑞士数学家莱昂哈德·欧拉所发明的,因此得名. 欧拉方法的基本思路是将连续的常微分方 ...

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

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

  6. 求解欧拉方程的c语言,用有限体积方法求解欧拉方程

    <用有限体积方法求解欧拉方程>由会员分享,可在线阅读,更多相关<用有限体积方法求解欧拉方程(12页珍藏版)>请在人人文库网上搜索. 1.有限体积法求解二维可压缩Euler方程计 ...

  7. 向前欧拉公式例题_欧拉方程的求解

    1 欧拉方程的求解 1. 引言 在数学研究领域,我们经常会看到以数学家名字命名的概念.公式.定 理等等,让人敬佩跟羡慕 . 但是,迄今为止,哪位数学家的名字出现得最多 呢?他就是数学史上与阿基米德. ...

  8. 应用数学课堂笔记(一)——欧拉方程

    教材 <变分法及其应用--物理.力学.工程中的经典建模>欧斐君 高等教育出版社 有限维到无限维 向量中有有限个元素,它们可以进行加法.数乘.定义范数.定义内积.定义夹角.比如,对于向量aa ...

  9. 深度学习准备「爆破」著名的欧拉方程

    来源:ScienceAI 编辑:绿萝 250 多年来,数学家一直试图「爆破」物理学中一些最重要的方程:那些描述流体如何流动的方程.如果他们成功了,那么他们将会发现一种情况,在这种情况下,这些方程会被打 ...

最新文章

  1. 新浪微博IPO,曹国伟策略之功
  2. 单链表-删除并释放以L为表头指针的单链表的所有结点(双指针法)
  3. android 调整字体,android设置:调整字体大小
  4. 关于bcg库记忆界面的问题及其解决办法
  5. 入门必备!生物医学命名实体识别(BioNER)最全论文清单,附SOTA结果汇总
  6. 使用directX 7结合C#进行2D游戏编程
  7. dfs文件服务器访问权限,fastDFS 文件服务器访问
  8. 实践平台linux,关于构造Linux系统实践平台的设想
  9. 全球移动支付发展现状移动支付之综述篇
  10. 品牌logo在EDM数据营销中的运用
  11. MySQL建表规范与常见问题
  12. Redis常用命令总结,为什么阿里的程序员成长如此之快
  13. 波士顿仿生机械狗 原理分析
  14. SAP 固定资产模块上线配置
  15. Java实现简易的购物系统
  16. ubuntu--制作图标
  17. 下载支持包时出现问题。要解决此问题,请参阅相应的 MATLAB Answer
  18. 和隆优化 matlab,misc.m · XJTU_STEI/matlabTools - Gitee.com
  19. led灯什么牌子的质量好又耐用?2022性价比高的led护眼灯品牌推荐
  20. 深蹲的26种变化动作(深蹲大全)

热门文章

  1. 如何利用CommMonitor串口监控,抓取串口Modbus RTU数据包
  2. 一文了解Linux内核的Oops
  3. 【Leetcode】552. 学生出勤记录 II
  4. 【Golang设计模式】模板模式
  5. 数字劳工与下一代互联网 1
  6. 什么是BSP?理解LINUX BSP
  7. Java获取梅森素数
  8. 现如今计算机科学的发展趋势,计算机科学与技术发展趋势
  9. 不见液晶电视不上轿的新娘,新郎愤而转身娶旧爱
  10. Python之mock service