Fixed point (matematice)

8 次查看(过去 30 天)
Cillian
Cillian 2012-5-7
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

采纳的回答

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

更多回答(1 个)

Titus Edelhofer
Titus Edelhofer 2012-5-7
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

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by