Фортран Матрикс Дивизион - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь разделить матрицы в Фортране (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...