回 帖 发 新 帖 刷新版面

主题:为什么我的程序不给我算呢?


我的程序很简单,其中有这样一个量需要计算
ks(m)=(1.D0-seta)*aa(m)*tt(m-1)+(1.D0-2.d0*(1-seta)*bb(m))*tt(m)+(1.D0-seta)*hh(m)*tt(m+1)+fi(m)*Es(m)
这是他的表达式
我检查了aa tt bb hh fi es都有输出,下面的就是这六个量的输出,分两行输出的
但是为什么ks(m)都是500呢?就是不计算
1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   1.65955627496445     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   3.51598711210032     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   1.92780694297237     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   1.40048320700242     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014  0.000000000000000E+000
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   4.80534375973280     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   1.85255254259610     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=
   500.000000000000       3.313013597317743E-014   3.82507937103968     
  1.656506790019515E-013  1.656506790019515E-013  1.656506790019515E-013tt=[em6][em6]

回复列表 (共2个回复)

沙发


aa tt 的值似乎都太小了,两数相乘1.0d-20多,估计在计算机里默认为0 ,你只有一个数是500,所以可能就那一项有值,但你的变量顺序跟你输出的是对应的吗

板凳

如果计算的东西太多, 可以考虑先改小了在调试. 例如可否吧500改成50. 然后看一个个结算结果, 看看从那个开始出现NAN.

我来回复

您尚未登录,请登录后再回复。点此登录或注册