fortran运算时出现NaN,不知道怎么了,并且这个程序运算出来的结果不收敛,不懂了。。

fortran运算时出现NaN,不知道怎么了,并且这个程序运算出来的结果不收敛,不懂了。。,第1张

phip=c1phiz+c2phim

这一步,算出来的 c1 和 c2 绝对值都大于 1,于是 phip 越来越大。基本每次循环翻10倍以上,经过 1000 次循环,计算机无法存储如此巨大的数字。

如果你的预期不是这样,那么认真调试你的程序,下断点 Debug。

NaN意思是非数。

NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用,是以浮点数表示实数时的特殊值。首次引入NaN的是1985年的IEEE 754浮点数标准。

返回NaN的运算有如下三种:

1、至少有一个参数是NaN的运算。

2、不定式:

(1)下列除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞。

(2)下列乘法运算:0×∞、0×−∞。

(3)下列加法运算:∞ + (−∞)、(−∞) + ∞。

(4)下列减法运算:∞ - ∞、(−∞) - (−∞)。

3、产生复数结果的实数运算。如:对负数进行开偶次方的运算。

只要数组中存在nan(无论是多个还是仅有一个,可以使用isnan找到nan的位置),max、sum等函数默认都会返回nan。一个比较好的办法是函数中加入参数,例如

aaa=max(a,

'omitnan');

但不同版本的matlab用法可能不同,具体请查询相关函数的说明;另外,有些工具包中也提供了nanmean等函数。

for (i = 0; p[i] = '\0'; i++) 注意里面的反斜杠的方向。

nan -- 表示 出错,“不是一个数” not a number 的缩写。

按 IEEE 754 国际标准,当运算中出现无效数据时,给出 NaN 许多情况会出现,例如 0 除 0,负数开平方,

以上就是关于fortran运算时出现NaN,不知道怎么了,并且这个程序运算出来的结果不收敛,不懂了。。全部的内容,包括:fortran运算时出现NaN,不知道怎么了,并且这个程序运算出来的结果不收敛,不懂了。。、nan是什么意思、关于matlab中nan读取的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9675370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存