利用c++ boost库求解一阶微分方程计算船舶运动_河北一帆的博客-CSDN博客_c++求解微分方程

这篇博文中利用boost库求解线性三自由度船舶运动模型。但是boost库非常庞大,达到好几个G,不如自己写一个龙格库塔求解。网上搜索到的例子大多数是一维微分方程的,推广到三维其实很容易。三自由度船舶运动模型如下所示。

一维微分方程

四阶龙格库塔计算公式为

是求解步长。 对于推广到三维,直接将三维向量替换

double h = 0.1;
double dt = 1;
Eigen::Vector3d nu_;
nu_ << this->nu[0], this->nu[1], this->nu[2];
for (int i = 0; i < 10; i++) {Eigen::Vector3d K1 = this->f(nu_, tau);Eigen::Vector3d K2 = this->f(nu_ + 0.5 * h * K1, tau);Eigen::Vector3d K3 = this->f(nu_ + 0.5*h*K2, tau);Eigen::Vector3d K4 = this->f(nu_ + h * K3, tau);nu_ = nu_ + h / 6 * (K1 + 2 * K2 + 2 * K3 + K4);
}Eigen::Vector3d mss::Vessel::f(Eigen::Vector3d y, Eigen::Vector3d F) {return this->M.inverse() * (-this->D * y + F);
}

三维微分方程组四阶龙格库塔求解相关推荐

  1. 龙格库塔法matlab求解微分方程组,微分方程组的龙格库塔公式求解matlab版.pdf

    微分方程组的龙格库塔公式求解matlab版 微分方程组的龙格-库塔公式求解matlab版 南京大学 王寻 1. 一阶常微分方程组 考虑方程组     y'f x,y,z , y x y ...

  2. 一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc

    MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程 姓名:樊元君 学号:2012200902 日期:2012.11.06 一.实验目的 掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题 ...

  3. 四阶龙格库塔(Runge-Kutta)求解微分方程-多种编程语言

    前期是分享了matlab下面实现四阶龙格库塔(Runge-Kutta)求解微分方程,这期分享一下C++.C.Java.Python下面的四阶龙格库塔(Runge-Kutta)求解微分方程. 前文传送门 ...

  4. 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码

    今年年初的时候给师姐做了DDPG算法的船舶减横摇控制算法,师姐还有想法要让我把纵摇-埀荡两个自由度的减摇也做出来,这个任务归我了.实际上不管是多少个自由度的减摇,其实都需要解运动方程,当初做单自由度横 ...

  5. matlab:使用四阶龙格库塔方法求解微分方程组

    %书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...

  6. 用四阶龙格-库塔方法求微分方程组

    最近一段时间再忙期末考试,小学期课程设计的东西,没怎么更新博客.... 更新一个用四阶龙格库塔方法求解脉冲微分方程,题目来源是一篇论文<Impulsive control of projecti ...

  7. 数值分析C++实现用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题

    问题:用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题. 算法描述 算法的程序框图: 具体算法: (1)读取a,b,n,f (2)计算步长h = (b-a)/n,x0=a,y0=f ...

  8. 阿当姆斯方法求解微分方程初值问题:四阶龙格库塔提供出发值(C语言)

    #include<stdio.h>float f1(float x,float y) //第一问 {return y*y;//方程 }float f2(float x,float y)// ...

  9. 四阶龙格库塔法的基本思想_四阶龙格库塔实验报告.docx

    四阶龙格库塔实验报告 三.四阶Runge-Kutta法求解常微分方程一.龙格库塔法的思想根据第九章的知识可知道,Euler方法的局部截断误差是,而当用Euler方法估计出再用梯形公式进行校正,即采用改 ...

  10. 四阶龙格库塔算法用MATLAB写

    四阶龙格-库塔算法可以使用 MATLAB 进行编写.您可以使用 MATLAB 的数值解法工具箱来解决常微分方程组,并使用相应的函数(例如 ode45)来实现四阶龙格-库塔算法.在编写代码时,您需要根据 ...

最新文章

  1. JavaScript 元编程
  2. windows下配置cvs服务端
  3. “分类垃圾桶”成交同比涨超七成 塑料概念股集体波动
  4. android viewpager原理,ViewPager不为人知的秘密
  5. 武汉大学2014年基础数学面试全过程
  6. c语言 牛顿方法计算平方根,sqrt()平方根计算函数的实现2——牛顿迭代法
  7. antd权限管理_Antd Pro的权限组件
  8. 黑市最流行的黑客匿名工具
  9. 二叉树层次遍历(自下而上)
  10. 匿名函数的disconnect方法 QTimer如何disconnect匿名函数
  11. API对接网关 code review
  12. 软件缺陷主要包含哪些要素?
  13. POST 还是 GET?
  14. 美股1周2次熔断,全球已在经济危机边缘,3周跌掉中国1年GDP
  15. WAS8.5.5集群部署全程图解
  16. 快速傅里叶变换FFT和逆变换的python编程
  17. 协变(covariance),逆变(contravariance)与不变(invariance)
  18. 马尔可夫链预测模型的应用——以个人图书借阅为例(改进2.0版)
  19. 玩转termux之基础配置二
  20. 微信小程序拍照截取取景框内容#canvas

热门文章

  1. add eds file in Codesys
  2. 《商用密码应用与安全性评估》第一章 密码基础知识-小结
  3. 深度学习语音识别方法概述与分析
  4. 程序教程基础_电脑是个啥玩意
  5. 这一篇彻底说清楚了!乐高,编程,机器人到底要不要学?
  6. 在VMware16虚拟机安装Ubuntu详细教程
  7. python和r哪个实用_R和Python谁更好?
  8. java利用poi为excel添加图片水印
  9. 百度快速排名软件到底是如何实现的?
  10. LOL各大服务器所在位置,LOL各大服务器所在地,8个大区全都在广东,是其他省的两倍...