How can i correct Newton rhapson method??
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
In Newton rhapson method ,i try to solve nonlinear equation . I think below cod is right. but values are not shown .
i don't understand why the result show just '120' as value. x f(x) 120.000000, 48.000000 x f(x) 102.000000, 120.000000 what's the error in below ???
please~~
thanks for your help
end
f=inline('exp(-x)-x','x');
df=inline('-exp(-x)-1','x');
epsilon=0.0001;
imax=1000;
x0=input('initial xo=');
fx0=f(x0);
if abs(fx0)<=epsilon
fprintf('xo is value');
return;
end
if abs(df(x0))<=epsilon
fprintf('input another xo');
return;
end
for iter=1:imax
x0=x0-fx0/df(x0);
fx0=f(x0);
fprintf('\n x f(x) %f, %f','x0','fx0');
if abs(fx0)<=epsilon
fprintf('\n value x= %f','x0');
return;
end
end
0 Commenti
Risposte (2)
Pourya Alinezhad
il 21 Ott 2013
you may use somthing like this :
while abs(xold -xnew) > tol
xold = xnew;
xnew = xold - feval(f,xold)/feval(fprime,old);
end
out = xnew;
delete the "for" loop and use a while command instead.
0 Commenti
Pourya Alinezhad
il 21 Ott 2013
the algorithm should be like this pseudo code...
function out = Newton(f,fprime,xstart,tol)
xold = xstart;
xnew = xold - feval(f, xold)/feval(fprime,xold);
while abs(xold -xnew) > tol
xold = xnew;
xnew = xold - feval(f,xold)/feval(fprime,old);
end
out = xnew;
0 Commenti
Vedere anche
Categorie
Scopri di più su Interpolation in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!