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

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

矩阵求拟是一个复杂的问题。

矩阵是否满秩?实数还是复数?

用什么方法?求唯一逆,还是广义逆?

以下是徐世良的算法集,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是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9437097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存