求逆.txt

来自「一种求逆的算法的c++实现的源代码程序。可以应用到广泛的领域内。」· 文本 代码 · 共 45 行

TXT
45
字号
void Gauss_Jordan(double matv[NUM][NUM],double matv1[NUM][NUM])
{
	double mat[NUM][2*NUM],d;
	int i,j,l,k;
	for (i=0;i<NUM;i++) {
		for (j=0;j<2*NUM;j++) {
			if (j<NUM) 
				mat[i][j]=matv[i][j];
			else 
				mat[i][j]=0.0;
		}
	}
	for (i=0;i<NUM;i++) mat[i][NUM+i]=1.0;
	for (k=0;k<NUM;k++) {
		d=fabs(mat[k][k]);
		j=k;
		for (i=k+1;i<NUM;i++) {//选主元
			if (fabs(mat[i][k])>d) {
				d=fabs(mat[i][k]);
				j=i;
			}
		}
		if (j!=k) { //交换
			for (l=0;l<2*NUM;l++) {
				d=mat[j][l];
				mat[j][l]=mat[k][l];
				mat[k][l]=d;
			}
		}
		for (j=k+1;j<2*NUM;j++) {
			mat[k][j]/=mat[k][k];
		}
		for (i=0;i<NUM;i++) {
			if (i==k) continue;
			for (j=k+1;j<2*NUM;j++) {
				mat[i][j]-=mat[i][k]*mat[k][j];
			}
		}
	}
	for (i=0;i<NUM;i++) {
		for (j=0;j<NUM;j++) {
			matv1[i][j]=mat[i][j+NUM];
		}
	}
}

⌨️ 快捷键说明

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