龙格库塔法

龙格库塔法对于一个工科学生来说估计并不陌生,因为我们做项目的时候或多或少会接触到微分方程,解微分方程的数值解是就需要用到龙格库塔方程了。我第一次接触到该方法是对四轴姿态角进行四元数解算的时候,当时用的是一阶龙格库塔,当时的理解就是这不就是泰勒展开式取一阶嘛,然后觉得二阶龙格库塔应该就是取二阶了,依次类推,所以当时没有深入的了解,现在因为遇到这方面的问题所以重新把他学了一遍。

准确的说,高阶龙格库塔法是借用了泰勒展开式的思想,但是和泰勒展开式还是有区别的。下面我对龙格库塔法讲讲我的理解。

首先,龙格库塔的一般形式如下:

首先,我们可以知道一阶龙格库塔法的表达式

上述式子可以改写成如下式子

这里我们可以看成k是在步长为h情况下,函数的增长量,f(x,y)为函数y的斜率。这个式子其实比较好理解的。

然后我们来看二阶龙格库塔的推导过程:
二阶情况下一般表达式中就只有k1和k2了,二阶龙格库塔我们可以看成是一阶表达式的一个变形,由原来的一个k变成了k1,k2,用k1,k2来表示k,c1和c2相当于k1和k2所占的权重一样,这样理解是不是好一点。那k1和k2分别表示什么??其实k1表示xi点处的增长量,k2表示的是xi+a2*h处的增长量。在这基础上,因为c1、c2、a2和是未知量。我们需要将其求出来,下面是我的推导过程:

这样二阶龙格库塔的迭代式子就可以表达出来了,写完收工。
然而如果你想你的数值解更加精确的话,你就需要更高 阶次的龙格库塔迭代式,一般而言,四阶是最经典的,用的也是最多的。本来我想把四阶的参数也算一遍,但是工程量巨大,我放弃了。我尝试了一下3阶的参数推导,推导一半,我还是放弃了,我把我推到一半的过程也写出来,希望有人帮我弄出来,本人实在没有勇气。

这里把k1,k1k2,k2平方带入式子中,我感觉非常人能及的,高中学的解析几何感觉都不算什么??
这里有一个需要注意的地方,图片中我用红笔标注了,由于三阶龙格库塔的阶段误差为,意思就是多项式中存在h的次数大于等于4的都可以忽略,这可能会大大减少我们的计算量,但是还是好难。
最后给出一个四阶龙格库塔算迭代表达式:

【算法基础学习 6】龙格库塔法 求微分方程相关推荐

  1. 数据结构与算法基础-学习-19-哈夫曼解码

    一.个人理解 哈夫曼树和哈夫曼编码相关概念.代码.实现思路分享,请看之前的文章链接<数据结构与算法基础-学习-17-二叉树之哈夫曼树>.<数据结构与算法基础-学习-18-哈夫曼编码& ...

  2. 《iOS面试之道》算法基础学习(上)

    前言 道长和唐巧的面试之道,刚出来第一时间就入手了,也是趁着公司目前不是很忙,能好好静下心来细读这本书.笔者认为这本书的最大亮点就在第二章的算法基础,所以想通过笔记的形式来记录算法的学习过程,同时在忘 ...

  3. 【算法基础15】如何求约数?约数个数?约数之和?最大公约数?

    一.试除法求约数 主要思想:由于当n/a=b时,a和b都是n的约数,即约数总是成对出现,可以在一次循环中同时找到i和n/i两个约数,只需要循环n/i次就能找到所有约数. 例题:求一个数的所有约数,并将 ...

  4. 龙格库塔法求微分方程

    龙格库塔法 龙格库塔法对于一个工科学生来说估计并不陌生,因为我们做项目的时候或多或少会接触到微分方程,解微分方程的数值解是就需要用到龙格库塔方程了.我第一次接触到该方法是对四轴姿态角进行四元数解算的时 ...

  5. 数据结构与算法基础学习(一)

    http://www.cnblogs.com/yangwujun/archive/2012/12/29/2839038.html 基本概念和术语 1.数据(Data) 数据是外部世界信息的载体,它能够 ...

  6. 【算法基础学习 5】 欧拉角 方向余弦 四元数

    SLAM中三维空间的刚体运动描述方式 1. 旋转矩阵 1.点和向量,坐标系 点:在几何学上点是 没有大小而只有位置,即点存在于三维空间中的某一个位置. 向量: 可以形象化地表示为 带箭头的线段.箭头所 ...

  7. 视频教程-数字图像处理实战-算法基础

    数字图像处理实战 河海大学计算机硕士毕业,现就职于南京华为研究所,从事嵌入式软件开发工作.热爱模式识别及机器学习算法. 金圣韬 ¥70.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+ ...

  8. 抛物线的中点生成算法_零基础学习梯度下降算法

    零基础学习梯度下降算法 作者:Philipp Muens 翻译:老齐 与本文相关的图书推荐:<数据准备和特征工程> 梯度下降法是机器学习中最基本的优化技术之一.那么,什么是梯度? 下降的是 ...

  9. 数据结构与算法——从零开始学习(一)基础概念篇

    系列文章 第一章:基础知识 第二章:线性表 第三章:栈和队列 第四章:字符串和数组 第五章:树和二叉树 第六章:图 第七章:排序算法 前言 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合 ...

最新文章

  1. python怎么编程上传资料_Python实现文件上传
  2. Zuul1.0和2.0我们该如何选择?
  3. [MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
  4. 监督学习和无监督学习_机器学习的要素是什么? 有监督学习和无监督学习两大类...
  5. hive 导出json格式 文件_Magicodes.IE在.NET Core中通过请求头导出多种格式文件
  6. 华为P30系列机身侧面照曝光 摄像头仍然“凸起”...
  7. java textarea append_JavaFX TextArea.append()导致java.lang.NullPointerException
  8. visualvm远程监控jvm_别再说你不会 JVM 性能监控和调优了,看完这篇再发言
  9. Flutter高级第7篇:点击穿透问题、页面禁止左右滑动
  10. 如何在Pages for Mac中添加页眉、页脚和页码?
  11. 一元线性回归的前因后果
  12. PowerDesigner将PDM导出生成WORD文档(rtf文档)
  13. ps还原上一步快捷键,ps返回上一步快捷键是什么
  14. linux智能英文输入法,Linux_Ubuntu下安装智能拼音输入法,一、安装scim中的智能拼音 更 - phpStudy...
  15. 不能设置一个python sdk_【君奉天|开发日记】Python SDK换唤醒词及设置服务配置
  16. 模拟量转数字量的本质
  17. HTML结构及常用的标签
  18. uc浏览器设置里面的的浏览器ua是什么意思
  19. java实现打字母小游戏
  20. 利用Civil3d导入桥梁中线至Revit中建立桥梁上部结构

热门文章

  1. 1.7 日本蜡烛图技术之看透窗口
  2. 发改委:发布产业结构调整指导目录征求意见稿,增加新能源汽车充电设施建设
  3. 人体姿态估计最全资料集锦
  4. 卢松松:SEO外链专员操作规范
  5. 身高体重和标准身高的比较
  6. 交换机DHCP服务器配置
  7. 怎么给图片加水印?建议收藏这三招
  8. QML异常:Cannot anchor to an item that isn‘t a parent or sibling
  9. SEO站内优化需要做什么工作
  10. Nginx配置限流限连接示例及相关知识汇总