この計算機でできること
このn次方程式ソルバーは、実係数をもつ方程式 \(\text{a}_0 x^{n} + \text{a}_1 x^{n-1} + \cdots + \text{a}_{n-1} x + \text{a}_n = 0\) のすべての解——実数解も複素数解も——を求めます。用いるのはデュラン・カーナー法(ワイエルシュトラス法とも呼ばれ、DKA法=Durand-Kerner-Aberth系の基礎)です。これは、すべての解の近似値を一度に同時に改良していく反復解法です。国や単位に依存しない、普遍的な数学ツールです。
係数の並べ方
本ツールでは係数を最高次から並べます。すなわちa0がxnの係数(最高次係数。0以外であること)、anが定数項です。教科書でよく見る「a_kがx^kの係数」という流儀とは逆順なので、その点に注意して入力してください。次数nより大きい添字の係数は無視されます。
使い方
次数n(1〜16)を選び、係数a0からanまでを入力します(使わない係数は0のままで構いません)。表示する有効桁数を選んで実行してください。実数解は虚部が0として表示され、実係数多項式の複素数解は共役な組(re + i·im と re − i·im)で現れます。
計算式
まず全係数をa0で割ってモニック多項式 \(p(x)=x^{n}+b_1 x^{n-1}+\cdots+b_n\) にします。次に各近似値を $$z_i \leftarrow z_i - \frac{p(z_i)}{\displaystyle\prod_{j \ne i}(z_i - z_j)}$$ で更新します。円周上に散らした互いに異なる初期点から始めると、各近似値はn個の解へ同時に収束していきます。
計算例
\(x^3 - 6x^2 + 11x - 6 = 0\) の場合、n=3、a0=1、a1=−6、a2=11、a3=−6 と入力します。この多項式は \((x-1)(x-2)(x-3)\) と因数分解でき、反復計算は解 1、2、3(すべて実数)に収束します。
よくある質問
なぜa0は0であってはいけないのですか? 最高次係数が0だと、その方程式は本当の意味でn次ではなくなります。本ツールではa0=0を無効として扱います。
なぜ複素数解は組で現れるのですか? 実係数の多項式の複素数解は、必ず共役な組で現れます。そのため、対応する +i·im と −i·im の値がペアで表示されます。
重解にも対応していますか? はい。ただし重解(多重解)は収束が遅くなるため、本ソルバーでは反復回数を多めに、許容誤差をやや緩めに設定しています。ごくわずかな虚部の残差は0に丸められます。