📄 求逆.txt
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -