mmid.c

来自「适合大型数值计算代码 现在网络上已经找不到了 购买需要20$」· C语言 代码 · 共 36 行

C
36
字号
#define NRANSI#include "nrutil.h"void mmid(float y[], float dydx[], int nvar, float xs, float htot, int nstep,	float yout[], void (*derivs)(float, float[], float[])){	int n,i;	float x,swap,h2,h,*ym,*yn;	ym=vector(1,nvar);	yn=vector(1,nvar);	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 += h;		(*derivs)(x,yn,yout);	}	for (i=1;i<=nvar;i++)		yout[i]=0.5*(ym[i]+yn[i]+h*yout[i]);	free_vector(yn,1,nvar);	free_vector(ym,1,nvar);}#undef NRANSI

⌨️ 快捷键说明

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