Problems with while loop
조회 수: 2 (최근 30일)
이전 댓글 표시
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
James Tursa
2020년 8월 31일
Please post your code as regular text and highlight it with the CODE button. We can't run pictures.
채택된 답변
Bruno Luong
2020년 8월 31일
편집: Bruno Luong
2020년 8월 31일
"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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!