用fortran编写程序 求一个4*4矩阵的逆矩阵 急!

 我来答
天河流纹石
2013-10-18 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4100万
展开全部
矩阵求拟是一个复杂的问题。
矩阵是否满秩?实数还是复数?
用什么方法?求唯一逆,还是广义逆?

以下是徐世良的算法集,Brinv.for(二维实矩阵高斯消去求拟法)

SUBROUTINE BRINV(A,N,L,IS,JS)
DIMENSION A(N,N),IS(N),JS(N)
DOUBLE PRECISION A,T,D
L=1
DO 100 K=1,N
D=0.0
DO 10 I=K,N
DO 10 J=K,N
IF (ABS(A(I,J)).GT.D) THEN
D=ABS(A(I,J))
IS(K)=I
JS(K)=J
END IF
10 CONTINUE
IF (D+1.0.EQ.1.0) THEN
L=0
WRITE(*,20)
RETURN
END IF
20 FORMAT(1X,'ERR**NOT INV')
DO 30 J=1,N
T=A(K,J)
A(K,J)=A(IS(K),J)
A(IS(K),J)=T
30 CONTINUE
DO 40 I=1,N
T=A(I,K)
A(I,K)=A(I,JS(K))
A(I,JS(K))=T
40 CONTINUE
A(K,K)=1/A(K,K)
DO 50 J=1,N
IF (J.NE.K) THEN
A(K,J)=A(K,J)*A(K,K)
END IF
50 CONTINUE
DO 70 I=1,N
IF (I.NE.K) THEN
DO 60 J=1,N
IF (J.NE.K) THEN
A(I,J)=A(I,J)-A(I,K)*A(K,J)
END IF
60 CONTINUE
END IF
70 CONTINUE
DO 80 I=1,N
IF (I.NE.K) THEN
A(I,K)=-A(I,K)*A(K,K)
END IF
80 CONTINUE
100 CONTINUE
DO 130 K=N,1,-1
DO 110 J=1,N
T=A(K,J)
A(K,J)=A(JS(K),J)
A(JS(K),J)=T
110 CONTINUE
DO 120 I=1,N
T=A(I,K)
A(I,K)=A(I,IS(K))
A(I,IS(K))=T
120 CONTINUE
130 CONTINUE
RETURN
END
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式