A very simple while loop

6 vues (au cours des 30 derniers jours)
Truman Cassady
Truman Cassady le 14 Avr 2018
Commenté : Truman Cassady le 14 Avr 2018
while tol<10E-6
E= M+e*sin(E)
n=n+1;
E = M + (M+e*sin(E))
tol(:,1)= E(n+1)-E(n)
end
If I don't assign an index to the E value in this loop how can I reference two values in the sequence. Everything works, but I just need clarification on the index values for the tol variable.

Réponses (1)

Walter Roberson
Walter Roberson le 14 Avr 2018
while tol<10E-6
means the same thing as
while all(tol(:)<10E-6)
When you make tol a vector then all of the entries have to be true in order to proceed.
If you do not need a record of the tol values, then just assign tol = E(n+1)-E(n) ;
If you do need a record of the tol values, then use while tol(end)<10E-6
... Or probably, while abs(tol(end))>10E-6 since you probably want to stop when the you get close enough.
  1 commentaire
Truman Cassady
Truman Cassady le 14 Avr 2018
I posted an updated screen capture of my code. Thank you for responding to me on a Saturday btw. I can't correctly build a new tolerance value with each successive iteration.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by