24小时热门版块排行榜    

查看: 5284  |  回复: 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的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
什么是张量相乘,向量的点乘?
2楼2012-07-13 19:50:41
已阅   回复此楼   关注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的回帖

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的回帖

btx97

金虫 (小有名气)

引用回帖:
4楼: Originally posted by snoopyzhao at 2012-07-13 13:47:01
没有计算公式不好说。如果计算不能向量化,那么基本上也只能用循环了……

谢谢! 计算公式的话就是上面的,算这个除了用下面这样的,还有别的办法吗?
CODE:
do i=1,3
    do j=1,3
        do k=1,3
           do l=1,3
                 c(i, j, k, l)=a(i, j)*b(k, l)
           end do
         end do
    end do
end do

6楼2012-07-13 21:38:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

supersunyan

金虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
forall语句好像只能赋值,也没有想到什么好的方法。
默默奋斗,实现梦想
7楼2012-07-13 23:33:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
7楼: Originally posted by supersunyan at 2012-07-13 16:33:14
forall语句好像只能赋值,也没有想到什么好的方法。

看来fortran不支持并乘计算啊。
8楼2012-07-15 04:45:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

whu_zyg

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
这个四重循环觉得应该可以减少为两重循环,因为两个向量直接相乘(product命令)就是求和了,你可以试试
9楼2012-07-16 00:25:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
9楼: Originally posted by whu_zyg at 2012-07-15 17:25:16
这个四重循环觉得应该可以减少为两重循环,因为两个向量直接相乘(product命令)就是求和了,你可以试试

谢谢参与。不过这里没有求和的,是向量中的每个元素与另一向量中的每个元素相乘的算法。
PS: 才发现你前半句是对的,是可以减少为两重

[ Last edited by btx97 on 2012-7-17 at 19:53 ]
10楼2012-07-16 01:31:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 btx97 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-14 23:45 by vZfe6xYu34yj
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 s3fFTmArrBt6 2026-09-14 5/250 2026-09-14 23:33 by vZfe6xYu34yj
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-13 5/250 2026-09-14 23:13 by vZfe6xYu34yj
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 s3fFTmArrBt6 2026-09-13 3/150 2026-09-14 23:09 by vZfe6xYu34yj
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-13 5/250 2026-09-14 22:45 by vZfe6xYu34yj
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 LwdutQ8HoqWP 2026-09-13 6/300 2026-09-14 22:37 by vZfe6xYu34yj
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 LwdutQ8HoqWP 2026-09-13 5/250 2026-09-14 22:25 by vZfe6xYu34yj
[博后之家] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 3n8v2C8RimXI 2026-09-13 5/250 2026-09-14 22:12 by vZfe6xYu34yj
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 QUjhNVAcOSff 2026-09-13 4/200 2026-09-14 21:37 by vZfe6xYu34yj
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 QUjhNVAcOSff 2026-09-13 5/250 2026-09-14 21:36 by vZfe6xYu34yj
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QUjhNVAcOSff 2026-09-13 5/250 2026-09-14 21:25 by vZfe6xYu34yj
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QUjhNVAcOSff 2026-09-13 5/250 2026-09-14 21:24 by vZfe6xYu34yj
[考研] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-14 18:01 by Aj1rhIDL5ixY
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 4/200 2026-09-14 17:48 by Aj1rhIDL5ixY
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 QUjhNVAcOSff 2026-09-13 6/300 2026-09-14 15:21 by Aj1rhIDL5ixY
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 QUjhNVAcOSff 2026-09-13 3/150 2026-09-14 15:09 by Aj1rhIDL5ixY
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 QUjhNVAcOSff 2026-09-13 3/150 2026-09-14 14:57 by Aj1rhIDL5ixY
[基金申请] 求教各位大神:2026教育部人文社科青年基金项目何时公示呀? +5 云宴山人 2026-09-10 7/350 2026-09-14 12:11 by ecnu2013
[教师之家] 浙江师范大学是怎么坑我的 +10 recruit123 2026-09-09 15/750 2026-09-13 10:45 by seaskyy
[基金申请] 面上有专家说实验设备不是我们单位的 +6 zj_muchong 2026-09-08 8/400 2026-09-11 06:56 by suifengdao
信息提示
请填处理意见