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

📄 simpr.c

📁 适合大型数值计算代码 现在网络上已经找不到了 购买需要20$
💻 C
字号:
#define NRANSI#include "nrutil.h"void simpr(float y[], float dydx[], float dfdx[], float **dfdy, int n,	float xs, float htot, int nstep, float yout[],	void (*derivs)(float, float [], float [])){	void lubksb(float **a, int n, int *indx, float b[]);	void ludcmp(float **a, int n, int *indx, float *d);	int i,j,nn,*indx;	float d,h,x,**a,*del,*ytemp;	indx=ivector(1,n);	a=matrix(1,n,1,n);	del=vector(1,n);	ytemp=vector(1,n);	h=htot/nstep;	for (i=1;i<=n;i++) {		for (j=1;j<=n;j++) a[i][j] = -h*dfdy[i][j];		++a[i][i];	}	ludcmp(a,n,indx,&d);	for (i=1;i<=n;i++)		yout[i]=h*(dydx[i]+h*dfdx[i]);	lubksb(a,n,indx,yout);	for (i=1;i<=n;i++)		ytemp[i]=y[i]+(del[i]=yout[i]);	x=xs+h;	(*derivs)(x,ytemp,yout);	for (nn=2;nn<=nstep;nn++) {		for (i=1;i<=n;i++)			yout[i]=h*yout[i]-del[i];		lubksb(a,n,indx,yout);		for (i=1;i<=n;i++)			ytemp[i] += (del[i] += 2.0*yout[i]);		x += h;		(*derivs)(x,ytemp,yout);	}	for (i=1;i<=n;i++)		yout[i]=h*yout[i]-del[i];	lubksb(a,n,indx,yout);	for (i=1;i<=n;i++)		yout[i] += ytemp[i];	free_vector(ytemp,1,n);	free_vector(del,1,n);	free_matrix(a,1,n,1,n);	free_ivector(indx,1,n);}#undef NRANSI

⌨️ 快捷键说明

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