ここまでに出てきた,二次方程式の解の公式と,解の個数を調べる関数の定義をまとめると次のようになります.
(* 2次方程式 ax^2 + bx + c = 0 を解く *) (* 自乗 *) let square(x) = x *. x (* 判別式 *) let discriminant (a,b,c) = square(b) -. 4.0*.a*.c (* 解の公式 *) let quadratic1 (a,b,c) = (-.b +. sqrt(discriminant(a,b,c))) /. (2.0*.a) let quadratic2 (a,b,c) = (-.b -. sqrt(discriminant(a,b,c))) /. (2.0*.a) (* 微小な値 *) let eps = 0.000001 (* 二根を持つ、解なし、重根を持つ条件 *) let two_roots (a, b, c) = discriminant (a, b, c) > eps let no_roots (a, b, c) = discriminant (a, b, c) < -.eps let one_root (a, b, c) = not (two_roots(a,b,c)) && not (no_roots(a,b,c)) (* 解の個数 *) let number_of_roots(a,b,c) = if no_roots(a,b,c) then 0 else (if one_root(a,b,c) then 1 else 2)
17.4.17 条件判断 | 17.4.18 判断までの定義のまとめ | 17.4.19 プログラムの実行のされ方 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Tue, 12 Jul 2005 14:00:00 JST (1480d) |