mmid.cpp

来自「工程算法 这是一个很有用的工程数值算法集锦」· C++ 代码 · 共 30 行

CPP
30
字号
void mmid(double y[],double dydx[], double &nvar, double &xs, double &htot, int nstep, double yout[])
{
	int n,i;
    double ym[11],yn[11],x,swap,h,h2;
    h = htot / nstep;
    for( i = 1; i<=nvar; i++)
	{
        ym[i] = y[i];
        yn[i] = y[i] + h * dydx[i];
    }
    x = xs + h;
    derivs(x, yn, yout);
    h2 = 2.0 * h;
    for( n = 2; n<=nstep; n++)
	{
        for (i = 1; i<=nvar; i++)
		{
            swap = ym[i] + h2 * yout[i];
            ym[i] = yn[i];
            yn[i] = swap;
        }
        x = x + h;
        derivs(x, yn, yout);
    }
    for( i = 1; i<=nvar; i++)
	{
        yout[i] = 0.5 * (ym[i] + yn[i] + h * yout[i]);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?