Running a while loop one time after the parameter is met

10 visualizaciones (últimos 30 días)
Logan
Logan el 22 de Feb. de 2023
Editada: Aditya Srikar el 2 de Mzo. de 2023
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 comentario
Askic V
Askic V el 22 de Feb. de 2023
Editada: Askic V el 22 de Feb. de 2023
Hello Logan,
please have a look at this thread:
Basically you need this:
while true
n=n/2;
xi=x+n;
yi=(5*xi^2)/(log10(7*xi^4));
if (yi-y)/y<=0.01
break
end
end

Iniciar sesión para comentar.

Respuesta aceptada

Aditya Srikar
Aditya Srikar el 2 de Mzo. de 2023
Editada: Aditya Srikar el 2 de Mzo. de 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

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by