|
|
@@ -0,0 +1,48 @@ |
|
|
|
% |
|
|
|
% Keeping epsilon fixed, plot the [a,b] interval over the iterations for |
|
|
|
% different lambda values (min, mid, max)) |
|
|
|
% |
|
|
|
|
|
|
|
|
|
|
|
% Clear workspace and load the functions and interval |
|
|
|
clear |
|
|
|
addpath('..'); |
|
|
|
GivenEnv; |
|
|
|
|
|
|
|
% * epsilon: e = 0.001 |
|
|
|
% * lambda: l > 2e = 0.001 |
|
|
|
% * dl: A small step away from 2e |
|
|
|
% dl = 0.0001 |
|
|
|
% * lambda_max: 0.1 |
|
|
|
% * N: 3 lambda values |
|
|
|
|
|
|
|
N = 3; |
|
|
|
epsilon = 0.001; |
|
|
|
dl = 0.0001; |
|
|
|
lambda_max= 0.1; |
|
|
|
lambda = linspace(2*epsilon + dl, lambda_max, N); |
|
|
|
k = zeros(1, N); % preallocate k |
|
|
|
|
|
|
|
|
|
|
|
% |
|
|
|
% * Call the bisection method for each lambda value for each function |
|
|
|
% * Plot the [a,b] interval over iterations for each lambda for each function |
|
|
|
% |
|
|
|
|
|
|
|
for i = 1:length(funs) |
|
|
|
figure; |
|
|
|
for j = 1:N |
|
|
|
[a, b, k(j)] = bisection(funs{i}, a_0, b_0, epsilon, lambda(j)); |
|
|
|
subplot(length(funs), 1, j) |
|
|
|
plot(1:length(a), a, 'ob') |
|
|
|
hold on |
|
|
|
plot(1:length(b), b, '*r') |
|
|
|
if j == 1 |
|
|
|
title(titles(i), 'Interpreter', 'latex') |
|
|
|
end |
|
|
|
xlabel("Iterations @lambda=" + lambda(j)) |
|
|
|
ylabel('[a_k, b_k]') |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|