1

mpmath「任意精度の浮動小数点演算」をサポートすると主張しています。

それでも。. .

>>> import mpmath
>>> 1 + mpmath.erf(-5.921)
mpf('1.1102230246251565e-16')
>>> 1 + mpmath.erf(-5.922)  # I expect a smaller positive number here.
mpf('0.0')

何か不足していますか?それとも、これは基本的な制限mpmathですか?

@jonrsharpe は、問題は私が に提出したことだと示唆していfloatますerf。ただし、以下のコードは、これが問題ではないことを示しています。

>>> 1 + mpmath.erf(mpmath.mpf('-5.922'))
mpf('0.0')
4

1 に答える 1

1

この特定のケースの問題は、mpmathグローバルなprecision 設定が低すぎることに関係しています。のデフォルト値prec

>>> mpmath.mp.prec
53

に設定すると100、期待していた結果が得られます。

>>> 1 + mpmath.erf(-5.922)
mpf('5.5236667058718205581661131647751e-17')

この場合、速度の違いは目立ちませんが、一般に精度を上げると、結果の計算に必要な時間が長くなることに注意してください。

于 2015-10-01T21:39:41.467 に答える