微分方程的数值解法——Runge-Kutta (RK4)

news2025/1/19 3:14:52

Runge-Kutta (RK4)
  The Runge-Kutta (RK4) methods are used to solve the solution of the non-liner ordinary differential equation. Here, we will simply summary this method.
  Assume the Intial Value Piont (IVP) is satisfied:
y ′ = f ( t , y ) , y ( t 0 ) = y 0 ( 1 ) y\prime = f(t,y), \quad y(t_0)=y_0 \quad \quad (1) y=f(t,y),y(t0)=y0(1)
  The formulation of RK4 is given by:
y ( n + 1 ) = y n + h 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) ( 2 ) y_(n+1) = y_n + \frac{h}{6} (k_1+2k_2+2k_3+k_4) \quad \quad (2) y(n+1)=yn+6h(k1+2k2+2k3+k4)(2)

where,
k 1 = f ( t n , y n ) k 2 = f ( t n + h 2 , y n + h 2 k 1 ) k 3 = f ( t n + h 2 , y n + h 2 k 2 ) k 4 = f ( t n + h , y n + h k 3 ) k_1=f(t_n,y_n) \\ \quad \\ k_2=f(t_n+\frac{h}{2}, y_n+\frac{h}{2} k_1) \\ \quad \\ k_3=f(t_n+\frac{h}{2}, y_n+\frac{h}{2} k_2) \\ \quad \\ k_4=f(t_n+h,y_n+hk_3) k1=f(tn,yn)k2=f(tn+2h,yn+2hk1)k3=f(tn+2h,yn+2hk2)k4=f(tn+h,yn+hk3)
  Here, the k i k_i ki represent the slope of middle points of the variable time t t t. Will, the Runge-Kutta methods just be generalized by RK4.
  In this equation,the next value y n + 1 y_{n+1} yn+1 is decided by the current value y n y_n yn adds the time interval h h h and multiply an estimated middle point slope k k k weight averaged by the slope k i k_i ki:
  下一个值 y n + 1 y_{n+1} yn+1 由现在的值 y n y_n yn 加上时间间隔 h h h 和一个估算的斜率的乘积所决定。该斜率是以下斜率的加权平均:和一个估算的斜率 k k k 的乘积所决定。该斜率是以下斜率的加权平均:
k = k 1 + 2 k 2 + 2 k 3 + k 4 6 ( 3 ) k= \frac{k_1+2k_2+2k_3+k_4}{6} \quad \quad (3) k=6k1+2k2+2k3+k4(3)
k 1 k_1 k1 is the slope of the time beginning. (时间段开始时的斜率)
k 2 k_2 k2 is the slope of the middle time point.
  时间段中点的斜率,通过欧拉法采用斜率 k 1 k_1 k1 来决定 y y y 在点 t n + h / 2 t_n+h/2 tn+h/2 的值;
k 3 k_3 k3 is also the slope of the middle time point who’s calculated by slope k 2 k_2 k2 and the intial value y y y. (也是中点的斜率,但是这次采用斜率 k 2 k_2 k2 决定 y y y 值。)
k 4 k_4 k4 is the slope of the time ending. 时间段终点的斜率,其 y y y 值用 k 3 k_3 k3决定。

  RK4 法是四阶方法,也就是说每步的误差是 h 阶,而总积累误差为 h 阶。

注意 上述公式对于标量或者向量函数(y可以是向量)都适用。

Generalization (推广)

  The Runge-Kutta methods are generalized by RK4, which can be formulated as:
y n + 1 = y n + h ∑ i = 1 n b i k i ( 4 ) y_{n+1}=y_n+h \sum_{i=1}^{n} b_i k_i \quad \quad (4) yn+1=yn+hi=1nbiki(4)
where,
在这里插入图片描述
given the specific problem, the progression s s s and the coefficient a i j a_{ij} aij and c i c_i ci must be provided.

对于给定的一个特定的方法,必须提供整数 s s s(级数),以及系数 a i j a_{ij} aij(对于 1 ≤ j < i ≤ s 1 ≤j<i≤s 1j<is), b i b_i bi(对于 i = 1 , 2 , . . . , s i= 1, 2, ...,s i=1,2,...,s)和 c i c_i ci(对于 i = 2 , 3 , . . . , s i= 2, 3, ...,s i=2,3,...,s)。

The Runge-Kutta methods is self-consistent, if:
龙格库塔法是自洽的,如果:
∑ j = 1 i − 1 a i j = c i f o r i = 2 , … , s . ( 5 ) \sum_{j=1}^{i-1}a_{ij}=c_i \quad for \quad i=2,\dots,s. \quad (5) j=1i1aij=cifori=2,,s.(5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1979103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入底层源码,剖析AQS的来龙去脉!

这里写目录标题 回顾前缀知识一、Condition的概念二、Condition底层结构三、Condition源码解析3.1 newCondition()3.2 await() 总结主要方法&#xff1a; 回顾 如果你还没熟悉 AQS 中的独占锁&#xff0c;可以先看这篇文章的前导篇。上一篇文章是以ReentrantLock 里面的加锁、解…

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分&#xff08;Best Score&#xff0c;简称 BS&#xff09;是多少&#xff1f;全国有多少个景点获评了这个最高评分&#xff08;BS&#xff09;&#xff1f;获评了这个最高评分&#xff08;BS&#xff09;景点最多的城市有哪些&am…

2024带你轻松玩转Parallels Desktop19虚拟机!让你在Mac电脑上运行Windows系统

大家好&#xff0c;今天我要给大家安利一款神奇的软件——Parallels Desktop 19虚拟机。这款软件不仅可以让你在Mac电脑上运行Windows系统&#xff0c;还能轻松切换两个操作系统之间的文件和应用程序&#xff0c;让你的工作效率翻倍&#xff01; 让我来介绍一下Parallels Desk…

【口语】基础英语之疑问句 | 描述一个认为音乐很重要的人

文章目录 一、基础英语之疑问句二、口语题&#xff1a;描述一个认为音乐很重要并且喜欢音乐的人 一、基础英语之疑问句 英语中的疑问句可以根据结构和用途被分为几种主要类型&#xff1a; 一般疑问句&#xff08;General Questions&#xff09;: 结构&#xff1a;助动词 主语…

Learn ComputeShader 03 Passing data to shader

这次我们想要在一个平面中生成随机运动的圆形。之前传递数据都是通过setInt&#xff0c;setVector等方法进行的&#xff0c;但是这些方法并不能一下传递大量数据&#xff0c;比如一个结构体数组&#xff0c;一个数据块。所以这次的主要内容就是通过buffer传递大量数据。 首先是…

Android 本地化、多语言切换:Localization

目录 1&#xff09;如何实现多语言切换、如何实现跟随手机语言切换而切换app语言 2&#xff09;Localization是什么 3&#xff09;不管手机语言如何&#xff0c;根据用户在App选择的语言&#xff0c;只切换App语言 4&#xff09;文字长短不一样&#xff0c;怎么办呢? 一、Lo…

积分的简介

积分的简介 集成是一种添加切片以找到整体的方法。积分可用于查找区域、体积、中心点和许多有用的东西。但是&#xff0c;最简单的方法是从找到函数和 x 轴之间的区域开始&#xff0c;如下所示&#xff1a; 1.面积是什么&#xff1f;是片 我们可以在几个点上计算函数&#xf…

Error in importing environment OpenAI Gym

题意&#xff1a;尝试导入OpenAI Gym库中的某个环境时发生了错误 问题背景&#xff1a; I am trying to run an OpenAI Gym environment however I get the following error: 我正在尝试运行一个OpenAI Gym环境&#xff0c;但是我遇到了以下错误&#xff1a; import gym env…

Spring Boot整合MyBatis-Flex

说明&#xff1a;MyBatis-Flex&#xff08;官网地址&#xff1a;https://mybatis-flex.com/&#xff09;&#xff0c;是一款数据访问层框架&#xff0c;可实现项目中对数据库的访问&#xff0c;类比MyBatis-Plus。本文介绍&#xff0c;在Spring Boot项目整合MyBatis-Flex。 创…

专业解析:U盘打不开的应对与数据恢复策略

一、U盘打不开的困境解析 在日常的数据存储与传输中&#xff0c;U盘作为便携的存储媒介&#xff0c;其重要性不言而喻。然而&#xff0c;当您急需使用U盘时&#xff0c;却遭遇“U盘打不开”的尴尬境地&#xff0c;这无疑会给工作和学习带来极大的不便。U盘打不开的原因多种多样…

Javase--Date

1.Date简介 Date的学习: 1. java.util包下的类 2.用于日期、时间的描述 3. 实际上时距离一个固定时间点1970年1月1日00:00:00的毫秒数 4.我们常用的是格林威治时间:GMT UTC:世界调整时间 5.固定时间点:说的其实是本初子午线的时间。因此北京时间是1970年1月1日8:00:…

评估生成分子/对接分子的物理合理性工具 PoseBusters 评测

最近在一些分子生成或者对接模型中&#xff0c;出现了新的评估方法 PoseBusters&#xff0c;用于评估生成的分子或者对接的分子是否符合化学有效性和物理合理性。以往的分子生成&#xff0c;经常以生成分子的有效性、新颖性、化学空间分布&#xff0c;与口袋的结合力等方面进行…

.NET反混淆神器de4dot使用介绍

最近在逛看雪时&#xff0c;发现一个帖子&#xff0c;[原创]常见语言基础逆向方法合集-软件逆向-看雪-安全社区|安全招聘|kanxue.com。里面介绍 了常见语言基础逆向方法合集。关于.net程序逆向这块&#xff0c;介绍了三个工具。 .NET Reflector .NET Decompiler: Decompile A…

C++中string类常用函数的用法介绍

在C中&#xff0c;string是一个功能强大的类&#xff0c;用于处理和操作文本数据。它属于C标准库中的字符串库部分&#xff0c;专门用于处理字符串。与传统的C风格字符串相比&#xff0c;它提供了动态内存管理、类型安全和丰富的操作方法。 目录 一、构造和初始化 二、获取字…

算法训练,项目

一.木材加工 题解&#xff1a; 二分答案&#xff0c;左边0&#xff0c;右边可以为最长的木头&#xff0c;但我直接赋值了一个很大的值&#xff0c;进行二分&#xff0c;随后写个check;内部遍历木头截取为mid木块的个数&#xff0c;要是>k&#xff0c;满足要求&#xff0c;还…

【时时三省】(C语言基础)一维数组

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ——csdn时时三省 数组 数组就是一组数 数组的官方定义是一组相同类型元素的集合 一堆数组的创建和初始化 求组的创建 数组是一组相同类型元素的集合。数组的创建当时是: type&#xff3f;t arr&#x…

【JavaEE】定时器

目录 前言 什么是定时器 如何使用java中的定时器 实现计时器 实现MyTimeTask类 Time类中存储任务的数据结构 实现Timer中的schedule方法 实现MyTimer中的构造方法 处理构造方法中出现的线程安全问题 完整代码 考虑在限时等待wait中能否用sleep替换 能否用PriorityBlo…

Linux网络——深入理解 epoll

目录 一、epoll 模型 1.1 前导知识 1.1.1 宏 offsetof 1.1.2 手动计算 1.2 epoll 模型 二、 epoll 工作模式 2.1 水平触发 特点&#xff1a; 2.2 边缘触发 特点&#xff1a; 边缘触发模式中的循环读取 结合非阻塞模式的优势 一、epoll 模型 经过了之前的学习&#…

什么是容器查询?分享 1 段优质 CSS 代码片段!

本内容首发于工粽号&#xff1a;程序员大澈&#xff0c;每日分享一段优质代码片段&#xff0c;欢迎关注和投稿&#xff01; 大家好&#xff0c;我是大澈&#xff01; 本文约 700 字&#xff0c;整篇阅读约需 1 分钟。 今天分享一段优质 CSS 代码片段&#xff0c;使用容器查询…

【算法设计题】实现以字符串形式输入的简单表达式求值,第2题(C/C++)

目录 第2题 实现以字符串形式输入的简单表达式求值 得分点&#xff08;必背&#xff09; 题解 1. 初始化和变量定义 2. 获取第一个数字并存入队列 3. 遍历表达式字符串&#xff0c;处理运算符和数字 4. 初始化 count 并处理加减法运算 代码详解 &#x1f308; 嗨&#xf…