1

私は5次の多項式を持っています:

y = ax 5 + bx 4 + cx 3 + dx 2 + ex + f

係数afは既知であり、与えられたyに対してxを計算する必要があります。ニュートンラプソンアルゴリズムなどを使用することもできますが、可能であれば非反復ソリューションを使用することをお勧めします。

編集:質問を投稿する前に、これについて十分に考えていなかったと思います。私の多項式係数はサンプリングされたデータから計算されており、この特別な場合にはルートが1つだけです。もちろん、一般的なケースでは5つの異なるルーツがあるかもしれないということは私の心を通過しませんでした。サンプリングしたデータも逆多項式に当てはめ、それを使ってyからxを計算すると思います。

4

3 に答える 3

8

多項式の根を見つけることは難しく、注意が必要です。安定した堅牢なアルゴリズムを取得すると、頭痛の種になります。ニュートン+ルートの削除は素晴らしいアイデアのようですが、これを正しく機能させるのは本当に苦痛です。

明らかな問題の1つは、根の除去の安定性です。もう1つの問題は、複雑な根です。もう1つの難しい問題は、(数値的に)複数のルートがあり、精度が大幅に低下することです。

最先端のブラックボックスアルゴリズムはJenkins-Traubです。ただし、実装は難しいため、どこかで実装を見つける(または支払う)必要があります。

それでも、線形アレブラパッケージにアクセスできる場合、単純で、堅牢で、安定した、効率的な方法は、コンパニオン行列の固有値を計算することです。これは、例えばです。GSLはそうします。

于 2011-04-05T07:44:29.147 に答える
2

Jトラナはすでにこれに答えていますが、答えは一般的にこれのアルゴリズムを見つけることができないということです(これはガロアを有名にした数学的な結果です)。

また、これが宿題以外の問題である場合、これは数値的に悪い動作をするため、とにかくラジカルで問題を解決するアルゴリズムは必要ないでしょう。

于 2011-04-05T07:14:36.553 に答える
1

Newton-Raphsonは、1つの解決策しか得られません。5次関数の場合は最大5つ存在する可能性があります。

すべてのソリューションが必要な場合は、Newton-Raphsonとroot-removalを組み合わせるか、もう少し堅牢なものを使用する必要があります。

一般的な方法の1つは、Sturm多項式を使用することです。

于 2011-04-05T07:24:58.167 に答える