二次方程式の解
Solution of quadratic equation

名古屋工業大学
先進セラミックス研究センター
井田 隆

名古屋工業大学 環境材料工学科 3 年次授業「マテリアルデザイン」の講義ノートです。

前へ 上へ


第1部 コンピュータの基礎
Fundamentals about Computer

第4章 数値計算
Numerical calculation

4−5 数値計算の技術
Tips for numerical calculation

4−5−3 二次方程式の解
Solution of quadratic equation

二次方程式: x2 + 2bx + c = 0 の解は

x
= −b ±
b2c
(4.5.5)

ですが,b > 0c > 0c の値が小さいとき,複号(±)のうちプラスの方の解:

x
= −b +
b2c
(4.5.6)

をこの形式のままで計算すると「桁落ち」 underflowアンダーフロー により精度が下がってしまいます。

例えば,b = 0.500005, c = 0.00001 のとき,二次方程式の解は x = −1, −0.00001 となるはずですが,倍精度実数を使っても,式 (4.5.6) の通りに計算をすると

x
= −b +
b2c
= − 0.000010 000000 00001

となって,少し間違った値になってしまいます。 この場合,有理化と逆の式変形をして,

x
= −b +
b2c
= − c
b + b2c
(4.5.7)

という形式を用いて計算すれば桁落ちを防ぐ事ができて,x = − 0.00001 という正解が得られます。


前へ 上へ

2005年10月26日公開
2013年5月5日更新