C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码
微分方程
含有导数或微分的方程称为微分方程,未知函数为一元函数的微分方程称为常微分方程。
微分方程的阶数
微分方程中导数或微分的最高阶数称为微分方程的阶数。
微分方程的解
使得微分方程成立的函数称为微分方程的解。
微分方程的特解
微分方程的不含任意常数的解称为微分方程的特解。
微分方程的通解
所含相互独立的任意常数的个数与微分方程的阶数相等的微分方程的解称为微分方程的通解。
Isaac Newton
Adams,John Couch
Le Verrier
牛顿(Isaac Newton)通过使用微分方程研究天体力学和机械力学,从理论上得到行星运动规律;英国天文学家亚当斯(Adams,John Couch)和法国天文学家勒维烈(Le Verrier)使用微分方程,找到了海王星。解微分问题的基本思想类似于解代数方程,要把问题中已知函数和未知函数之间的关系找出来,进而得到包含未知函数的一个或几个方程,然后使用分析的方法去求得未知函数的表达式。
Carl Runge
Martin Wilhelm Kutta
数值分析中,龙格-库塔法(Runge-Kutta methods)是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。这些技术由数学家卡尔·龙格和马丁·威尔海姆·库塔于1900年左右发明。
龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法,其中包括著名的欧拉法,用于数值求解微分方程。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。
using System;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public delegate double SDE_Equation(double x, double y);public static partial class Algorithm_Gallery{public static SDE_Equation dydx = null;/// <summary>/// Finds value of y for a given x/// using step size h and /// initial value y0 at x0./// </summary>/// <param name="x0">初值</param>/// <param name="y0">初值</param>/// <param name="x">求值点</param>/// <param name="h">步长</param>/// <returns></returns>public static double Runge_Kutta_2th_Order(double x0, double y0, double x, double h){int n = (int)((x - x0) / h);double y = y0;for (int i = 1; i <= n; i++){double k1 = h * dydx(x0, y);double k2 = h * dydx(x0 + 0.5 * h, y + 0.5 * k1);y = y + (1.0 / 6.0) * (k1 + 2 * k2);x0 = x0 + h;}return y;}}
}
C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码相关推荐
- 龙格-库塔(Runge-Kutta)方法数学原理及实现
参考:https://blog.csdn.net/u013007900/article/details/45922331 龙格-库塔(Runge-Kutta)方法 龙格-库塔(Runge-Kutta) ...
- 数值分析C++实现用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题
问题:用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题. 算法描述 算法的程序框图: 具体算法: (1)读取a,b,n,f (2)计算步长h = (b-a)/n,x0=a,y0=f ...
- 4 详解matlab实现龙格库塔算法求解复杂常微分方程组
目录 4.1 题目 4.2 问题背景 4.3 算法 4.4 matlab编程实现 4.5 结果展示 4.6 讨论 4.1 题目
- 龙格-库塔(Runge-Kutta)法解微分方程
龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法.由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂.该算法是构建在数学支持的基础之上的. 对于一阶精度的欧 ...
- matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
详见mathworks 龙格库塔方法 写成矩阵(状态方程)的形式更简洁一点(其实这两种方法结果是一样的,如果C是[1,0,0]的话,就很明显了) 例如:求系统在0-5s内的单位阶跃相应,已知传递函数: ...
- 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码
今年年初的时候给师姐做了DDPG算法的船舶减横摇控制算法,师姐还有想法要让我把纵摇-埀荡两个自由度的减摇也做出来,这个任务归我了.实际上不管是多少个自由度的减摇,其实都需要解运动方程,当初做单自由度横 ...
- 四阶龙格库塔方程解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Python代码
0 写在前面 这篇博客是在将我上一篇博客的matlab代码移植到python中,应为后续要开展深度强化学习下的船舶减摇研究,总的来说还是在python上做这项工作比较合适.具体方程的解法和背景不在赘述 ...
- 龙格库塔(runge-kutta,RK)法求解微分方程
求解微分方程的意思就是,已知导函数,求原函数. 先声明一点,欧拉法.中值法.龙哥库塔法求解微分方程,得出的结果不是表达式,而是一系列离散点. 一.欧拉法递推 问题描述:已知y'=f(x,y),求y(x ...
- 二阶龙格库塔公式推导_连续系统数值仿真方法——龙格库塔法
在决策理论与方法最后一课中,老师讲了连续系统建模与仿真,事实上在本科就已经接触过许多,在这里我把数值仿真方法中的龙格库塔法给详细介绍一下,这是个比较有趣,同时也比较实用的方法.在求解常微分方程初值问题 ...
最新文章
- 【网站汇总】安装教程系列
- svm 彻底的过程
- 如何设置input实现同时选中多个文件并同时上传
- [CVPR2019]:专门为卷积神经网络设计的训练方法:RePr
- java8新特性_JAVA8十大新特性详解
- 适合建索引?不适合建索引?分析
- [转载]Unity3D 访问Access数据库
- 计算机网络中ip子网的划分,计算机网络学习笔记(十二)IP 子网划分
- 纯碱增仓10%上涨,PTA认沽大涨10倍,玻璃-纯碱继续下探2022.6.29
- android源码编译烧鸡,板栗烧鸡的做法图文
- 无线鼠标vs蓝牙鼠标
- 上海学车科目二,科目三容易扣分点分享,你了解多少
- IP地址和物理地址的区别和联系
- 铁威马F2-NAS2评测(家用云存储NAS)
- 曹操为何杀死神医华佗?
- 技术到管理岗位的角色转换:从优秀骨干到优秀管理者
- Django计算机毕业设计交通违章举报平台(程序+lw)Python
- memsql 基本完全免费了
- 威客生存手册——从新手到职业威客的蜕变
- 阿里OceanBase GitHub点赞送礼引争议,CTO道歉,贾扬清李沐讨论
热门文章
- Linux vi中按上下左右键出现ABCD及Backspace键失灵
- 基于SpringBoot校园外卖配送系统的设计与实现【Java毕业设计·安装调试·代码讲解·文档报告】
- npj | 王德华/张学英等揭示荒漠啮齿动物通过“菌群-肠-肾”轴耐受高盐的机制...
- 随机网络图 matlab,MATLAB实例:构造网络连接图(Network Connection)及计算图的代数连通度(Algebraic Connectivity)...
- 人工智能会被黑客攻击?
- linux主机又又中木马了
- 【C语言】判断三角形形状
- 树莓派文字转语音 python_树莓派的语音识别
- 国庆来临,外贸人出货必须注意的几个点(附节日营销技巧)
- actf-2019-onerepeater