
// Première version de la fonction derive
function L = derive(f,a,b,n)
    T=linspace(a,b,n+1)
    h=(b-a)/n
    L=[]
    for i=1:n+1
        if i==1
            L=[L,(f(T(i+1))-f(T(i)))/h]
        elseif i==n+1
            L=[L,(f(T(i))-f(T(i-1)))/h]
        else
            L=[L,(f(T(i+1))-f(T(i-1)))/(2*h)]
        end
    end
endfunction

// Deuxième version de la fonction derive qui fait exactement la même chose que la première mais qui est écrite différemment
function L = derive2(f,a,b,n)
    h=(b-a)/n
    L=[]
    for i=0:n
        if i==0
            L=[L,(f(a+h)-f(a))/h]
        elseif i==n
            L=[L,(f(b)-f(b-h))/h]
        else
            L=[L,(f(a+(i+1)*h)-f(a+(i-1)*h))/(2*h)]
        end
    end
endfunction

// Test de la fonction
L=derive2(sin,0,10,1000)
X=linspace(0,10,1001)

scf(0)
clf()
plot2d(X,L)

scf(1)
clf()
plot2d(X,cos(X))
