数值分析原理课程实验——四阶龙格-库塔(Runge-Kutta)方法
四阶龙格-库塔(Runge-Kutta)方法
方法摘要
待求问题
程序流程
程序代码
/*Matlab函数
function Result = Runge_Kutta(a, b, alpha, N, f, has_x, has_y)x0 = a;y0 = alpha;h = (b-a)/N;X = zeros(N, 1);Y = zeros(N, 1);if(has_x == 0 && has_y == 1)for n = 1:NK1 = h*subs(f, symvar(f), y0);K2 = h*subs(f, symvar(f), y0+1/2*K1);K3 = h*subs(f, symvar(f), y0+1/2*K2);K4 = h*subs(f, symvar(f), y0+K3);X(n) = x0+h;Y(n) = y0+(K1+2*K2+2*K3+K4)/6;x0 = X(n);y0 = Y(n);endelseif(has_x == 1 && has_y == 0)for n = 1:NK1 = h*subs(f, symvar(f), x0);K2 = h*subs(f, symvar(f), x0+h/2);K3 = h*subs(f, symvar(f), x0+h/2);K4 = h*subs(f, symvar(f), x0+h);X(n) = x0+h;Y(n) = y0+(K1+2*K2+2*K3+K4)/6;x0 = X(n);y0 = Y(n);endelseif(has_x == 1 && has_y == 1)for n = 1:NK1 = h*subs(f, symvar(f), [x0, y0]);K2 = h*subs(f, symvar(f), [x0+h/2, y0+1/2*K1]);K3 = h*subs(f, symvar(f), [x0+h/2, y0+1/2*K2]);K4 = h*subs(f, symvar(f), [x0+h, y0+K3]);X(n) = x0+h;Y(n) = y0+(K1+2*K2+2*K3+K4)/6;x0 = X(n);y0 = Y(n);endelseResult = 'No independent variables!';return;endResult = [X,Y];
end*/
/*C语言程序
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int n;
double a, b, fa;double f(double x, double y) { return -y * y; }
double f_(double x) { return 1.0 / (x + 1.0); }int main() {scanf("%lf%lf%lf%d", &a, &b, &fa, &n);double x = a, y = fa, h = (b - a) / n;for (int i = 1; i <= n; i++) {double k1 = h * f(x, y);double k2 = h * f(x + h / 2, y + k1 / 2);double k3 = h * f(x + h / 2, y + k2 / 2);double k4 = h * f(x + h, y + k3);x += h;y += 1.0 / 6.0 * (k1 + 2 * k2 + 2 * k3 + k4);printf("%.2lf\t%lf\t%.2lf\n", x, y, fabs(f_(x) - y));}return 0;
}*/
运行结果
牛顿(Newton)迭代法,原文链接:
https://blog.csdn.net/KissMoon_/article/details/116277622
高斯(Gauss)列主元消去法,原文链接:
https://blog.csdn.net/KissMoon_/article/details/116278197
拉格朗日(Lagrange)插值,原文链接:
https://blog.csdn.net/KissMoon_/article/details/116278449
Newton/Gauss/Lagrange/Runge-Kutta实验内容+方法指导+Matlab脚本+Matlab函数+Matlab运行报告+C程序+实验报告,一键下载:
https://download.csdn.net/download/KissMoon_/18244419
凉梦空间
欢迎你进入我的个人博客网站参观交流:https://www.liangmeng.xyz
数值分析原理课程实验——四阶龙格-库塔(Runge-Kutta)方法相关推荐
- 数值分析原理课程实验——(高斯)Gauss列主元消去法
高斯(Gauss)列主元消去法 方法概要 待求问题 程序流程 程序代码 /*Matlab函数 function Result = Gauss(n, A, b)for k = 1:n-1max = ab ...
- 数值分析原理课程实验——拉格朗日(Lagrange)插值
拉格朗日(Lagrange)插值 方法概要 待求问题 1.拉格朗日插值多项式的次数n越大越好吗? 2.插值区间越小越好吗? 3.内插比外推更可靠吗? 程序流程 程序代码 /*Matlab函数 func ...
- 数值分析C++实现用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题
问题:用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题. 算法描述 算法的程序框图: 具体算法: (1)读取a,b,n,f (2)计算步长h = (b-a)/n,x0=a,y0=f ...
- 四阶龙格库塔法的基本思想_四阶龙格库塔实验报告.docx
四阶龙格库塔实验报告 三.四阶Runge-Kutta法求解常微分方程一.龙格库塔法的思想根据第九章的知识可知道,Euler方法的局部截断误差是,而当用Euler方法估计出再用梯形公式进行校正,即采用改 ...
- 计算方法实验(三):四阶龙格-库塔方法
四阶Runge-Kutta数学原理 给定常微分方程初值问题 {dydx=f(x,y),a≤x≤by(a)=αh=b−aN\left\{ \begin{matrix} \frac{\text{dy}}{ ...
- 数值分析—四阶龙格库塔python复现
数值分析-四阶龙格库塔python复现 python入门,复现<数值分析>中的欧拉.龙格库塔,这里以经典四阶龙格库塔来示例. 四阶龙格库塔公式 y_(n+1)=y_n+h/6 (K_1+2 ...
- [计算机数值分析]四阶龙格-库塔经典格式解常微分方程的初值问题
龙格-库塔方法的设计思想: 四阶龙格-库塔方法的经典格式: 程序设计框图: 例:设取步长h=0.2,从x=0到x=1用四阶经典格式解决以下常微分方程的初值问题. 运行示例: 源码: #include& ...
- 一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc
MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程 姓名:樊元君 学号:2012200902 日期:2012.11.06 一.实验目的 掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题 ...
- 四阶龙格库塔算法用MATLAB写
四阶龙格-库塔算法可以使用 MATLAB 进行编写.您可以使用 MATLAB 的数值解法工具箱来解决常微分方程组,并使用相应的函数(例如 ode45)来实现四阶龙格-库塔算法.在编写代码时,您需要根据 ...
- 阿当姆斯方法求解微分方程初值问题:四阶龙格库塔提供出发值(C语言)
#include<stdio.h>float f1(float x,float y) //第一问 {return y*y;//方程 }float f2(float x,float y)// ...
最新文章
- c语言的求素数算法,C语言求素数的算法
- MakeFile 文件的作用
- 【Python基础】不服不行,Python 操作 JSON 的门道也这么多~
- ASCII和Unicode编码
- 谷歌街景新功能——帮警方抓毒贩
- [集训队作业2018] count(笛卡尔树,生成函数,卡特兰数)
- uboot主Makefile分析
- lintcode-137-克隆图
- @sql 单元测试_10个最常见SQL单元测试错误
- python内置函数可以返回数值型序列中所有元素之和_Python内置函数________________用来返回数值型序列中所有元素之和。...
- Limesdr软件无线电架构的理解
- 科学计算机怎么输入角度,怎么用科学计算器算角度
- 笔记本电脑键盘个别键失灵的修复方法
- 九八k用计算机打出来的音乐,背景音乐大全
- 一瞬间、一刹那、一弹指具体是多少时间呢?
- 华为linux连蓝牙鼠标,huawei蓝牙鼠标怎么样? 华为蓝牙鼠标连接使用教程
- Java+SSM+JSP实现医院预约挂号系统
- 房多多2020年财报:再度录得亏损,第四季度毛利率骤降至8%
- NFT 的潜力:扩展的艺术品鉴定证书
- ESP32-GY_30光照强度传感器