Asked by mohamed
on 26 Feb 2013

>> 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

*No products are associated with this question.*

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.

Show 4 older comments

mohamed
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)

bym
on 28 Feb 2013

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

Image Analyst
on 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.

Related Content

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

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments