前提・実現したいこと
pythonで二次方程式の解の公式を解いた時に出る誤差をなくしたいです。
発生している問題・エラーメッセージ
a=1.0,b=1.0000000000000001,c=0.0000000000000001としたときに
ax^2+bx+c=0
を解くと、x=-1,-10^(-16)となるはずですが
x1 = -0.9999999999999999
x2 = -1.0000000000000001e-16
となってしまいます。
これは何による誤差なのでしょうか。
修正する部分をを教えてほしいです。
補足情報(FW/ツールのバージョンなど)
該当のコードです
python
1import math 2 3a = float(input('aの値: ')) 4b = float(input('bの値: ')) 5c = float(input('cの値: ')) 6 7D = b ** 2 - 4.0 * a * c 8 9if D >= 0.0: 10 x1 = (abs(b) + math.sqrt(D)) / (2.0 * a) 11 if b > 0: 12 x1 = -x1 13 x2 = c / (a * x1) 14 print('x1 = ', x1) 15 print('x2 = ', x2) 16else: 17 print('実数解はありません')
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。