1. 实验目的

  1. 能运用Matlab编程实现Runge-Kutta法与求解微分方程初值问题的数值解;
  2. 能用图像来比较数值解与精确解;
  3. 熟悉Matlab编程环境。

2. 实验内容

  1. 实验题目

用三阶、四阶Runge-Kutta方法求常微分方程初值问题

的数值解,步长h=0.2,0.5,1,并与真解进行比较。

2.实验原理

三阶Runge-Kutta方法:

3. 实验步骤

步1. 用dsolve函数求初值问题的解析解;

步2. 用ezplot函数做出解析解的图像;

步3. 用Matlab编写三阶、四阶Runge-Kutta法求解初值问题的通用程序;

步4. 用编写的程序求初值问题的数值解;

步5. 用plot函数将数值解显示在图像里,并与解析解进行比较。

4. 结果与分析

分别取步长h为1、0.5、0.2可以得到下列图像

5. 实验总结

通过上面的实验我们能够得到四阶Runge-Kutta与三阶Runge-Kutta法能够较快且较好的得到比较精确的解。

function [u,t]=Runge_Kutta3(t0,u0,T,h)
% t表示区间[t0,T]上步长为h节点构成的向量
% u表示由3阶Runge-Kutta法得到的数值解构成的向量
t=[t0:h:T];
n=length(t);
u=zeros(1,n);
u(1)=u0;
for i=2:nK1=t(i-1)*u(i-1);K2=(t(i-1)+0.5*h)*(u(i-1)+0.5*h*K1);K3=t(i)*(u(i-1)-h*K1+2*h*K2);u(i)=u(i-1)+h*(K1+4*K2+K3)/6;
endfunction [u,t]=Runge_Kutta4(t0,u0,T,h)
% t表示区间[t0,T]上步长为h节点构成的向量
% u表示由4阶Runge-Kutta法得到的数值解构成的向量
t=[t0:h:T];
n=length(t);
u=zeros(1,n);
u(1)=u0;
for i=2:nK1=t(i-1)*u(i-1);K2=(t(i-1)+0.5*h)*(u(i-1)+0.5*h*K1);K3=(t(i-1)+0.5*h)*(u(i-1)+0.5*h*K2);K4=t(i)*(u(i-1)+h*K3);u(i)=u(i-1)+h*(K1+2*K2+2*K3+K4)/6;
end
clc
clear all
u_true=dsolve('Du=t*u','u(0)=1','t');
t0=0; T=2;h=0.5;u0=1;kmax=1;
[u2,t2]=Runge_Kutta3(t0,u0,T,h);
[u3,t3]=Runge_Kutta4(t0,u0,T,h);
ezplot(u_true,[t0,T])
hold on
plot(t2,u2,'bs')
hold on
plot(t3,u3,'bo')
grid on
hold off
legend('u true','RK3法','RK4法')

三阶及四阶Runge-Kutta法相关推荐

  1. 四阶魔方玩法总结V1.0

    四阶魔方玩法总结V1.0 1.引言 今写此文,我主要是为了方便自己再次玩其魔方的时候,可以快速的想起,避免又从头学起.毕竟自己学会的,理解的,写出来的东西,再次玩魔方的时候,仅仅是回顾和追忆的过程,不 ...

  2. 12面魔方公式图解法_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  3. 三阶魔方大中小魔公式_三阶魔方的入门玩法教程|魔方玩法|魔方视频教程|魔方公式图解|--想成为魔方高手就来魔方乐园吧...

    深圳魔方爱好者可以到实体店跟魔方老师学魔方了!查询店铺地址 在正式开始学习魔方还原前,请进入网站的首页,抽上10分钟的时间学习一些魔方的基础知识,这样会很有利于我们下面的学习,在还原的过程中有碰到疑问 ...

  4. 魔方cfop公式软件_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  5. 魔方cfop公式软件_【高级篇】(四)三阶魔方CFOP高级玩法之——OLL

    一.OLL这一步需要做什么? OLL这一步是最容易理解的,到了这一步,前两层已经全部复原了 那不管顶面出现什么情况,都能用一个公式将顶面黄色朝向全部调整正确(顺序不管) 一步到位的代价就是--这步骤有 ...

  6. 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现

    对于常微分方程,RK方法速度快,精度高,代码简单,是最为实用的数值方法之一.RK方法很简单,类似梯形法,RK法也是根据前一步点的值推算后一步点.具体算法见以下链接 https://wenku.baid ...

  7. 欧拉法,改进欧拉法吗,四阶龙格库拉法 c++代码

    参考  https://blog.csdn.net/deepsprings/article/details/109850766 #include<iostream> #include< ...

  8. 三阶魔方七步还原法公式备忘录

    魔方公式备忘 转动符号图解 魔方七步公式: 1.底面十字还原 2.底角还原 3.中间层还原 上棱到左棱 U'L'U'LUFUF' 上棱到右棱 URUR'U'F'U'F 4.顶面十字 循环做FRUR'U ...

  9. matlab龙格库塔法求通解,基于matlab及龙格库塔法求解布拉修斯方程.doc

    基于matlab及龙格库塔法求解布拉修斯方程 Runge-Kutta法求解布拉修斯解 摘要 薄剪切层方程主要有三种解法,即相似解,非相似条件下对偏微分方程组的数值解和近似解.布拉修斯解是布拉修斯于19 ...

最新文章

  1. MFC之进度条CProgressCtrl
  2. 使用Hexo搭建个人博客网站
  3. 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件
  4. python列表功能默写_Python list(列表)功能详解
  5. .NET 时间轴:从出生到巨人
  6. python画矩形函数drawrectangle_Python3 tkinter基础 Canvas create_rectangle 画矩形
  7. python计算不规则图形面积_python opencv中的不规则形状检测和测量
  8. java future接口_java Future 接口介绍
  9. torch中loss.bacword的理解
  10. 远程控制软件也要有plan B备选方案
  11. c语言字符串把小写转换大写字母,c语言将字符串中的小写字母转换成大写字母...
  12. fastdfs 内网 公网 双ip问题
  13. 塑料粘结硬质铁氧体磁铁的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 【电子电路】ADC芯片如何选型
  15. 【配电网重构】基于粒子群算法实现最小化功率损耗的配电网重构附matlab代码
  16. HTML期末大作业~web前端开发个人博客HTML整站模板~Web大学生网页成品 ~个人主页博客网页HTML设计制作...
  17. C++实现TTS文字语音朗读Microsoft Speech SDK
  18. 现任明教教主CCNP Security SecureV1.0 第一天.3
  19. Chrome解析JSON工具
  20. 关于重装WIN10后有NVIDIA驱动但没有控制面板的可能的解决办法

热门文章

  1. 数据结构之霍夫曼压缩,更易理解文件压缩过程
  2. 新房装修如何知道是否需要更换电线
  3. 31:几何算法--点集的凸包
  4. iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)
  5. Windows上帝模式——隐私浏览必备
  6. hdu 5234 Happy birthday
  7. Semantic Proximity Search on Heterogeneous Graph by Proximity Embedding
  8. 修改XAMPP启动mysql报错Port 3306 in use by D:\xampp\mysql\bin\mysqld!
  9. 用 JS 点击左右按钮 使图片切换 - 最精简版-ljx2380000-ChinaUnix博客
  10. pythonturtle画丘比特之箭,turtle的简单绘图