我试图在C#中实现Runge-Kutta例如问题dy/dt = y - t ^ 2 + 1和dy/dt = t*y + t ^ 3,我似乎无法获得我期望的输出.我将我的程序分成几个类,试着单独查看工作.我认为我的主要错误来自于尝试使用委托将一个方法通过Runge-Kutta进程作为变量传递.
方程类:
namespace RK4
{
public class Eqn
{
double t;
double y;
double dt;
double b;
public Eqn(double t, double y, double dt, double b)
{
this.t = t;
this.y = y;
this.dt = dt;
this.b = b;
}
public void Run1()
{
double temp;
int step = 1;
RK4 n = new RK4();
while (t < b)
{
temp = n.Runge(t, y, dt, FN1); …Run Code Online (Sandbox Code Playgroud)