balanc.c

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

C
45
字号
#include <math.h>#define RADIX 2.0void balanc(float **a, int n){	int last,j,i;	float s,r,g,f,c,sqrdx;	sqrdx=RADIX*RADIX;	last=0;	while (last == 0) {		last=1;		for (i=1;i<=n;i++) {			r=c=0.0;			for (j=1;j<=n;j++)				if (j != i) {					c += fabs(a[j][i]);					r += fabs(a[i][j]);				}			if (c && r) {				g=r/RADIX;				f=1.0;				s=c+r;				while (c<g) {					f *= RADIX;					c *= sqrdx;				}				g=r*RADIX;				while (c>g) {					f /= RADIX;					c /= sqrdx;				}				if ((c+r)/f < 0.95*s) {					last=0;					g=1.0/f;					for (j=1;j<=n;j++) a[i][j] *= g;					for (j=1;j<=n;j++) a[j][i] *= f;				}			}		}	}}#undef RADIX

⌨️ 快捷键说明

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