⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rzextr.cpp

📁 提供了4种解常微分方程组的c++代码:定步长四阶龙格-库塔(Runge-Kutta)法(RK4->RKDUMP); 自适应变步长的龙格-库塔(Runge-Kutta)法(RKQC->ODE
💻 CPP
字号:
void rzextr(int iest,double xest,double  yest[],double yz[],double  dy[],int nv,int nuse)
{
	int j,m1,k;
    double  fx[8],yy,v,c,b1,b,ddy;
    static double x[12],d[11][ 8];
    x[iest] = xest;
    if (iest == 1)
	{
        for (j = 1; j<= nv; j++)
		{
            yz[j] = yest[j];
            d[j][1] = yest[j];
            dy[j] = yest[j];
		}
	}
    else
	{
        m1 = iest;
        if (nuse < iest) m1 = nuse;
        for( k = 1; k<= m1 - 1; k++)
		{
            fx[k + 1] = x[iest - k] / xest;
        }
        for (j = 1; j<= nv; j++)
		{
            yy = yest[j];
            v = d[j][1];
            c = yy;
            d[j][1] = yy;
            for (k = 2; k<=m1; k++)
			{
                b1 = fx[k] * v;
                b = b1 - c;
                if( b != 0.0)
				{
                    b = (c - v) / b;
                    ddy = c * b;
                    c = b1 * b;
				}
                else
				{
                    ddy = v;
                }
                if (k != m1)  v = d[j][k];
                d[j][k] = ddy;
                yy = yy + ddy;
            }
            dy[j] = ddy;
            yz[j] = yy;
		}
    }
	for (j = 1; j<=7; j++)
	{
    fx[j]=0.0;
	}
}

⌨️ 快捷键说明

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