Fortran有多种方法可以实现矩阵乘法,这里提供一种简单的示例:
假设我们有两个矩阵A和B,A是一个m×n的矩阵,B是一个n×p的矩阵。我们想要计算它们的矩阵积C=A×B。以下是Fortran代码的示例:
program matrix_multiplication
implicit none
integer, parameter :: m = 3, n = 2, p = 4 ! 定义矩阵的大小
integer :: i, j, k
real :: A(m,n), B(n,p), C(m,p) ! 定义矩阵A、B和C
! 填充矩阵A和B
A = reshape([1., 2., 3., 4., 5., 6.], [m, n])
B = reshape([7., 8., 9., 10., 11., 12., 13., 14., 15., 16.], [n, p])
! 计算矩阵C = A × B
do i = 1, m
do j = 1, p
C(i,j) = 0.
do k = 1, n
C(i,j) = C(i,j) + A(i,k) * B(k,j)
end do
end do
end do
! 输出结果
write (*,*) '矩阵A:'
do i = 1, m
write (*,*) A(i,:)
end do
write (*,*)
write (*,*) '矩阵B:'
do i = 1, n
write (*,*) B(i,:)
end do
write (*,*)
write (*,*) '矩阵C = A × B:'
do i = 1, m
write (*,*) C(i,:)
end do
end program matrix_multiplication
在这个例子中,我们通过嵌套循环来计算矩阵积C。对于每个元素C(i,j),我们将A的第i行和B的第j列上所有对应元素的乘积相加。最后输出矩阵A、B和计算得到的矩阵C。
需要注意的是,这只是一种简单的实现方法,如果你处理的矩阵比较大,需要优化算法来提高计算效率。