高次方程式の数値解法と代数解法

以下のような高次方程式をニュートン法2分法および代数解法により解きます.
f(x)=anxn+an-1xn-1+ ... + a1x+a0=0
方程式の次数を指定してボタンを押してください=>

OK を押すと4次以下は代数解法,5次以上はニュートン法が自動的に選択されます. その他のボタンを押すと,対応する解法が選択されます.

ニュートン法

すべての実数解を求めるために,ニュートン法で見つけた解を用いて多項式の次数を下げ, ニュートン法を繰り返し適用しています.
  1. 初期点 x0解精度最大反復回数関数値精度を指定します.
  2. f(x)=0 の実数解を一つ求めるために,ニュートン法を用います.
    1. 以下の更新式に基づき,|xi+1-xi| が解精度以下になるか, 更新回数が最大反復回数を超えるまで xi を更新します.
      xi+1 = xi - f(xi)/f'(xi), i=0,1,2,...
    2. 最終のxiの値,そのときの yi=f(xi) の値反復回数 i を表示します.
  3. |yi| が関数値精度を越えていれば,処理を終了します.
    この場合,x を Complex と表示し,y に f(x) を表示します.
  4. f(x)=(x-xi)P(x)+C を満足する多項式 P(x) を求めます.
    C(=yi) は微小値となりますので,無視します.
  5. P(x) を新たな f(x) として,II へ戻ります.
制限事項

2分法

  1. 探索範囲 [xa, xb],範囲分割数 n 個,解精度を指定します.
  2. 各範囲の大きさを w=(xb-xa)/n とします.
  3. 各範囲[xi,xi+1], xi=xa+w*i, i=0,1,2,...,n-1 において,以下の処理を行います.
    1. xp=xi, xq=xi+1 とします.
    2. f(xp)*f(xq)>0 ならば,区間 [xp,xq] には解は存在しないと判断し,処理を終了します.
      そうでなければ,区間内に解が存在しますので,次に進みます.
    3. 中点 x=(xp+xq)/2 における関数値を y=f(x) とします.
    4. f(xp)*y<=0 ならば,xq=x,そうでなければ y*f(xq)<=0 ですので,xp=x とします.
    5. (xq-xp) が解精度以下になれば解 x関数値 y を表示して処理を終了します.
      そうでなければ,c.へ戻ります
制限事項

代数解法

  1. 1次方程式 a x + b = 0 (a≠0)
    x = -b/a
    ただし,a=0, b=0 ならば任意,a=0, b≠0 ならば不能.
  2. 2次方程式 a x2+ b x + c = 0 (a≠0)
    x = 1/2(-b±(b2-4ac)1/2)
  3. 3次方程式 a x3+ b x2 + c x + d = 0 (a≠0)
    1. 係数を a で割り,x3+ b x2 + c x + d = 0 に変形する.
    2. x = y - b/3 により,y3+p y+q=0 に変形する.
      ただし,p=c-b2/3, q=d-bc/3+2b3/27 とする.
    3. t2+qt-p3/27=0 の解を t1, t2 とする.
    4. u=t11/3, v=t21/3 とする.
    5. x1=u + v - b/3
      x2=u w + v w2- b/3
      x3=u w2+ v w - b/3
      ただし,w=e2πi/3 である.
  4. 4次方程式 a x4+ b x3 + c x2 + d x + e = 0 (a≠0)
    1. 係数を a で割り,x4+ b x3 + c x2 + d x + e = 0 に変形する.
    2. x = y - b/4 により,y4+p y2+ q x + r =0 に変形する.
      ただし,p=c-3b2/8, q=d-bc/2+b3/8, r=e-bd/4+b2c/16-3b4/256 である.
    3. t3+p/2 t2+(p2/16-r/4)t-q2/64=0 の解を t1, t2, t3 とする.
    4. u=t11/2, v=t21/2, w=t31/2 とする.
      ただし,u v w=-q/8 となるように,w の符号を調整する.
    5. x1= u + v + w - b/4
      x2= u - v - w - b/4
      x3=-u + v - w - b/4
      x4=-u - v + w - b/4
制限事項