Plot in Bisection Method
1 view (last 30 days)
Show older comments
%% Bisection Method
% f(x) = 2sin(x) + 2cos(x)
a = -1;
b = 1;
tol = 10^-3;
iter = 0;
fprintf('iter \t a \t b \t fark\n' );
fprintf('---------------------------------------------\n' );
while (abs(a-b)>tol)
fa = 2*sin(a) + 2*cos(a);
fb = 2*sin(b) + 2*cos(b);
m = (a+b)/2;
fm = 2*sin(m) + 2*cos(m);
if (fa*fm<0)
b=m;
else
a=m;
end
iter = iter + 1 ;
fprintf('%d \t %f \f \t %f \t %f \t %f\n',iter,a,b, abs(a-b),tol);
end
Hey everyone
How can I plot this code with functions showing the location of the
initial guess and the approximated root value?
0 Comments
Accepted Answer
Geoff Hayes
on 2 Jan 2019
Utku - I suppose that you would want to plot the m that is generated on each iteration of the loop. If that is the case, you could save that data to an array and plot that array when you exit the loop like
iter = 1;
mData = []; % create an array
while (abs(a-b)>tol)
fa = 2*sin(a) + 2*cos(a);
fb = 2*sin(b) + 2*cos(b);
m = (a+b)/2;
fm = 2*sin(m) + 2*cos(m);
if (fa*fm<0)
b=m;
else
a=m;
end
mData[iter] = m; % save data to array
iter = iter + 1 ;
fprintf('%d \t %f \f \t %f \t %f \t %f\n',iter,a,b, abs(a-b),tol);
end
plot(mData); % plot data
0 Comments
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!