Fixed point (matematice)

9 Ansichten (letzte 30 Tage)
Cillian
Cillian am 7 Mai 2012
Hello.
I have attempt to code a fixed point in MATLAB. But I don't know if this correct, but I think it works.
function sol=fixpunkt(g,x0,tol)
xnew=x0;
xold=x0+2*tol;
while norm(xold-xnew)>tol
xnew = xnew
xnew=g(x0) ;
end
sol=xnew;
When I tried fixpunkt(1,1,5) in the command window, MATLAB works 'busy' for a long long time, I guess it is the while loop doing that,
I would be happy if someone can give a opinion about this.
Regards Cillian

Akzeptierte Antwort

Richard Brown
Richard Brown am 7 Mai 2012
xold never gets updated, so xnew gets set to the same value every iteration, and the loop never ends ...

Weitere Antworten (1)

Titus Edelhofer
Titus Edelhofer am 7 Mai 2012
Hi,
and in addition to Richards observation: it's always not a bad idea to do something like
iter = 0;
maxIter = 50;
while norm(xold-xnew)>tol && iter<maxIter
% do fix point iteration here,
% then:
iter = iter + 1;
end

Community Treasure Hunt

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

Start Hunting!

Translated by