Performing calculations (Newton's method) over values in loop
Ältere Kommentare anzeigen
I am trying to perform Newton's method over a series of values given by the array p_init.
I am trying to perform Newton's method on the jth value, check if Newton's method was convergent within 10 iterations (indexed by i), then move onto the (j+1)th value. The Newton's method code itself works for one value, but it does not seem to be properly looping and initializing over the j values in my array. Where is my problem, or how can I properly accomplish this task? Thanks!
f = @(x) x^3 - x^2 - 6*x;
df = @(x) 3*x^2 - 2*x - 6;
p_init = -3:.1:4;
tol = 1e-12; n_iter = 10;
i = 1;
converge = false;
p0 = p_init(1);
for j = 1:length(p_init)
while i<=n_iter
p = p0-f(p0)/df(p0);
disp(p);
error = abs(p-p0);
if (error< tol)
converge = true; break
else
i = i+1;
p0 = p;
end
end
p0 = p_init(j);
% Here, I want to check convergence of my jth value
end
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!