MATLAB Answers


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

Asked by mohamed
on 26 Feb 2013
>> n=2;
>> 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




No products are associated with this question.

1 Answer

Answer by Walter Roberson
on 26 Feb 2013
 Accepted answer

I suspect you will find that your while loop body is not executing at all.


on 27 Feb 2013

yes , i run the code in my mind and i want it to continue until the condition is satisfied (difference<=0.001)

on 28 Feb 2013

so the loop should continue while the difference is greater than .001?

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.

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!