在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库函数来计算逆矩阵。你可以将输入矩阵的值修改为你需要计算的矩阵,然后编译并运行这个代码。它会输出逆矩阵和乘积矩阵的结果

用FORTRAN计算一个33阶矩阵的逆矩阵与乘积

原文地址: https://www.cveoy.top/t/topic/hzwe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录