数値的に非常に不安定になる傾向があるため、閉じた形のソリューションを使用しないことを強くお勧めします。判別式やその他のパラメーターの評価の方法と順序には細心の注意を払う必要があります。
古典的な例は、次方程式です。として根を計算すると、多項式で問題が発生します。分子。を計算する必要があり。、X 1 、2 = - B ± √aX2+ b x + c = 0 B»4CX1=- (B+SIGN(B) √
バツ1 、2= − b ± b2− 4 a c−−−−−−−√2 a
B » 4 Cバツ1= − (b + s i gn (b )b2− 4 a c−−−−−−−√)2 a; バツ2= ca1バツ1
Highamの傑作「数値アルゴリズムの精度と安定性」(第2版、SIAM)は、直接探索法を使用して、古典的な分析3次解が非常に不正確な結果を与える3次多項式の係数を見つけます。彼の例はです。この多項式の場合、根は十分に分離されているため、問題は悪条件ではありません。ただし、分析アプローチを使用して根を計算し、これらの根の多項式を評価する場合、安定した標準法(コンパニオンマトリックス法)を使用しながら剰余を取得します。 、剰余は次数【、B 、C ] = [ 1.732 、1 、1.2704 ]O( 10− 2)O( 10− 15)。彼はアルゴリズムにわずかな変更を提案しますが、それでも、彼は残差につながる係数のセットを見つけることができますが、これは明らかに良くありません。上記の本のp480-481を参照してください。O( 10−11)
あなたの場合、私はベアストウの方法を適用します。これは、2次形式でのニュートン反復法(および2次式の根が解かれます)とデフレーションの反復的な組み合わせを使用します。これは簡単に実装でき、Webで利用できる実装もいくつかあります。