stoerm.c

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

C
36
字号
#define NRANSI#include "nrutil.h"void stoerm(float y[], float d2y[], int nv, float xs, float htot, int nstep,	float yout[], void (*derivs)(float, float [], float [])){	int i,n,neqns,nn;	float h,h2,halfh,x,*ytemp;	ytemp=vector(1,nv);	h=htot/nstep;	halfh=0.5*h;	neqns=nv/2;	for (i=1;i<=neqns;i++) {		n=neqns+i;		ytemp[i]=y[i]+(ytemp[n]=h*(y[n]+halfh*d2y[i]));	}	x=xs+h;	(*derivs)(x,ytemp,yout);	h2=h*h;	for (nn=2;nn<=nstep;nn++) {		for (i=1;i<=neqns;i++)			ytemp[i] += (ytemp[(n=neqns+i)] += h2*yout[i]);		x += h;		(*derivs)(x,ytemp,yout);	}	for (i=1;i<=neqns;i++) {		n=neqns+i;		yout[n]=ytemp[n]/h+halfh*yout[i];		yout[i]=ytemp[i];	}	free_vector(ytemp,1,nv);}#undef NRANSI

⌨️ 快捷键说明

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