非常に新しい matlab ユーザーです。以下に示すコードは、式 2 を解くのに最適ですが、式 1 に切り替えると、matlab が「ビジー」になり、何も機能しないようです。
ctrl+c、ctrl+d、ctrl+ は機能しないようですが、とにかく根本的な問題を解決したいと思います
function [x1, relErr] = NewtonRaphson(x0, TOL, MAX)
x = sym('x');
f(x) = x*exp(-x); %EQUATION 1
%f(x) = x^2-6 %EQUATION 2
df = diff(f);
relErr = 1:MAX;
for i = 1:MAX,
x1 = double(x0 - f(x0) / df(x0));
% Compute relative approximated error
relErr(i) = abs(x1-x0)/abs(x1);
if( abs(x0-x1) < TOL )
char(x1);
fprintf('Newton: Solution %0.5f in %d iterations\n',x1,i);
relErr = relErr(1:i);
plot(relErr);
lambda = abs(x1-6)/((abs(x0-6))^2);
char(lambda);
fprintf('Newton: Lamda = %0.5f\n',lambda);
return;
end
x0 = x1 ;
end
display('Method failed, hit max iterations');
end