ニュートン・ラフソン法による3次方程式の求解

 x^3+6x^2+21x+32=0
カルダノの方法によって、解は
 x_1=-\sqrt[3]{9}+\sqrt[3]{3}-2=-2.637834253
 x_2= -\sqrt[3]{9}e^{\frac{2}{3}\pi i}+\sqrt[3]{3}e^{\frac{4}{3}\pi i}-2=1.6810829-3.0504302i
 x_3= -\sqrt[3]{9}e^{\frac{4}{3}\pi i}+\sqrt[3]{3}e^{\frac{2}{3}\pi i}-2=-1.6810829‐ +3.0504302i

clear; close all;

f = @(x) x^3+6*x^2+21*x+32;
fprime = @(x) 3*x^2+12*x+21;
a(1)=-3;
b(1)=0;
x=zeros(1,100);
x(1)=0;

k=2;
delta=1e-10;
res=1e4;
while res>delta
  x(k)=x(k-1)-f(x(k-1))/fprime(x(k-1));  
  res=abs(f(x(k)));
  k = k+1;
  disp(res);
end
fprintf('ans\n = %d\n',x(k-1));

計算結果

ans
 = -2.637834e+00

2分法より高速に解が収束する。