Problems with while loop
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have a problem, I want the subtraction d1 to be less than 1 * 10 ^ -15 after several iterations, but the program stays busy.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/353714/image.jpeg)
2 Commenti
James Tursa
il 31 Ago 2020
Please post your code as regular text and highlight it with the CODE button. We can't run pictures.
Risposta accettata
Bruno Luong
il 31 Ago 2020
Modificato: Bruno Luong
il 31 Ago 2020
"Hi, I have a problem, I want the subtraction d1 to be less than 1 * 10 ^ -15 after several iterations, but the program stays busy."
Well you cannot demand floating point error to be that small.
Double IEEE has about 15 digits relative precision. You compare B1 to (y/k0) which is -7699432.66755457. The most you can demand is error is about
>> tol = eps(y/k0)
tol =
9.31322574615479e-10
So if you replace the break condition by
tol = eps(y/k0);
while tt>tol
...
end
your while loop will stop.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!