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

📄 tqli.c

📁 适合大型数值计算代码 现在网络上已经找不到了 购买需要20$
💻 C
字号:
#include <math.h>#define NRANSI#include "nrutil.h"void tqli(float d[], float e[], int n, float **z){	float pythag(float a, float b);	int m,l,iter,i,k;	float s,r,p,g,f,dd,c,b;	for (i=2;i<=n;i++) e[i-1]=e[i];	e[n]=0.0;	for (l=1;l<=n;l++) {		iter=0;		do {			for (m=l;m<=n-1;m++) {				dd=fabs(d[m])+fabs(d[m+1]);				if ((float)(fabs(e[m])+dd) == dd) break;			}			if (m != l) {				if (iter++ == 30) nrerror("Too many iterations in tqli");				g=(d[l+1]-d[l])/(2.0*e[l]);				r=pythag(g,1.0);				g=d[m]-d[l]+e[l]/(g+SIGN(r,g));				s=c=1.0;				p=0.0;				for (i=m-1;i>=l;i--) {					f=s*e[i];					b=c*e[i];					e[i+1]=(r=pythag(f,g));					if (r == 0.0) {						d[i+1] -= p;						e[m]=0.0;						break;					}					s=f/r;					c=g/r;					g=d[i+1]-p;					r=(d[i]-g)*s+2.0*c*b;					d[i+1]=g+(p=s*r);					g=c*r-b;					for (k=1;k<=n;k++) {						f=z[k][i+1];						z[k][i+1]=s*z[k][i]+c*f;						z[k][i]=c*z[k][i]-s*f;					}				}				if (r == 0.0 && i >= l) continue;				d[l] -= p;				e[l]=g;				e[m]=0.0;			}		} while (m != l);	}}#undef NRANSI

⌨️ 快捷键说明

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