|
用下面这个程序求矩阵的逆,结果却总是只有最后一行是正确的,而前n-1行的数据永远全部是-4.3160208E+08。一下是我试验的矩阵、结果和程序:
[Fortran] 纯文本查看 复制代码 001 | PROGRAM test_ 14 _Matrix_inv |
006 | REAL , ALLOCATABLE :: X ( : , : ) , L ( : , : ) , U ( : , : ) , y ( : ) , z ( : ) , inv_X ( : , : ) |
022 | PRINT * , '请输入矩阵X' , N , '行' , N , '列' |
049 | END program test_ 14 _Matrix_inv |
055 | SUBROUTINE Matrix_LU ( X , N , L , U ) |
056 | REAL L ( N , N ) , U ( N , N ) , X ( N , N ) |
069 | U ( K , J ) = U ( K , J ) - L ( K , M ) * U ( M , J ) |
082 | L ( I , K ) = L ( I , K ) - L ( I , M ) * U ( M , K ) |
112 | END SUBROUTINE Matrix_LU |
116 | SUBROUTINE cal_y ( L , y , N , K ) |
127 | y ( I ) = y ( I ) - L ( I , J ) * y ( J ) |
134 | SUBROUTINE cal_z ( U , y , z , N ) |
142 | z ( I ) = z ( I ) - U ( I , J ) * z ( J ) |
|
|