17.4.9 二次方程式の解の計算

2次方程式 x^2 + 2x + 1 = 0 の解を計算させてみましょう.(「x^2」は「xの2乗」を表わしていると思って下さい. )2次方程式 ax^2 + bx + c = 0 の解は,(-b ± √(b^2-4ac))/2a なので,解の1つは

# (-2.0 +. sqrt(2.0*.2.0 -. 4.0*.1.0*.1.0)) return2 /.(2.0*.1.0) ;; return2 - : float = -1 #

のように求めることができます.

review_s17.4.3 千年の秒数と実数を使った数式で説明したように, Ocamlでは実数どうしの計算は「2.0」のように小数点を付けて数を書き,「+.」のようにピリオドの付いた演算子を使う約束でした. 少し格好悪いのですが,ともかく求めることができました.ちなみに sqrt(x) は実数 x の平方根を求める関数です.

x^2 + 5x + 6 = 0であれば,

# (-5.0 +. sqrt(5.0*.5.0 -. 4.0*.1.0*.6.0)) return2 /.(2.0*.1.0) ;; return2 - : float = -2 #

という具合です.