24小时热门版块排行榜    

查看: 397  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

kathy2008

木虫 (正式写手)

[交流] 【求助】Jabobi 程序中遇到的困惑 已有2人参与

本人菜鸟。刚开始学习Fortran. 在Jacobi程序中,其中A 表示数据矩阵A;S表示特征向量。里面有这么一段:
dimension A(1),S(1)
E=0.000001
CONSTF=N
IN=0
Do 10 J=1,N
Do 20 I=1,N
IS=(LRA*(J-1)+I)
S(IS)=0
IF((I-J).EQ.0) S(IS)=1.0
请高手解析一下CONSTF是什么意思?
IS=(LRA*(J-1)+I)
S(IS)=0
IF((I-J).EQ.0) S(IS)=1.0
又是什么意思?
谢谢。
回复此楼

» 猜你喜欢

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

snoopyzhao

至尊木虫 (职业作家)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+1):指导费:-) 2010-07-21 17:32:15
引用回帖:
Originally posted by kathy2008 at 2010-07-21 09:49:28:
赋值我知道。关键是右边的LRA*(J-1)+I是什么意思?为什么要把0.000001赋值给E,而不是其他值。这才是问题的关键。

你上面这两句话之间有什么联系吗? LRA*(J-1)+I 只是一个表达式,用于计算出一个整数,从你给出的代码来看,应该是计算向量/矩阵下标的表达式……

对这些东西的理解要建立在你对算法已经清楚的基础之上,否则程序是没有办法看的……
5楼2010-07-21 10:34:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

snoopyzhao

至尊木虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
还是找本 Fortran 的书看看吧,呵呵……

CONSTF = N,表示把 N 赋值给 CONSTF 这个变量,至于 CONSTF 它只是一个变量的名称

下面这几句字面意思不是很清楚吗?

IS=(LRA*(J-1)+I)
表示将 (LRA*(J-1)+I) 赋值给 IS

S(IS)=0

表示将 0 赋值给 S(IS)

IF((I-J).EQ.0) S(IS)=1.0

作一判断,如果 I-J 等于 0, S(IS) 就等于 1.0
2楼2010-07-21 07:13:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kathy2008

木虫 (正式写手)

赋值我知道。关键是右边的LRA*(J-1)+I是什么意思?为什么要把0.000001赋值给E,而不是其他值。这才是问题的关键。
3楼2010-07-21 09:49:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
我对算法不清楚,这个是语言之外的东西。

也许只是一个小的初值,使之不等于零即可(比如 E 可能是某个除法表达式的分母)……
4楼2010-07-21 10:32:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见