Filter löschen
Filter löschen

the value of y in the while loop doesn't vary from the previous ?

1 Ansicht (letzte 30 Tage)
>> n=2;
>>t=520
>> r=5;
>> p=1000;
>> x=n*r*t/p;
a=1; , b=2;
>> y=n*r*t/(p+a*n^2/x^2))+n*b;
while abs(x-y)<= 0.001
x=y;
y=n*r*t/((p+a*n^2/x^2))+n*b;
end

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 26 Feb. 2013
I suspect you will find that your while loop body is not executing at all.
  7 Kommentare
bym
bym am 28 Feb. 2013
so the loop should continue while the difference is greater than .001?
Image Analyst
Image Analyst am 28 Feb. 2013
It's not even satisfied the very first time! Like Walter tried to tell you, the first time it hits that line, x = 5.2, and y = 9.1992, so abs(x-y) = 3.992 and since this is not less than 0.001, your loop never even gets entered the very first time. If you learn how to use the debugger, or simply leave off semicolons, you will discover these kinds of things very very easily and quickly.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by