Script per il metodo di bisezione

function[c,fc,it,err]= bisezioni(a,b,fun,toll)

%%%METODO DELLE BISEZIONI
%%%
%%%Dati di input
%%% a,b = estremi dell’intervallo
%%% fun = funzione f
%%% toll = tolleranza sull’errore per accettare la soluzione
%%%
%%%Dati di output
%%% c = soluzione approssimata
%%% fc = valore di f in c
%%% it = iterate necessarie per approssimare c
%%% err = errore commesso nell’approssimazione

subplot(1,2,1),
fplot(fun,[a b]), hold on,

it=0;
%i valori della funzione negli estremi sono
fa = feval(fun,a);
fb = feval(fun,b);

subplot(1,2,1)
plot(a,fa,’r*’,b,fb,’r*’),hold on,

%verifico se sono soddisfatte le ipotesi del teorema di esistenza degli zeri
if(fa*fb)>=0
    disp(‘Il metodo non è applicabile o lo zero è un estremo dell”intervallo’);
else
    err = abs(a-b);
    subplot(1,2,2),
    semilogy(it,err,’r*’), hold on,
    %blocco iterativo della funzione
    while(it<101 & err>toll)
        it = it+1;
        c = (a+b)/2;
        fc = feval(fun,c);
        if(fa*fc)<0
            b=c;
        else a=c;
        end
        err = abs(a-b);
        subplot(1,2,2),
        semilogy(it,err,’g*’), hold on,
    end
    fa = feval(fun,a);
    fb = feval(fun,b);
    subplot(1,2,1),
    plot(a,fa,’bo’,b,fb,’bo’),
    subplot(1,2,2)
    semilogy(it,err,’g*’), hold on
end
subplot(1,2,1), hold off
subplot(1,2,2), hold off

Commenti

commenti

Ci sono 2 commenti su questo articolo:

  1. Da dove è stato copiata questa banalissima e insulsa procedura?
    Un vero capolavoro di inefficienza e di “già visto”
    Voto “scarso” perché non trovo,in valutazione-utente,un definizione peggiore…