saving regula-falsi iterations
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
dario cecchetti
am 14 Mai 2017
Beantwortet: Astarag Chattopadhyay
am 17 Mai 2017
Hi everybody, I would like to save the iterations of X variable into a vector. I can only get the final resul, that is the solution equation, while my goal is that to obtain the whole series.
ex: x=[x1,x2,...,xn].
function [x,iter]= RegulaFalsi(f,a,b,ep,itermax)
x0=a;
x1=b;
iter=0; %number iterations
x=b;
while (abs(f(x)) > ep) && (iter<itermax)
x=x0-((f(x0)*(x1-x0))/(f(x1)-f(x0))); %intersection X axis
if (f(x)*f(x0)>0)
x0=x;
x1=b;
else (f(x)*f(b)>0)
x1=x;
x0=a;
end
if iter==itermax
disp('Maximum number of iterations reached')
end
iter=iter+1;
end
0 Kommentare
Akzeptierte Antwort
Astarag Chattopadhyay
am 17 Mai 2017
Hi,
I would suggest you to use an array to store the value of x in every iteration. You can accomplish this using the following code snippet:
function [x,iter]= RegulaFalsi(f,a,b,ep,itermax)
x0=a;
x1=b;
iter=0; %number iterations
x=b;
i = 1;
x = zeros(1,itermax);
x(i)=b;
z=x(i);
while (abs(f(z)) > ep) && (iter<itermax)
x(i)=x0-((f(x0)*(x1-x0))/(f(x1)-f(x0))); %intersection X axis
z=x(i);
i= i+1;
if (f(z)*f(x0)>0)
x0=z;
x1=b;
else (f(z)*f(b)>0)
x1=z;
x0=a;
end
iter=iter+1;
if iter==itermax
disp('Maximum number of iterations reached')
end
end
end
Another alternative would be to make use of the following code for "Regula-Falsi Method" provided in MATLAB Central:
0 Kommentare
Weitere Antworten (0)
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!