How can I solve the max iterations exceeded?

5 vues (au cours des 30 derniers jours)
fs
fs le 24 Jan 2017
Réponse apportée : fs le 24 Jan 2017
I'm trying to solve root finding problem by using Newton method when I run the code I got this message. How can I avoid this message? Is there a problem with my code?
max_iter=10; err=1; tol=10^-6; n_iter=0;
while err>tol
n_iter=n_iter+1;
delta=-F(r)/dF(r);
r=r+delta;
err=abs(delta/r);
if n_iter>max_iter
warning('max iterations exceeded')
break
end
end
end
%%%%%%%%%%%%%%%%%%%%%
function out=F(r)
K=9*10^9; e= 1.6*10^-19; p=0.33*10^-10; Alpha=1.74637*10^-16;
out=-K*(e^2./r)+ Alpha*exp(-r./p);
end
%%%%%%%%%%%%%%
function out=dF(r)
K=9*10^9; e= 1.6*10^-19; p=0.33*10^-10; Alpha=1.74637*10^-16;
out=K*(e^2./r^2)- (Alpha/p)*exp(-r./p);
end
  2 commentaires
James Tursa
James Tursa le 24 Jan 2017
Probably a problem with your code (e.g., recursion without proper convergence criteria, etc), but impossible to say without seeing your code. Can you post it?
John Chilleri
John Chilleri le 24 Jan 2017
Providing your code would be useful, but without it, I can only suggest that you look into changing the MaxIter option, as the default may be too low for you.

Connectez-vous pour commenter.

Réponse acceptée

James Tursa
James Tursa le 24 Jan 2017
Modifié(e) : James Tursa le 24 Jan 2017
Had to hunt for awhile to find a place where the function switches signs, but try this for a starting point:
r = 0.1e-9

Plus de réponses (2)

Steven Lord
Steven Lord le 24 Jan 2017
It's impossible to say for certain without seeing a sample of your code, but more likely than not you're accidentally doing something like this (question 3.18 in this FAQ, if that link doesn't work.) If you call a function from within itself, you need to ensure that you have a base case that does not call the function itself, to end the recursion.

fs
fs le 24 Jan 2017
Thank you very much. As I go smaller and smaller for r, I got more n_iter. Thank you again.

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by