Vai al contenuto

Soluzione degli esercizi sul metodo di bisezione

Da Wikiversità, l'apprendimento libero.
Soluzione degli esercizi sul metodo di bisezione


Analisi numerica > Soluzione degli esercizi sul metodo di bisezione

esercitazione
esercitazione
Soluzione degli esercizi sul metodo di bisezione
Tipo di risorsa Tipo: esercitazione
Materia di appartenenza Materia: Analisi numerica

Esercizio 1

[modifica]
  • Ecco una possibile implementazione del metodo di bisezione con Octave/MATLAB:
function [x e iter]=bisection(f,a,b,err,itermax)
%The function bisection find the zeros of function
%with the bisection algorithm.
%It returns the zero x, the error e, and the number of iteration needed iter
%
%HOW TO USE IT:
%Example
%>>f=@(x)x.^3;
%>>a=-1; b=2;
%>>err=1e-5; itermax=1000;
%>>[x e iter]=bisection(f,a,b,err,itermax);

e=b-a;
iter=0;
if( f(a) .* f(b) >= 0 ) 
	x =[];
	disp("f(a) *  f(b) >= 0! No solution!")
else
	while( e > err )
		iter = iter + 1;
		x = 0.5 * ( b + a )
		e = abs(b - x);
		if( f(x) == 0 )
			break;
		elseif( f(x) * f(a) > 0 )
			a = x;
		else
			b = x;
		end
		if( iter == itermax)
			break;
		end	
	end
end

Per il punto 4 si ha che

k≥log23⋅1020π≈69.8,

e quindi bisognerebbe richiedere almeno 70 iterazioni. La possibilità che l'algoritmo converga con tale tolleranza dipende dal calcolatore in uso: in particolare con Octave la precisione della macchina risulta essere circa 2⋅10−16. Non ha quindi senso scegliere una tolleranza più piccola di tale precisione. Il numero di iterazioni, se non specificato, sarebbe infinito.

Esercizio 2

[modifica]
  1. Per verificare l'esistenza delle radici α basta verificare che siano soddisfatte le ipotesi del teorema degli zeri. La prima ipotesi richiede che la funzione f sia continua ed ovviamente la funzione in questione lo è dato che è somma di funzioni continue. La seconda ipotesi richiede che la funzione agli estremi dell'intervallo abbia segno opposto, ed infatti abbiamo
    f(−2)≈−3.86,f(0)=1⟹f(a)f(b)<0.
    Confronto dell'errore medio e dell'errore vero nel metodo di bisezione in scala logaritmica.
    Per mostrare l'unicità dobbiamo mostrare che la funzione f è monotona ed infatti
    f′(x)=ex−2x>0∀x∈[−2,0].
  2. Il numero di iterazioni necessarie è dato da
    k≥log2b−aϵ=log22⋅108≈27.5754,
    e quindi si ha che k≥28.
  3. L'intervallo [−2,−1] non contiene alcuna radice venendo a mancare la seconda delle ipotesi del teorema degli zeri, infatti
    f(−2)≈−3.86,f(−1)=−0.63⟹f(a)f(b)>0.
  4. α≈−0.7035
  5. Nel grafico si mostra in rosso l'errore medio ed in blu l'errore effettivo. Dal grafico è evidente la non monotonia dell'errore effettivo. Si nota che l'andamento globale delle due curve è il medesimo, giustificando quindi la nomenclatura di errore medio per ek.

Esercizio 3

[modifica]

Per la soluzione si veda l'analisi di convergenza nella pagina del metodo di bisezione.