多項式の零点を求めるジェンキンス・トラウブアルゴリズムは、 1970年にマイケル・A・ジェンキンスとジョセフ・F・トラウブによって発表された、高速でグローバルに収束する反復多項式根探索法です。彼らは、複素係数を持つ一般的な多項式のための「CPOLY」アルゴリズムとして知られるもの、および実係数を持つ多項式の特殊な場合のためのより複雑な「RPOLY」アルゴリズムという2つのバリアントを提供しました。後者は「ブラックボックス多項式根探索法の事実上の標準」となっています。[ 1 ]
この記事では、複素数版について説明します。多項式Pが与えられた場合、 複素係数を用いてn個の零点の近似値を計算するP ( z )の根を、おおよそ大きさが大きくなる順に一つずつ計算します。各根が計算された後、その線形因子を多項式から削除します。このデフレーションを使用することで、各根が一度だけ計算され、すべての根が見つかることが保証されます。
実数版も同様のパターンに従いますが、一度に2つの根を計算します。2つの実数根、または共役複素根のペアです。複素数演算を避けることで、実数版は複素数版よりも高速(4倍)になります。ジェンキンス・トラウブアルゴリズムは、この種の手法に関する理論とソフトウェアの研究を大きく促進しました。
ジェンキンス・トラウブアルゴリズムは、複素係数を持つ多項式のすべての根を計算します。このアルゴリズムは、多項式に非常に大きい根または非常に小さい根が存在するかどうかを調べることから始まります。必要に応じて、変数のスケーリングによって係数が再スケーリングされます。このアルゴリズムでは、適切な根が1つずつ、一般的にはサイズが大きくなる順に見つかります。各根が見つかった後、対応する線形因子で割ることによって多項式が縮約されます。実際、多項式を線形因子と残りの縮約された多項式に因数分解することは、すでに根を見つける手順の結果です。根を見つける手順には、逆べき乗反復のさまざまなバリアントに対応する3つの段階があります。ジェンキンスとトラウブを参照してください。[ 2 ]ラルストンと ラビノウィッツ[ 3 ]のp.383 にも説明があります 。このアルゴリズムは、トラウブが研究した2段階アルゴリズムと精神的に似ています。[ 4 ]
次数nの現在の多項式P ( X )から始めて、最小の根を計算することが目的です。P(x)の多項式は、線形因子と残りの多項式因子に分解できます。他の根探索法は、主に根、ひいては第一因子を改善することを目的としている。ジェンキンス・トラウブ法の主な考え方は、第二因子を段階的に改善することである。
そのため、いわゆるH多項式の列が構築される。これらの多項式はすべて次数がn - 1であり、係数に収束すると想定されている。 P ( X )には、残りのすべての根の (線形因子) が含まれています。H 多項式の列は2 つのバリアントで現れます。1 つは簡単に理論的な洞察を可能にする非正規化バリアント、もう 1 つは正規化されたバリアントです。係数を数値的に妥当な範囲に維持する多項式。H多項式の構成複素数列によって導かれるシフトと呼ばれる。これらのシフト自体は、少なくとも第 3 段階では、前のH多項式に依存する。H多項式は、暗黙の再帰の解として定義される。 そして この陰方程式の直接解は ここで、多項式の除算は正確である。
アルゴリズム的には、ホーナー法やルフィニ法のように線形因子による長除法を用いて多項式を評価する。そして同時に商も得る。得られた商p ( X ) とh ( X ) を中間結果として用いると、次のH多項式は次のように得られる。 最高次係数はP(X)から得られるので、はこれを割り切ると、正規化されたH多項式は次のようになります 。
のためにセット通常、n = 50までの中程度の次数の多項式ではM = 5が選択されます。この段階は理論的な考察だけでは必ずしも必要ではありませんが、実際には有用です。H多項式において、最小の根の(線形因子の)余因子を強調します。
この段階のシフトは、多項式の最小根に近い点として決定されます。それは、内側根半径を持つ円上に準ランダムに配置され、その内側根半径は、方程式の正の解として推定されます。 左辺は凸関数であり、ゼロから無限大まで単調増加するため、この方程式はニュートン法などによって簡単に解くことができます。
さあ、選んでくださいこの半径の円上で、多項式の列が、は固定シフト値で生成されますこれにより、前の段階と比較して非対称性が生じ、H多項式が単一の根の余因子に近づく可能性が高まります。この反復では、根の現在の近似値は
追跡が行われます。条件が満たされた場合、第2段階は成功として終了します。 そして 同時に満たされる条件です。これにより、反復の相対的なステップサイズが制限され、近似シーケンスがより小さい根の範囲内に留まることが保証されます。一定回数の反復後も成功しなかった場合は、円上の別のランダムな点が試されます。通常、中程度の次数の多項式には9回の反復が用いられ、複数回失敗した場合は反復回数を倍増する戦略が採用されます。
の多項式は変数シフトを使用して生成されるようになりました生成されるのは 第2段階の最後のルート推定値であり、 どこは正規化されたH多項式、つまり先頭の係数で割った値。
ステージ3のステップサイズが十分に速くゼロまで減少しない場合、ステージ2を別の乱数点を用いて再開します。数回の再開後も成功しない場合は、ステージ2のステップ数を2倍にします。
Lを十分に大きく選べば、sλは常にPの根に収束することが示される。
このアルゴリズムは、根の分布に関わらず収束しますが、多項式のすべての根を見つけることができない場合があります。さらに、収束速度はニュートン・ラフソン法の2次収束よりもわずかに速いものの、1ステップあたりの演算回数は1.5倍となり、ニュートン法では2回の多項式評価が必要なのに対し、第3段階では3回の多項式評価が必要となります。
ニュートン・ラフソン反復法と比較する
この反復では、与えられたPと対照的に、ジェンキンス・トラウブの第3段階は
これはまさに、特定の有理関数に対して実行されるニュートン・ラフソン反復法である。より正確には、ニュートン・ラフソン法は一連の有理関数に対して実行される。
のために十分に大きい、 1次多項式に限りなく近い どこは、ステージ3はまさにニュートン・ラフソン反復法であるが、微分は実行されない。
させてP ( X )の根は、 P(X)のいわゆるラグランジュ因子であり、これらの根の余因子である。 すべての根が異なる場合、ラグランジュ因子は次数が最大でn − 1 の多項式の空間の基底を形成する。再帰手順の解析により、H多項式は座標表現を持つ ことがわかる。 各ラグランジュ因子の最高次係数は1であるため、H多項式の最高次係数は係数の和となる。したがって、正規化されたH多項式は次のようになる。
条件がほぼすべての反復において、正規化された H 多項式は少なくとも幾何級数的に収束する。。
以下の条件の下で 漸近推定値を得る
ジェンキンス・トラウブ複素アルゴリズムのすべての段階は、特殊な行列の固有値を決定する線形代数問題として表現できます。この行列は、次数がn − 1 以下の多項式のn次元空間における線形写像の座標表現です。この写像の主なアイデアは、因数分解を解釈することです。 根付きそして変数Xとの乗算の固有ベクトル方程式として次数n − 1の残りの因子、続いて除数P ( X ) による剰余計算、 これは次数が最大n − 1 の多項式を次数が最大n − 1の多項式に写像します。この写像の固有値はP ( X )の根です。固有ベクトル方程式は次のようになります。 これはつまりつまり、はP ( X )の線形因子です。単項式基底では、線形写像はは、多項式Pのコンパニオン行列によって表される。 結果として得られる変換行列は この行列に対して、アルゴリズムの3つの段階において、シフトなし、定数シフト、および一般化レイリーシフトの3つのバリアントで逆べき乗反復法が適用されます。線形代数演算は行列演算ではなく多項式演算で行う方が効率的ですが、逆べき乗反復法の特性は変わりません。
先に説明した Jenkins–Traub アルゴリズムは、複素係数を持つ多項式に有効です。同じ著者らは、実係数を持つ多項式のための 3 段階アルゴリズムも作成しました。Jenkins と Traub の「二次反復を用いた実多項式の 3 段階アルゴリズム」を参照してください。[ 5 ]このアルゴリズムは、実数演算のみで線形または二次の因数を見つけます。複素アルゴリズムと実数アルゴリズムを同じ実多項式に適用すると、実数アルゴリズムは約 4 倍高速になります。実数アルゴリズムは常に収束し、収束速度は 2 次以上です。
行列の固有値を計算するシフトQRアルゴリズムとの意外な関連性があります。DekkerとTraubの「エルミート行列のシフトQRアルゴリズム」[ 6 ]を参照してください。ここでも、シフトは、1次多項式に収束する一連の有理関数に対するニュートン・ラフソン反復と見なすことができます。
ジェンキンス・トラウブアルゴリズムのソフトウェアは、Jenkins and Traub Algorithm 419: Zeros of a Complex Polynomialとして公開されました。[ 7 ]実数アルゴリズムのソフトウェアは、Jenkins Algorithm 493: Zeros of a Real Polynomialとして公開されました。[ 8 ]
これらの手法は多くの人々によって徹底的に検証されてきた。予想通り、あらゆるゼロ分布において、2次収束よりも速い収束性を示す。
しかし、次の例で示すように、精度が失われる可能性のある多項式もあります[ 9 ]。この多項式は、すべての零点が異なる半径の2つの半円上にあります。ウィルキンソンは、安定したデフレーションのためには、小さい零点を先に計算することが望ましいと推奨しています。第2段階のシフトは、小さい半円上の零点が先に見つかるように選択されます。デフレーション後、半円上に零点を持つ多項式は、次数が大きい場合、条件が悪いことが知られています。ウィルキンソン[ 10 ]のp.64を参照してください 。元の多項式は次数が60で、深刻なデフレーション不安定性に悩まされました。