Running a while loop one time after the parameter is met
7 views (last 30 days)
Show older comments
The problem is to write a code that will approximate the slope of an equation at a point by using the value of the function at a point x and a point xi. The slope is being approximated by using f(xi)-f(x)/xi-x. X is randomly generated, and the increment between the points x and xi is to be 1 at first, and to be halved each loop until two consecutive slope approximations are within 1% of each other. My issue is that I got the code to loop until f(xi) is within 1% of f(x), but I don't know how to phrase my condition or nest another statement to get the loop to run one more time to satisfy the requirement of two consecutive approximations being within 1% of each other. I "manually" ran the sequence one more time after the while loop to obtain the correct answer, but I know that I should be able to do it within a single loop.
x=rand*9+1;
n=1; % increment
xi=x+n;
y=(5*x^2)/(log10(7*x^4)); % function to approximate slope of
yi=(5*xi^2)/(log10(7*xi^4));
while ((yi-y)/y)>0.01
n=n/2;
xi=x+n;
yi=(5*xi^2)/(log10(7*xi^4));
end
n=n/2;
xi=x+n;
yi=(5*xi^2)/(log10(7*xi^4));
slope=(yi-y)/(xi-x)
1 Comment
Answers (1)
Aditya Srikar
on 2 Mar 2023
Edited: Aditya Srikar
on 2 Mar 2023
Hi Logan
The condition in while loop need to be
(yi-y)/y<=0.01
Modify the condition and the code should work fine.
I hope this helps
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!