Fortran读书报告
Fortran读书报告
班级xxx
姓名xxx
学号xxx
题目
已知m×n矩阵a(如:m=3,n=4),求矩阵的转置矩阵a`以及它们的乘积
在家上班的工作a=
题目分析:此题涉及转置矩阵的问题,而转置矩阵a`与矩阵a的关系是:a`(i,j)=a(j,i),i=,m,  j=1,2…,nm×n矩阵an×m矩阵a`相乘,结果为m×m矩阵c,矩阵c与矩阵aa`关系是:
c(I,j)=    i=j=1,2…,m
用一个静态整型数组a存放矩阵a,用一个静态整型数组b存放a的转置矩阵a`,用一个静态整型数组c存放aa`的乘积矩阵c。用数组构造器和内部标准函数reshape提供矩阵a12个数据。
程序设计如下
program array887
parameter (m=3,n=4)
integer :: i,j,k
real ::a(m,n),b(n,m),c(m,m)
a=reshape((/2.0,5.0,9.0,8.0,4.0,7.0,3.0,1.0,6.0,4.0,8.0,1.0/),(3,4)
print *,‘原矩阵:’
write(*,100) ((a(I,j),j=1,n),i=1,m)
100 format (<n> (f5.1,2x)
do i=1,m
do j=1,n
b=(j,i)=a(i,j)
end do
end do
print *,‘转置矩阵’
write (*,200)  ((b(i,j),j=1,m),i=1,n)
八个月宝宝吃什么
200 format (<m> (f5.1,2x))
do i=1,m
do j=1,m
什么叫外格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
鬼节不能做的21件事
print *,‘乘积矩阵:’
write(*,300)  ((ci,j),j=1,m),i=1,m)
300 format (<m> (f7.2,2x)
end
程序运行后,输出结果为:
原矩阵
2.0  8.0  3.0  4.0
5.0  4.0  1.0  8.0
9.0  7.0  6.0  1.0
转置矩阵为
2.0   5.0  9.0
8.0   4.0  7.0
3.0   1.0  6.0
4.0   8.0  1.0
乘积矩阵为
93.00  77.00  96.00
77.00  106.00  87.00
96.00  87.00  167.00
报告总结
这个程序运用的是transposematmul函数。其中transpose函数是执行二维矩阵的转置运算,而matmul函数是执行二维矩阵的乘积运算,其格式分别为transpose(array)matmul(array_a, array_b)。而对于矩阵一般用到的比较多的函数还有format,count,sum,size,cshiftreshape等函数,如此程序中的
a=reshape((/2.0,5.0,9.0,8.0,4.0,7.0,3.0,1.0,6.0,4.0,8.0,1.0/),(3,4) 语句
100 format (<n> (f5.1,2x)200 format (<m> (f5.1,2x))等语句。对于数组和矩阵的程序设计应该熟练的掌握其常用函数的使用方法,这样才能更好的设计其程序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。