MATLAB Program for Newton-Raphson method | .m file
Program:
%% Newton-raphson Method %%
clc;
display('**---------
Newton-Raphson method (Single function)---------**');
display('==========================================');
display( ' ');
%% Function Inputs %%
format long
syms x;
f=input('Enter the
function {f(x)} ');
fprime=diff(f);
%% Find true root values
& display them
S=solve(f,'Real',true);
S=double([S]);
S=array2table(S,'VariableNames',{'X_true' });
display(' ');
display('#------------Hint
Roots !--------------# ');
display(S);
display('#-----------------------------------------#
');
%% Parameters Inputs
{inital Guesses,maximum iterations,minimum errors}
xi=input('Enter the
initial guess {xi} :');
xt=input('Enter the
true value {xt} :');
etmin=input('Enter the
minimum true error required {Et%} :');
eamin=input('Enter the
minimum approximate error required
{Ea%} :');
imax=input('Enter the
maximum number of iterations {i} :');
%% Main algorithm %%
i=2;
m=1;
xold=xi;
A=[1 xi double(subs(f,{x},xi))
nan nan];
while m==1
xold=xi;
f0=double(subs(f,{'x'},xold));
fprime0=double(subs(fprime,{'x'},xold));
xi=xold-((f0)/(fprime0));
et=abs((xt-xi)/(xt))*100;
ea=abs((xi-xold)/(xi))*100;
A=[A;i xi double(subs(f,{x},xi)) et ea];
i=i+1;
if fprime0==0
m=0;
display('The method can not be
continued ;Hint: try another initial
guess');
end
if ea<eamin || et<etmin || i>imax
m=0;
end
%% Outputs %%
A=double(A);
T=array2table(A,...
'VariableNames',{'Iteration' 'xi' 'Fxi' 'et' 'ea' });
plot(A(:,1),A(:,4),'linewidth',2)
xlabel('Iteration')
ylabel('Et%')
grid
title('Et% versus
Iterations Plot')
uT=uitable('Data',T{:,:},'ColumnName',T.Properties.VariableNames,'RowName',T.Properties.RowNames,...
'fontsize',13,'unit','normalized', 'Position',[0, 0, 1, 1]);
end
No comments