24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 4761  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

btx97

金虫 (小有名气)

[交流] fortran如何实现张量相乘(并乘)已有3人参与


如上的计算公式,Fortran是否有不用DO循环就能实现的办法。
不想用DO的原因是我的计算中会出现高阶张量,如果用DO,嵌套(用的对否?)次数最多会达到十二次。顺便也问下FORTRAN里DO嵌套的效率怎么样?有人用过12次,或7次的吗,会严重影响效率吗?

[ Last edited by btx97 on 2012-7-13 at 10:40 ]
回复此楼

» 收录本帖的淘帖专辑推荐

资源收集

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-07-13 12:50:41
什么是张量相乘,向量的点乘?

不是点乘,点乘的表达式是这样的:
两个二阶张量点乘结果是二阶张量,两个二阶张量并乘是一个四阶张量。如果是两个一阶的张量并乘其结果是二阶张量,可以跟列向量a通过得到矩阵进行类比.
你知道有什么办法可以避免太多的循环嵌套吗?

[ Last edited by btx97 on 2012-7-13 at 13:27 ]
3楼2012-07-13 20:21:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

snoopyzhao

至尊木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
什么是张量相乘,向量的点乘?
2楼2012-07-13 19:50:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
没有计算公式不好说。如果计算不能向量化,那么基本上也只能用循环了……
4楼2012-07-13 20:47:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
看看下面这段代码与你的这个计算有没有相关性,至少不需要循环,呵呵……
CODE:
program test

   integer, dimension(5) :: a = (/1,2,3,4,5/)
   integer, dimension(5) :: b = (/5,4,3,2,1/)
   integer, dimension(5) :: c
   integer, dimension(3, 3) :: d
   integer, dimension(3, 3) :: e
   integer, dimension(3, 3) :: f
   
   d = reshape((/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), shape(d))
   e = reshape((/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), shape(e))
   
   c = a * b
   f = d * e
   write(*,*) c
   write(*,*) f

end program test

5楼2012-07-13 21:09:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见