% esercitazione del 26 maggio 2005

clear
clc

x = linspace(0,10);

%x1 = 0:0.1:10;

y = testfunc(x);

plot(x,y);

x0 = fzero( @testfunc, [0 2]);

%fname  = inline('testfunc(x)');
f1name = inline('3*x.^2 - 2 + 1/(1+x)');

epsilon = 0;
delta   = 0;

x01 = 5;

maxi = 8;

[ xs1, x1 ] = Newton(@testfunc, f1name, x01, epsilon, delta, maxi);

Ek1 = abs(x1 - x0);

n1 = length(x1);

asympt1(1:n1-1) = Ek1(2:n1) ./ (Ek1(1:n1-1)).^2;

asympt1(n1) = NaN;


maxi = 12;
a = 0;
b = 5;

[ xs2, x2 ] = bisezione_2(@testfunc, a, b, eps, maxi);


Ek2 = abs(x2 - x0);

n2 = length(x2);

asympt2(1:n2-1) = Ek2(2:n2) ./ Ek2(1:n2-1);

asympt2(n2) = NaN;



barra = '--------------------------------------------------------';
titolo1 = 'Tabella della convergenza verso la radice con Newton';
titolo2 = 'Tabella della convergenza verso la radice con bisezione';

disp(titolo1);
disp(barra);
fprintf('  k  \t x_k \t\t |E_k| \t\t |E_k+1|/E_k^2 \n');
disp(barra);
%fprintf('%d\t %3.4f\t %6.5f\t %6.5f\n',[1:n;x1;Ek1;asympt1]); 
fprintf('%d \t %7.6f \t %4.3e  \t %6.5g     \n',...
    [1:n1; x1; Ek1; asympt1]);

fprintf('\n');
disp(titolo2);
disp(barra);
fprintf('  k  \t x_k \t\t |E_k| \t\t |E_k+1|/|E_k| \n');
disp(barra);
%fprintf('%d\t %3.4f\t %6.5f\t %6.5f\n',[1:n;x1;Ek1;asympt1]); 
fprintf('%d \t %7.6f \t %4.3e  \t %6.5g     \n',...
    [1:n2; x2; Ek2; asympt2]);


%---------------------------
function y = testfunc(x)
% funzione di prova per esercitazione del 26 maggio 2005

y = log(1+x) -1 -2*x + x.^3;

