initial guess in a loop

3 visualizaciones (últimos 30 días)
B
B el 6 de Mayo de 2015
Comentada: B el 6 de Mayo de 2015
the initial guess in the following loop is actually inside the loop, why is that?
function [root,ea,iter]=newtraph(func,dfunc,xr,es,maxit,varargin)
if nargin<3,error('at least 3 input arguments required'),end
if nargin<4|isempty(es),es=0.0001;end
if nargin<5|isempty(maxit),maxit=50;end
iter = 0;
while (1)
xrold = xr;
xr = xr - func(xr)/dfunc(xr);
iter = iter + 1;
if xr ~= 0, ea = abs((xr - xrold)/xr) * 100; end
if ea <= es | iter >= maxit, break, end
end
root = xr;
=======================
thanks a lot
  1 comentario
B
B el 6 de Mayo de 2015
that is xrold = xr;

Iniciar sesión para comentar.

Respuestas (1)

Mischa Kim
Mischa Kim el 6 de Mayo de 2015
Editada: Mischa Kim el 6 de Mayo de 2015
B, the initial guess is provided through the newtraph call. In other words, in order to execute/call this function you need to provide an xr value. That is the initial value that is then updated in the loop.
  4 comentarios
Mischa Kim
Mischa Kim el 6 de Mayo de 2015
With xrold = xr you keep track of the last value of xr so you can compute how the solution changes. If the difference between consecutive solutions of xr becomes smaller than es (= 0.0001) then the problem is declared solved and the loop is exited.
B
B el 6 de Mayo de 2015
Thanks a lot Stephen and Mischa. I got now :)

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by