t = t0; // time
for(int i=0; i
for(int i=0; i<(Ndt-1); i++)
{
for(int m=0; m[m] = y[i][m];}
(*func)(t, y1, params, k1);
for(int m=0; m[m] = y[i][m] + 0.5*h*k1[m];}
(*func)(t+0.5*h, y2, params, k2);
for(int m=0; m[m] = y[i][m] + 0.5*h*k2[m];}
(*func)(t+0.5*h, y3, params, k3);
for(int m=0; m[m] = y[i][m] + h*k3[m];}
(*func)(t+h, y4, params, k4);
t += h;
for(int m=0; m[i+1][m] = y[i][m] + h*(0.1666666666666667)*(k1[m] + 2.0*k2[m] + 2.0*k3[m] + k4[m]);
}
}
我需要带自己想要的初值条件是[-1 -1 0 0]该如何更改
这是问题代码中定义了变量s的代码
```c++
void RKF4(double IC[], int s, double params[], double t0, double t1, double h,
void (*func)(double, double[], double[], double[]), double **y)
{
int Ndt = round((t1-t0)/h); // number of time steps
double *k1, *k2, *k3, *k4; // Runge-Kutta's k
double *y1, *y2, *y3, *y4;
k1 = new double[s];
k2 = new double[s];
k3 = new double[s];
k4 = new double[s];
y1 = new double[s];
y2 = new double[s];
y3 = new double[s];
y4 = new double[s];
double t;
```
int i=0
初值不是0吗
[-1 -1 0 0]是个啥东西,你这也没有4维数组呀