% Input: f, function handle della funzione f(x) % x0, ascissa del limite lim f(x) x->x0 % delta, salto iniziale ascissa x = x0 + delta % epsilon, tolleranza su f: |f(x_new)-f(x)| < epsilon % limite_puntuale, booleano: true se si vuole x->x0, false per x->±Infinito % Output: fx, il limite lim f(x) x->x0 function fx = limite( f , x0 , delta , epsilon , limite_puntuale ) % Funzione anonima per calcolare f(x+step) f_x_plus_step = @(x, step) f(x+step) ; % Valori iniziali fx = f_x_plus_step(x0, delta) ; % f(x0+delta) iniziale epsilon_f = Inf ; % differenza tra le f iniziale while abs( epsilon_f ) > epsilon if limite_puntuale delta = delta / 2 ; % per tendere a x0 else delta = delta * 2 ; % per tendere a ±Infinito end fx_new = f_x_plus_step(x0, delta) ; % f(x0+delta) epsilon_f = fx_new - fx ; % differenza tra le f fx = fx_new ; % spostamento di fx_new in fx per l'iterazione successiva % Caso di limite ±Infinito if abs(fx) > 1e6 % Soglia F if fx > 0 ; fx = +Inf ; else ; fx = -Inf ; end break ; end end end