「近似的に正しく丸められた」値を返す4次以下の代数方程式ソルバ Version 0.0: 2008-02-19 Tomonori Kouya 自動的にユーザの要求精度を(恐らくは)満足する実係数4次代数方程式の根を求めるソルバを作ってみました。このソルバはIEEE754 double precision計算とMPFRによって構築されています。以下のアドレスで実験的にCGIとして公開しています。 http://ex-cs.sist.ac.jp/~tkouya/try_cee_algebraic_eq.html このソルバは次のような手順で,ユーザの要求精度桁数uを満足する根の近似値を導出しています。 1) IEEE754 double precisionで代数的に根を求め,その近似値の精度を近似的に求めます。ここで要求精度を満足していれば,その値を要求桁数に丸めて出力します。 2) IEEE754 double precision計算による損失桁数pをもとに,余裕桁c = max(10, p + u / 10)を更にプラスして,s (= u + c),l ( = s + c)桁計算でそれぞれ根x_s, x_lを求めます。ここで求めた近似値の差を取ってx_sの精度桁数を求め,要求精度以上であればx_lの値を返します。 3) 満足しなければ,c *= 2として,再度2)の計算を繰り返します。もちろんこの過程は全てMPFRで計算されます。 何か問題などありましたら,報告して頂けると幸いです。なお,セキュリティに問題が発生した時は直ちに公開を停止します。 ---- Tomonori Kouya