2

私はJavaに比較的慣れていないので、気楽にやってください。

私は機能を持っていますg(x) = 8x^3

g の後に g の逆数を出力する必要があります。そう:

inverseGAG = ((Math.pow(functionG, 1.0/3))/8);

たとえば、ほとんど正しい答えが得られます。x = 4

g(4) = 512、したがって、512 の inverseG は 512 の立方根、つまり 8 になるので、8 = 1 で割ります。

私のプログラムは出力0.9999999999していますが、その理由がわかりません。

4

2 に答える 2

0

浮動小数点演算では正確な結果を期待できないという他のコメントは正しく、通常BigDecimalはそれが答えです。BigDecimalただし、少なくとも結果が無理数になる可能性があるため、数値の非整数べき乗を計算する手段はありません。だから、それは完全な答えではありません。

ここで最も実用的な答えになるかもしれない Louis Wasserman のコメントを強調したいと思います。Math.cbrt()ここで精度が大幅に向上し、実際、議論が得1.0られます。立方根の場合にニュートン法を特殊化したものを使用していると思いますpow()。これにより、対数を使用すると予想される一般的な方法よりも精度が高くなります。

もちろん も参照してくださいMath.sqrt()

于 2013-11-02T17:12:32.543 に答える