一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc
MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程
姓名:樊元君 学号:2012200902 日期:2012.11.06
一、实验目的
掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题。二、实验内容
分别写出改进欧拉法与四阶龙格-库塔求解的算法,编写程序上机调试出结果,要求所编程序适用于任何一阶常微分方程的数值解问题,即能解决这一类问题,而不是某一个问题。
实验中以下列数据验证程序的正确性。
求步长h=0.25。实验注意事项
的精确解为,通过调整步长,观察结果的精度的变化function [] = GJOL(h,x0,y0,X,Y)
format long
h=input('h=');
x0=input('x0=');
y0=input('y0=');
disp('输入的范围是:');
X=input('X=');Y=input('Y=');
n=round((Y-X)/h);
i=1;x1=0;yp=0;yc=0;
for i=1:1:n
x1=x0+h;
yp=y0+h*(-x0*(y0)^2);%yp=y0+h*(y0-2*x0/y0);%
yc=y0+h*(-x1*(yp)^2);%yc=y0+h*(yp-2*x1/yp);%
y1=(yp+yc)/2;
x0=x1;y0=y1;
y=2/(1+x0^2);%y=sqrt(1+2*x0);%
fprintf('结果=%.3f,%.8f,%.8f\n',x1,y1,y);
end
end
四阶龙格库塔程序源代码:
function [] = LGKT(h,x0,y0,X,Y)
format long
h=input('h=');
x0=input('x0=');
y0=input('y0=');
disp('输入的范围是:');
X=input('X=');Y=input('Y=');
n=round((Y-X)/h);
i=1;x1=0;k1=0;k2=0;k3=0;k4=0;
for i=1:1:n
x1=x0+h;
k1=-x0*y0^2;%k1=y0-2*x0/y0;%
k2=(-(x0+h/2)*(y0+h/2*k1)^2);%k2=(y0+h/2*k1)-2*(x0+h/2)/(y0+h/2*k1);%
k3=(-(x0+h/2)*(y0+h/2*k2)^2);%k3=(y0+h/2*k2)-2*(x0+h/2)/(y0+h/2*k2);%
k4=(-(x1)*(y0+h*k3)^2);%k4=(y0+h*k3)-2*(x1)/(y0+h*k3);%
y1=y0+h/6*(k1+2*k2+2*k3+k4);%y1=y0+h/6*(k1+2*k2+2*k3+k4);%
x0=x1;y0=y1;
y=2/(1+x0^2);%y=sqrt(1+2*x0);%
fprintf('结果=%.3f,%.7f,%.7f\n',x1,y1,y);
end
end
五、运行结果:
改进欧拉格式结果:
四阶龙格库塔结果:
步长分别为:0.25和0.1时,不同结果显示验证了步长减少,对于精度的提高起到很大作用,有效数字位数明显增加。
六、实验小结:
通过这次实验学习,首先第一点对改进欧拉格式和四阶龙格库塔的原理推导有了深入的理解,改进欧拉格式采用(预报+校正)模式得到较精确的原函数数值解;而四阶龙格库塔则采用多预报几个点的斜率值,采用加权平均作为平均斜率的近似值的思想达到更高精度的数值解,二阶龙格库塔的特例就是改进后的欧拉格式。
七、思考题如何对四阶龙格-库塔法进行改进,以保证结果的精度。
,如果某次计算结果精度,,反复将步长减半,直到,这时的可作为结果。
(2)步长加倍。对于给定精度,如果某次计算结果精度,,反复将步长加倍,直到,这时的可作为结果。
6
一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc相关推荐
- 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码
今年年初的时候给师姐做了DDPG算法的船舶减横摇控制算法,师姐还有想法要让我把纵摇-埀荡两个自由度的减摇也做出来,这个任务归我了.实际上不管是多少个自由度的减摇,其实都需要解运动方程,当初做单自由度横 ...
- 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉
微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉 五点差分,九点差分 差分格式,紧差分格式 直拍,只有pdf版方法说明 word版 ...
- 四阶龙格库塔算法用MATLAB写
四阶龙格-库塔算法可以使用 MATLAB 进行编写.您可以使用 MATLAB 的数值解法工具箱来解决常微分方程组,并使用相应的函数(例如 ode45)来实现四阶龙格-库塔算法.在编写代码时,您需要根据 ...
- matlab:使用四阶龙格库塔方法求解微分方程组
%书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法,例10.14使用 %四阶龙格库塔方法 function [t,z] = rk4symeq(fun, t0, tf, ...
- matlab:使用改进欧拉法,求解微分方程
%书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法 %改进欧拉方法 function S = impeuler(fun, x0, xn, y0, h) %fun:微分方 ...
- matlab:二阶龙格库塔求解欧拉方程
%书籍:常用数值算法及其matlab实现 %第10章 常微分方程初值问题的数值解法 %二阶龙格库塔方法 function S = heunsec(fun, x0, xn, y0, h) %fun:微分 ...
- 二阶水箱 matlab 四阶龙格库塔,请问这个二阶常微分方程组用龙格四阶库塔法怎么编写...
要是不用MATLAB自带的ode45函数 也可以网上下载一个4阶龙格库塔算法来代替 附上一个仅供参考 function y=DELGKT4_rungekuta(f,h,a,b,y0,varvec) ...
- fleury求欧拉环游算法 matlab,Fleury算法求欧拉路径
分析: 小Ho:这种简单的谜题就交给我吧! 小Hi:真的没问题么? <10分钟过去> 小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了. 小Hi:哎,我就知道你会遇到问题. 小Ho:小 ...
- MATLAB中ode23函数,龙格库塔函数
今天说一说MATLAB中ode23函数的原理,在网上看了好多,但是不知道是怎么计算的,就知道是那么用的,但是最后结果咋回事不知道,今天来讲一讲是怎么计算的. 首先来个程序: function f=eg ...
最新文章
- Spark 应用程序调优
- 无法从“const char [10]”转换为“char *”
- 网页设计风格变化的一点共性
- 计算机专业 美国 硕士,【美国计算机硕士排名】美国计算机硕士专业怎么样
- k8s service:ingress
- 多线程与高并发(八):ThreadPoolExecutor源码解析, SingleThreadPool,CachedPool,FixedThreadPool,ForkJoinPoll 等
- CF1237F Balanced Domino Placements(dp+组合计数)
- Linux终端嵌套桌面里,linux下终端分屏使用的两种方法(screen和tmux)
- 云鹊医怎么快速认证_兴趣认证怎么申请?掌握这9个小技巧,快速通过
- 求一篇计算机word文档作业,计算机应用基础作业3:Word2003
- AI系统可以自动生成逼真的人工星系图像
- 单元测试-Mock Server
- matlab a1处语法无效,MATLAB常见错误
- 字节跳动技术团队年度 TOP10 技术干货,陪你度过不平凡的 2020
- 2022-2027年中国番茄酱行业市场全景评估及发展战略规划报告
- 苹果7pnfc功能门禁卡_苹果NFC功能不再鸡肋?原来还能这么玩,内附门禁卡复制教程...
- 读PPK谈javascript
- [java] 汇率换算器实现-插曲1-正则表达式(1)
- ORA-00937: not a single-group group function
- mysql 正则表达式区间,MySQL——使用正则表达式查询
热门文章
- 基于SpringBoot开发的商城后台管理系统
- glut linux 安装包,“包GLUT不存在”,即使安装在Arch Linux的CL-的OpenGL
- 2018 WAIC |最强阵容!各界大咖齐聚,推动视觉智能全领域发展
- rt linux 测试,Ubuntu下测试RT-Linux的性能
- Linux Centos7 搭建简易堡垒机安装jailkit实现chroot
- nginx配置深析1
- 程序员的理想桌面装备,少不了一台2K高清的专业显示器
- 办公软件不能打印能打印测试页,excel2010无法打印的解决方法
- POI使用详解 java 复杂excel导出
- android指定sim卡拨号,android – 在双SIM卡设备中使用指定的SIM拨打电话