I can't get this IF statement to work

2 visualizaciones (últimos 30 días)
Sarfraz Khan
Sarfraz Khan el 3 de Mzo. de 2020
Comentada: Rena Berman el 14 de Mayo de 2020
Hi, I have been trying to programme newtons law of itterations, which is an itterative method which converges to the unknown point we are trying to figure out. I have got my code to do the hard part. I would however like my code to break as soon as the same figure begins to repeat itself. Please see below:
If I hadnt included the 1:100 statement the code would run on forever. Please help!!
f = @(x) exp(x)-1.5+atan(x);
g = @(x) exp(x)+1/((x^2)+1);
x0 = 50
for i = 1:100
x1 = x0 - (f(x0)/g(x0)) %Newtons Formula
if x0 == x1
else
x0=x1
end
end
  2 comentarios
Rik
Rik el 3 de Mzo. de 2020
Why did you remove your question? That is extremely rude. Now nobody can benefit from your question if they have a similar issue.
Rena Berman
Rena Berman el 14 de Mayo de 2020
(Answers Dev) Restored edit

Iniciar sesión para comentar.

Respuesta aceptada

David Hill
David Hill el 3 de Mzo. de 2020
f = @(x) exp(x)-1.5+atan(x);
g = @(x) exp(x)+1/((x^2)+1);
x0 = 50;
tol=1e-6;
for i = 1:100
x1 = x0 - (f(x0)/g(x0)); %Newtons Formula
if abs(x0-x1)<tol
break;
else
x0=x1;
end
end
You could also do a while loop:
  2 comentarios
Sarfraz Khan
Sarfraz Khan el 3 de Mzo. de 2020
Thanks so much for your previous answer.
How would I use a while loop here? I have attempted but getting similar issues :(
David Hill
David Hill el 3 de Mzo. de 2020
root=x-f(x)/fp(x);
while abs(root-x)>tol
x=root;
root=x-f(x)/fp(x);
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by