clear all; close all; clc f = @(x) cos(2*x).^2 - x.^2; x0 = 0.1; tol = 1e-8; nMax = 1000; a = 0; b = 1; x = linspace(a,b,100); Df = @(x) -2*sin(4*x) - 2*x; D2f = @(x) -8*cos(4*x) - 2; sol = fzero(f,0.5); [xB,xallB,iterB] = bisezione(f,a,b,tol,nMax); [xN,xallN,iterN] = newton(f,Df,x0,tol,nMax); [xH,xallH,iterH] = halley(f,Df,D2f,x0,tol,nMax); fprintf('\n \t Iterate metodo di bisezione: %d', iterB) fprintf('\n \t Iterate metodo di Newton: %d', iterN) fprintf('\n \t Iterate metodo di Halley: %d \n', iterH) errB = abs(sol-xallB); errN = abs(sol-xallN); errH = abs(sol-xallH); figure(2) semilogy(1:iterB,errB,'o-r') hold on; semilogy(1:iterN,errN,'o-b') semilogy(1:iterH,errH,'o-r') legend('Errore bisezione','Errore Newton', 'Errore Halley') fprintf('\n \t Soluzione ottenuta con il metodo di Halley: %1.6f \n',xH)