Di quale aiuto hai bisogno?
Per scrivere le due funzioni?
Hai fatto almeno un tentativo?
Nota che, per come le hai scritte, le due funzioni sono sbagliate, mancano delle parantesi:
f'(x)= f(x + h)-f(x-h)/2h ==>
f'(x)= (f(x + h)-f(x-h))/2h
f''(x)= f(x + h)-2f(x) + f(x-h)/h^2 ==>
f''(x)= (f(x + h)-2f(x) + f(x-h))/h^2
Ciò detto, per scrivere entrambe le funzioni in una forma "generale" (che sia indipendente dalla specifica funzione della quale vuoi calcolare l'approssimazione della derivata) puoi usare una "anonymous-function"
https://it.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html
La funzione "Diff1Cent" avrà, come minimo
tre parametri di input:
[*] la funzione della quale vuoi calcolare l'approssimazione della derivata), nel tuo caso, di volta in volta, la funzione "e^x" e "cos(x)"
[*] il valore per il quale vuoi calcolare la derivata (nel tuo caso, "x")
[*] il valore di "h" per il quale calcolare la derivata
almeno un parametro di output:
[*] il valore della derivata
dal momento che vuoi esplorare differenti valori di "h" conviene sfruttare le proprietà di "indexing" di MatLab
https://it.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
per definirlo come vettore ed effettuare il calcolo per i suoi diversi valori senza ricorrere ad inutili ( in MatLab) cicli "for".
Per plottare i risultati puoi usare la funzione "plot"
Per calcolare il valore dell'errore, sarà sufficiente calcolare la differenza tra i valori calcolati dalla funzione "Diff1Cent" ed i valori reali.
Per identificare il valore minimo dell'errore puoi usare la funzione "min"
utilizzando, come parametro di input, il valore assoluto del vettore contenente l'errore calcolato in precedenza.
Invocando la funzione "min" con due parametri di output, otterrai il valore minimo ed il relativo indice-posizione all'interno del vettore.
Potrai quindi utilizzare l'indice-posizione così trovato, per identificare il valore di "h" per il quale l'errore è minimo.
Una possibile implementazione della funzione "Diff1Cent" potrebbe essere:
function d1=Diff1Cent(f,x,h)
d1=(f(x + h)-f(x-h))./(2*h)
Ovviamente sarebbe opportuno inserire, nel codice della funzine una serie di controlli sulla validità degli input.
Per i dettagli sul come definire una funzione,
La funzione dovrà essere invocata come:
% Definizione della anonymous function
f=@(x) cos(x)
% Definizione del punto per il quale calcolare la derivata
x=1
% Definizione del vettore "step"
h=10.^(-1:-1:-15)
% Invocazione della funzione per il calcolo della derivata
d1=Diff1Cent(f,x,h)