ニュートン法を使用してMatLabの関数を評価するために、次のアルゴリズムを作成しました(ソリューションではr = -7に設定しました)。
function newton(r);
syms x;
y = exp(x) - 1.5 - atan(x);
yprime = diff(y,x);
f = matlabFunction(y);
fprime = matlabFunction(yprime);
x = r;
xvals = x
for i=1:8
u = x;
x = u - f(r)/fprime(r);
xvals = x
end
アルゴリズムはエラーなしで実行されるという点で機能しますが、私の教科書によれば、式はxに対しておよそ-14に収束するはずですが、反復ごとに数値は減少し続けます。私のアルゴリズムは最初の2回の反復で正しいですが、その後-14を超え、すべての反復が完了した後、最終的にroughøy-36.4になります。
アルゴリズムが正しく機能しない理由について誰かが私に助けを与えることができれば、私はそれを大いに感謝します!