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

📄 spline.c

📁 适合大型数值计算代码 现在网络上已经找不到了 购买需要20$
💻 C
字号:
#define NRANSI#include "nrutil.h"void spline(float x[], float y[], int n, float yp1, float ypn, float y2[]){	int i,k;	float p,qn,sig,un,*u;	u=vector(1,n-1);	if (yp1 > 0.99e30)		y2[1]=u[1]=0.0;	else {		y2[1] = -0.5;		u[1]=(3.0/(x[2]-x[1]))*((y[2]-y[1])/(x[2]-x[1])-yp1);	}	for (i=2;i<=n-1;i++) {		sig=(x[i]-x[i-1])/(x[i+1]-x[i-1]);		p=sig*y2[i-1]+2.0;		y2[i]=(sig-1.0)/p;		u[i]=(y[i+1]-y[i])/(x[i+1]-x[i]) - (y[i]-y[i-1])/(x[i]-x[i-1]);		u[i]=(6.0*u[i]/(x[i+1]-x[i-1])-sig*u[i-1])/p;	}	if (ypn > 0.99e30)		qn=un=0.0;	else {		qn=0.5;		un=(3.0/(x[n]-x[n-1]))*(ypn-(y[n]-y[n-1])/(x[n]-x[n-1]));	}	y2[n]=(un-qn*u[n-1])/(qn*y2[n-1]+1.0);	for (k=n-1;k>=1;k--)		y2[k]=y2[k]*y2[k+1]+u[k];	free_vector(u,1,n-1);}#undef NRANSI

⌨️ 快捷键说明

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