Make an while-loop stop when conditions is fullfilled
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
First of all I am new to MATlab, but I have made this code for Newton's method. My problem is that I have said that the code should make 100 iteration, but I want it to stop when it converges. How can I do this?
0 Kommentare
Antworten (2)
Walter Roberson
am 12 Mai 2016
if convergence_test_goes_here
break;
end
for example,
if abs(fx - prev_fx) < 1E-10
break
end
0 Kommentare
Weird Rando
am 12 Mai 2016
Bearbeitet: Weird Rando
am 12 Mai 2016
Just use an AND logic '&' to identify both condition for the while loop.
clc
clear
%%Website
%f(x) = x^3 - x + 1 = 0
%f'(x) = 3x^2 - 1
% The root of the function is between -1 and -2
x = -2:0.1:2;
y = x.^3 - x + 1;
plot(x,y)
grid on
%%Example
counter = 0;
converge = -1.3247;
x1 = -1; %initial guess
while counter < 100 & round(x1*10000)/10000 ~= converge
x1 = x1 - (x1^3 - x1 + 1)/(3*x1^2 - 1)
counter = counter + 1;
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!