initial guess in a loop

4 Ansichten (letzte 30 Tage)
B
B am 6 Mai 2015
Kommentiert: B am 6 Mai 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 Kommentar
B
B am 6 Mai 2015
that is xrold = xr;

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Mischa Kim
Mischa Kim am 6 Mai 2015
Bearbeitet: Mischa Kim am 6 Mai 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 Kommentare
Mischa Kim
Mischa Kim am 6 Mai 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 am 6 Mai 2015
Thanks a lot Stephen and Mischa. I got now :)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by