1.软件版本

MATLAB2013b

2.算法理论

龙格-库塔法(Runge-Kutta)是用于模拟常微分方程的解的重要的一类隐式或显式迭代法。龙格库塔法的家族中的一个成员如此常用,以至于经常被称为“RK4”或者就是“龙格库塔法”。令初值问题表述如下。

这样,下一个值(yn+1)由现在的值(yn)加上时间间隔(h)和一个估算的斜率的乘积决定。该斜率是以下斜率的加权平均:

k1是时间段开始时的斜率;

k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点tn + h/2的值;

k3也是中点的斜率,但是这次采用斜率k2决定y值;

k4是时间段终点的斜率,其y值用k3决定。

3.部分matlab程序

clc;
clear;
close all;
warning off;%The parameterg  = 9.81;
L  = 0.1;
m  = 0.5;
es = 2;
%the range of t
t0    = 0;
tf    = 10;
x0    = 0.25;
x0dot = 0;
Step  = 1000;
%The method of RK4
Y1    = func_4RGKT(t0,tf,x0,x0dot,Step);figure(1);
subplot(121);
plot([t0:(tf-t0)/Step:tf],Y1,'b');
xlabel('t');
ylabel('x');
axis square;
grid on;
title('the method of RK4');%The method of Euler
Y2    = func_Euler(t0,tf,x0,x0dot,Step);
figure(1);
subplot(122);
plot([t0:(tf-t0)/Step:tf],Y2,'r');
xlabel('t');
ylabel('x');
axis square;
grid on;
title('the method of Euler');
function Y1 = func_4RGKT(t0,tf,x0,x0dot,STEPS);                    %t0, tf, upper and lower, respectively,
%x0  the initial value of y,
%STEPS steps timesh        = (tf - t0)/STEPS;
T        = zeros(1,STEPS+1);
Y        = zeros(1,STEPS+1);
T(1)     = t0;
Y(1)     = x0;
Y0dot(1) = x0dot;for j=1:STEPS                                     tj         = T(j);yj         = Y(j);yjd        = Y0dot(j);k1         = h*func_function(tj     ,[yj,yjd]);k2         = h*func_function(tj+h/2 ,[yj+h*k1(1)/2,yjd+h*k1(2)/2]); k3         = h*func_function(tj+h/2 ,[yj+h*k2(1)/2,yjd+h*k2(2)/2]);     k4         = h*func_function(tj+h   ,[yj+h*k3(1)  ,yjd+h*k3(2)]);         Y(j+1)     = yj  + (k1(1) + 2*k2(1) + 2*k3(1) + k4(1))/6;Y0dot(j+1) = yjd + (k1(2) + 2*k2(2) + 2*k3(2) + k4(2))/6;T(j+1)     = t0 + h*j;
endY1=Y';                 

4.仿真结论

从图的仿真结果可知,当算法迭代1000次的时候,算法经过几个周期抖动之后收敛,但是其收敛时间较短。 因此,从整体而言,采用RK4算法,比Euler算法收敛更快,且较快的达到一定精度之内A28-20。

【Runge-Kutta】龙格-库塔法求解微分方程matlab仿真相关推荐

  1. 蹦极模型matlab仿真,科学网—蹦极的数学建模及其龙格-库塔法求解方法 - 赵也非的博文...

    论文: 蹦极的数学建模及其龙格-库塔法求解方法 在"华东师范大学首届研究生数学建模竞赛"中,获得二等奖. 发表日期: 2007年5月 摘要: 本文通过参照题中给出的数据,对蹦极者在 ...

  2. 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真

    基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...

  3. 欧拉法、改进的欧拉法、龙格-库塔法求解初值问题

    求解初值问题 简介 前期准备 欧拉法 改进的欧拉法 龙格-库塔法 标准四阶显式Kutta公式 三级三阶显式公式 四级四阶显式Kutta公式 四级四阶显式Gill公式 示例 MATLAB代码 结果 简介 ...

  4. 四阶龙格-库塔法求解常微分方程的初值问题

    算法原理和程序框图 龙格-库塔法是一种求其准确解y(x)在一系列点xi处y(xi)的近似值yi的方法,yi称为数值解.经典的四阶龙格库塔法方程如下: y'=f(t,y),y(t0)=y0输出按如下求解 ...

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

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

  6. 龙格库塔(runge-kutta,RK)法求解微分方程

    求解微分方程的意思就是,已知导函数,求原函数. 先声明一点,欧拉法.中值法.龙哥库塔法求解微分方程,得出的结果不是表达式,而是一系列离散点. 一.欧拉法递推 问题描述:已知y'=f(x,y),求y(x ...

  7. 龙格库塔法和欧拉法求解微分方程的比较

    文章目录 计算机如何理解连续系统的动态特性? 欧拉法求解微分方程 龙格库塔法求解微分方程 MATLAB代码编写和仿真效果 计算机如何理解连续系统的动态特性? 一般连续系统的动态特性可以由一个微分方程, ...

  8. 四阶龙格库塔法的基本思想_数值常微分方程-欧拉法与龙格-库塔法

    大三时候在跳蚤市场闲逛,从一位数学院的学长那里买了一些闲书,最近翻出来刚好有李荣华.刘播老师的<微分方程数值解法>和王仁宏老师的<数值逼近>,结合周善贵老师的<计算物理& ...

  9. python解常微分方程龙格库_数值常微分方程-欧拉法与龙格-库塔法

    大三时候在跳蚤市场闲逛,从一位数学院的学长那里买了一些闲书,最近翻出来刚好有李荣华.刘播老师的<微分方程数值解法>和王仁宏老师的<数值逼近>,结合周善贵老师的<计算物理& ...

最新文章

  1. 女士做软件测试的利弊有哪些?
  2. Java Jtree渲染叶子实现可以添加swing组件
  3. android文件存储token,ANDROID 学习笔记(二) 用户登陆问题 TOKEN SESSION 缓存
  4. Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出
  5. HTTP/2 流量调试
  6. 电脑按f8无法进入安全模式_自已有电脑的人,都会遇到系统死机问题,教大家实用一招自已解决...
  7. linux git编译安装目录,Linux(centos) 环境下如何源码编译安装git
  8. 如何基于数据快速构建用户模型(Persona)?
  9. 宁波计算机程序32届初赛,25届宁波市中小学计算机程序设计竞赛初赛试题
  10. 诺基亚N9——刷机教程——为双系统做铺垫
  11. Unity3D--用2D图片实现3D轮转图
  12. java数据过载,处理服务器过载的三大解决方法
  13. CryEngine3 调试Shader方法
  14. 【官方教程】使用Quick-Cocos2d-x搭建一个横版过关游戏(三)
  15. 为什么我的微信小程序开发工具调试窗口一片空白?
  16. 微信答题小程序开发遇到过的坑
  17. 溢出的原理及 shellcode 编写
  18. Redis 缓存穿透、击穿、雪崩现象及解决方案
  19. 【原创】C#玩高频数字彩快3的一点体会
  20. 希捷服务器硬盘15k有几代,硬盘巨头推最后一代15k机械硬盘:再见,机械硬盘

热门文章

  1. CentOS下安装无线网卡驱动
  2. GNSS原理和应用的第二周作业
  3. 计算机组装与维护作文,智慧职教计算机组装与维护答案
  4. Linux 中文乱码解决
  5. Java工具封装:Html、Css、Javascript文件内容压缩
  6. 学什么编程语言的比较有前景?
  7. Vista解惑100点之:应了解的IE7十件事
  8. oracle字符串类型的时间常用操作
  9. Windows10 下安装 dig 命令的步骤(一)
  10. GD32E230开发环境搭建 keil无法识别芯片 jlink无法烧录