Fortran Matrix Division

时间:2018-05-27 22:24:30

标签: matrix fortran fortran90 matrix-inverse fortran95

我试图在Fortran(f90)中划分矩阵。 X = R / Z => X [6x1],R [6x6]和Z [6x1]是矩阵。

通常在Matlab中,你可以编写那个方程式并且容易但在Fortran中有点不同,因为Fortran没有任何除法属性,所以我需要取Z矩阵的逆(X = R * Z ^ -1)。

问题是矩阵形状,因为这里Z矩阵(6x1)而不是正方形,所以我不能反过来。是否有任何准备好的除法功能以及如果矩阵的逆矩阵不是正方形,如何处理?

program main
implicit none
real, dimension(6,1) :: X
real, dimension(6,6) :: R
real, dimension(6,1) :: Z
real, dimension(6,1) :: Z_inv 

!X=R/Z
call mat_inverse(Z) ! Please ignore inverse part
Z_inv=Z             ! Mat_inverse function is already defined in math 
                    ! Kernel Library but I just call that mat_inverse
                    ! Because I call mat_inverse subroutine
! X=R*Z^-1                     
X=Matmul(R,Z_inv)

end program main

0 个答案:

没有答案