用FORTRAN计算一个33阶矩阵的逆矩阵与乘积
在FORTRAN中,可以使用库函数来进行矩阵运算。以下是一个计算3x3阶矩阵逆矩阵和乘积的示例代码:
program matrix_inverse
implicit none
integer, parameter :: n = 3
real :: matrix(n,n), inverse(n,n), product(n,n)
integer :: i, j, info
! 定义输入矩阵
matrix = reshape((/1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0/), shape(matrix))
! 计算逆矩阵
call invert(matrix, inverse, info)
! 打印逆矩阵
print *, "Inverse Matrix:"
do i = 1, n
print *, (inverse(i,j), j = 1, n)
end do
! 计算矩阵乘积
product = matmul(matrix, inverse)
! 打印乘积矩阵
print *, "Product Matrix:"
do i = 1, n
print *, (product(i,j), j = 1, n)
end do
contains
subroutine invert(matrix, inverse, info)
implicit none
integer, parameter :: n = 3
real, intent(in) :: matrix(n,n)
real, intent(out) :: inverse(n,n)
integer, intent(out) :: info
integer :: ipiv(n), lwork, iwork(n)
real :: work(n*n)
integer :: i, j
inverse = matrix
lwork = n*n
call sgetrf(n, n, inverse, n, ipiv, info)
call sgetri(n, inverse, n, ipiv, work, lwork, info)
end subroutine invert
end program matrix_inverse
这个示例代码使用了SGEFT和SGEFT库函数来计算逆矩阵。你可以将输入矩阵的值修改为你需要计算的矩阵,然后编译并运行这个代码。它会输出逆矩阵和乘积矩阵的结果
原文地址: https://www.cveoy.top/t/topic/hzwe 著作权归作者所有。请勿转载和采集!