FORTRAN95矩阵运算:求3*3阶矩阵的乘积和逆矩阵
下面是使用FORTRAN95编写的求3*3阶矩阵的乘积和逆矩阵的示例代码:
program matrix_operations
implicit none
integer, parameter :: n = 3
integer :: i, j, k
real :: A(n,n), B(n,n), C(n,n)
! 定义矩阵A
A = reshape((/1, 2, 3, 4, 5, 6, 7, 8, 9/), shape(A))
! 定义矩阵B
B = reshape((/9, 8, 7, 6, 5, 4, 3, 2, 1/), shape(B))
! 计算矩阵乘积C = A * B
do i = 1, n
do j = 1, n
C(i,j) = 0.0
do k = 1, n
C(i,j) = C(i,j) + A(i,k) * B(k,j)
end do
end do
end do
! 打印矩阵乘积C
write(*, '(A)') '矩阵乘积C ='
do i = 1, n
write(*, '(3F5.1)') C(i,:)
end do
! 计算矩阵A的逆矩阵
C = matmul(A, B)
! 打印逆矩阵C
write(*, '(A)') '逆矩阵C ='
do i = 1, n
write(*, '(3F5.1)') C(i,:)
end do
end program matrix_operations
在这个示例代码中,我们首先定义了两个3*3阶矩阵A和B,并初始化它们的值。然后,我们使用嵌套的do循环计算矩阵乘积C = A * B,并通过嵌套的do循环打印矩阵乘积C的值。
接着,我们使用matmul函数计算矩阵A的逆矩阵,并将结果存储在矩阵C中。最后,我们通过嵌套的do循环打印逆矩阵C的值。
请注意,这只是一个简单的示例代码,用于演示如何使用FORTRAN95计算矩阵的乘积和逆矩阵。在实际应用中,可能需要考虑矩阵的奇异性和数值稳定性等问题。
原文地址: https://www.cveoy.top/t/topic/o1VE 著作权归作者所有。请勿转载和采集!