700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 欧拉方法求解微分方程C语言 用欧拉方法求解微分方程组

欧拉方法求解微分方程C语言 用欧拉方法求解微分方程组

时间:2024-03-02 01:26:58

相关推荐

欧拉方法求解微分方程C语言 用欧拉方法求解微分方程组

将来,如果您在问题中包含完整的警告消息,这将很有帮助—它将包含发生问题的行:tmp/untitled.py:15: RuntimeWarning: overflow encountered in double_scalars

return (g-((densaire*g)/densparticula)-((mu*18.0*v)/(cc*densparticula* (D**2.00))))

当变量的大小超过可以表示的最大值时,Overflow出现。在本例中,double_scalars表示64位浮点,其最大值为:

^{pr2}$

所以表达式中有一个标量值:(g-((densaire*g)/densparticula)-((mu*18.0*v)/(cc*densparticula* (D**2.00))))

超过了~1.79e308。要找出哪一个,可以使用^{}在发生这种情况时引发FloatingPointError,然后捕捉它并启动Python debugger:...

with errstate(over='raise'):

try:

ret = (g-((densaire*g)/densparticula)-((mu*18.0*v)/(cc*densparticula* (D**2.00))))

except FloatingPointError:

import pdb

pdb.set_trace()

return ret

...

然后可以从调试器中检查此表达式各个部分的值。溢出似乎发生在:(mu*18.0*v)/(cc*densparticula* (D**2.00))

第一次出现警告时,(cc*densparticula* (D**2.00)的值为2.3210168586496022e-12,而(mu*18.0*v)的计算结果为-9.9984582297025182e+299。在

基本上你把一个很大的数除以一个很小的数,结果的大小超过了可以表示的最大值。这可能是您的数学问题,也可能是您对函数的输入没有合理地缩放。在

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。