矩阵是否满秩?实数还是复数?
用什么方法?求唯一逆,还是广义逆?
以下是徐世良的算法集,Brinvfor(二维实矩阵高斯消去求拟法)
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=00
DO 10 I=K,N
DO 10 J=K,N
IF (ABS(A(I,J))GTD) THEN
D=ABS(A(I,J))
IS(K)=I
JS(K)=J
END IF
10 CONTINUE
IF (D+10EQ10) THEN
L=0
WRITE(,20)
RETURN
END IF
20 FORMAT(1X,'ERRNOT 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 (JNEK) THEN
A(K,J)=A(K,J)A(K,K)
END IF
50 CONTINUE
DO 70 I=1,N
IF (INEK) THEN
DO 60 J=1,N
IF (JNEK) 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 (INEK) 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
你问的都不是Fortran标准的东西,都是用户自定义的变量名或函数名
derivs,我猜的是定义的某导数(derivatives)
rk4,不出意外的话,应该是四阶隆格-库塔方法(Runge-Kutta),是求常微分方程(ODE)最常用的算法。
下次问问题把背景写详细点吧,例如像给个源码,给个问题说明。Fortran里面定义一个函数名都是作者按自己口味的,不介绍上下文,那可不一定能猜对。
以上就是关于用fortran编写程序 求一个4*4矩阵的逆矩阵 急!全部的内容,包括:用fortran编写程序 求一个4*4矩阵的逆矩阵 急!、fortran中的derivs是一个固定的算法吗rk4是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)