% Input: f, function handle della funzione f % ab = [ a b ], vettore degli estremi dell'intervallo I = (a,b) % N, numero di punti in cui suddividere l'intervallo % Output: x12, matrice 2 x M delle ascisse entro le quali f cambia segno: % per l'i-èsimo zero, f cambia segno nell'intervallo definito % dalla colonna i-èsima di x12 function x12 = metodo_cambio_segno( f , ab , N ) % Valori equidistanziati di x su I in N punti x = linspace( ab(1) , ab(2) , N ) ; % Intervallo aperto: esclusione estremi x = x(2:end-1) ; % Segno della funzione segno_f = sign( f(x) ) ; % Cerchiamo dove il segno della funzione cambia ix = find( segno_f(1:end-1) ~= segno_f(2:end) ) ; % Intervallini entro i quali f cambia segno x12 = [ x(ix) ; x(ix+1) ] ; end