# Teorema di Fermat sui punti stazionari

Il teorema di Fermat sui punti stazionari (da non confondersi con l'ultimo teorema di Fermat, il piccolo teorema di Fermat o il teorema di Fermat sulle somme di due quadrati) è un teorema dell'analisi matematica, che prende il nome da Pierre de Fermat. Il teorema fornisce un metodo per la ricerca dei punti di massimo e minimo di una funzione differenziabile, mostrando che ogni punto di estremo locale è un punto stazionario della funzione (cioè la derivata prima della funzione si annulla in quel punto). In tal modo, utilizzando il teorema di Fermat, il problema della ricerca dei punti estremi di una funzione è ridotto alla risoluzione di un'equazione.
È importante notare che il teorema di Fermat fornisce solamente una condizione necessaria per il valore degli estremi della funzione: è vero che tutti i punti estremi sono stazionari, ma esistono anche alcuni punti stazionari che non sono punti estremi, ma possono essere punti di flesso (o, nel caso di una funzione a più variabili, punti di sella o punti di diversa natura). Per valutare se un punto stazionario è un valore estremo e per distinguere se tale punto è di massimo o di minimo, è necessario, in genere, analizzare la derivata seconda della funzione (se esiste).

## Enunciato del teorema

Sia $f:(a,b)\to \mathbb {R}$ una funzione e si supponga che $x_{0}\in (a,b)$ sia un punto di estremo locale di $f$. Se $f$ è derivabile nel punto $x_{0}$, allora $f^{\prime }(x_{0})=0$.

## Dimostrazione
### Dimostrazione intuitiva

Di seguito si fornisce l'idea su cui si basa la dimostrazione del teorema per i punti di massimo della funzione (ma il ragionamento vale, con opportune modifiche, anche per i punti di minimo). Se $x_{0}$ in $(a,b)$ è un punto di massimo locale, allora esiste un intorno (piccolo a piacere) di $x_{0}$ tale che la funzione sia crescente prima del punto e decrescente dopo. Siccome la derivata è positiva negli intervalli in cui la funzione cresce ed è negativa negli intervalli in cui la funzione decresce, $f'$ è positiva prima di $x_{0}$ e negativa dopo. $f'$ deve assumere tutti i suoi valori in modo continuo (per il teorema di Darboux), così deve assumere necessariamente valore zero nel punto in cui da positiva diventa negativa. Il solo punto in cui è possibile che $f'(x)=0$ è quindi $x_{0}$.
Si noti che il teorema, come anche la sua dimostrazione, è più generale dell'intuizione, in quanto non richiede che la funzione sia differenziabile in un intorno di $x_{0}$. Come affermato dal teorema, è sufficiente che la funzione sia differenziabile solo nel punto estremo.

### Dimostrazione rigorosa

Si supponga che $x_{0}$ sia un punto di massimo locale (la dimostrazione si applica anche nel caso in cui $x_{0}$ sia un minimo). Allora:
    $\exists \delta >0\ :\ x\in \left(x_{0}-\delta ,x_{0}+\delta \right)\cap (a,b)\Rightarrow f(x_{0})\geq f(x)$
Pertanto, per ogni $h\in (0,\delta )$ vale la relazione
    ${\frac {f(x_{0}+h)-f(x_{0})}{h}}\leq 0.$
Dato che il limite di questo rapporto per $h\to 0^{+}$ esiste ed è pari a $f^{\prime }(x_{0})$ (limite del rapporto incrementale), allora si può concludere (permanenza del segno) che$f^{\prime }(x_{0})\leq 0$. D'altra parte, per $h\in (-\delta ,0)$ si nota che
    ${\frac {f(x_{0}+h)-f(x_{0})}{h}}\geq 0$;
di nuovo, il limite per $h\to 0^{-}$ vale $f^{\prime }(x_{0})$, da cui abbiamo $f^{\prime }(x_{0})\geq 0$.
Combinando i risultati ottenuti si può concludere che $f^{\prime }(x_{0})=0$, C.V.D.

## Comportamento locale della funzione

Una sottile idea sbagliata che spesso compare nel contesto del teorema di Fermat è l'assumere che esso faccia un'affermazione più forte sul comportamento locale di quanto effettivamente asserisca. Da notare, il teorema di Fermat non dice che le funzioni (monotone) "crescono verso" o "decrescono da" un massimo locale. Questo è molto simile con l'incomprensione che un limite significhi "avvicinarsi monotonicamente a un punto". Per "funzioni buone" (che qui significa continuamente derivabili), qualche intuizione regge, ma in generale le funzioni potrebbero essere patologiche, come illustrato più sotto. La morale è che le derivate determinano il comportamento infinitesimale, e che derivate continue determinano il comportamento locale.

### Funzioni derivabili con continuità

Se $f$ è derivabile con continuità (cioè se è $C^{1}$) in un intorno aperto del punto $x_{0}$, allora $f'(x_{0})>0$ significa che $f$ sta crescendo in un intorno di $x_{0},$ come segue.
Se $f'(x_{0})=K>0$ e $f\in C^{1},$ allora, dalla continuità della derivata, esistono $\varepsilon _{0}>0$ tali che $f'(x)>K/2$ $\forall x\in \left(x_{0}-\varepsilon _{0},x_{0}+\varepsilon _{0}\right)$. Allora $f$ è crescente su questo intervallo. Dal teorema di Lagrange: la pendenza di ogni secante è almeno $K/2,$ poiché uguaglia la pendenza di qualche tangente.
Tuttavia, nelle ipotesi generali del teorema di Fermat, dove è dato che solo la derivata "in" $x_{0}$ sia positiva, si può solamente concludere che le linee secanti "attraverso" $x_{0}$ avranno pendenza positiva, per secanti tra $x_{0}$ e punti abbastanza vicini.
Al contrario, se la derivata di $f$ in un punto è 0 ($x_{0}$ è un punto stazionario), non si può in generale concludere niente sul comportamento locale della funzione: potrebbe crescere da tutti e due i lati (come in $x^{3}$), decrescere da una parte e crescere dall'altra (come per $x^{4}$), crescere e poi decrescere (come in $-x^{4}$), oppure comportarsi in una maniere più complicata, ad esempio oscillando (come $x^{2}(\sin(1/x))$, come discusso sotto).
Si può analizzare l'andamento locale attraverso il test della derivata seconda e delle derivate di ordine superiore. Se la funzione è sufficientemente derivabile e se la prima derivata non nulla in $x_{0}$ è una funzione continua, si può allora dedurre il comportamento locale (cioè se $f^{(k)}(x_{0})\neq 0$ è la prima derivata non nulla, e $f^{(k)}$ è continua, così $f\in C^{k}$). In tal caso si può trattare $f$ come localmente vicina a un polinomio di grado $k$, poiché si comporta approssimativamente come $f^{(k)}(x_{0})(x-x_{0})^{k},$ ma se la $k$-esima derivata non è continua, non si possono trarre certe conclusioni, e si può avere un andamento piuttosto differente.

### Funzioni patologiche

Si consideri la funzione $\sin(1/x),$ essa oscilla crescendo rapidamente tra $-1$ e $1$ se $x$ si avvicina $0$. Si consideri poi $f(x)=(1+\sin(1/x))x^{2},$ questa oscilla crescendo rapidamente tra $0$ e $2x^{2}$ se $x$ tende a $0.$ Se si estende questa funzione con $f(0):=0,$ allora essa è continua e ovunque derivabile (è derivabile in $x=0$ con derivata nulla), ma ha un comportamento alquanto strano vicino $0$: in ogni intorno di $0$ si annulla infinite volte, ma diventa anche uguale a $2x^{2}$ (un numero positivo) frequentemente.
Continuando su questa linea, $f(x)=(2+\sin(1/x))x^{2}$ oscilla fra $x^{2}$ e $3x^{2}$, $x=0$ è un minimo sia locale che globale, ma in nessun suo intorno la funzione sta crescendo o decrescendo: oscilla selvaggiamente vicino a $x=0$.
Questa patologia può essere compresa perché, mentre la funzione è derivabile ovunque, non è derivabile con continuità: il limite di $f'(x)$ con $x\to 0$ non esiste, perciò la derivata non è continua in $0.$ Questo rispecchia le oscillazioni tra valore crescenti e decrescenti se ci si avvicina a al punto critico $x=0$.

## Estensione a più variabili

Esiste una versione del teorema di Fermat che riguarda le funzioni di variabile vettoriale, ossia funzioni del tipo
    $f:\Omega \subset \mathbb {R} ^{n}\to \mathbb {R}$
(che si riduce all'enunciato precedente per $n=1$). Il teorema fornisce una condizione necessaria (non sufficiente) che devono soddisfare i punti stazionarî interni a $\Omega$ (non può essere applicato per cercare estremanti "vincolati", ossia appartenenti alla frontiera dell'insieme).

### Enunciato

Sia $\Omega \subset \mathbb {R} ^{n}$ un aperto, e sia $f:\Omega \to \mathbb {R}$; sia $\mathbf {x_{0}} \in \Omega$ un punto di massimo o minimo locale per $f$, e sia $f$ differenziabile in $\mathbf {x_{0}}$. Allora il gradiente di $f$ calcolato in $\mathbf {x_{0}}$ è il vettore nullo, ossia
    $\nabla f(\mathbf {x_{0}} )=\mathbf {0}$.

## Dimostrazione

La dimostrazione fa uso del teorema che è già stato dimostrato per $n=1$; verrà dimostrato il teorema nel caso in cui $\mathbf {x_{0}}$ sia un punto di minimo locale, ma la dimostrazione è del tutto analoga per i punti di massimo.
Sia $\mathbf {v}$ un versore (ossia $\|\mathbf {v} \|$ = 1), e sia $g$ la funzione che misura l'incremento di $f$ lungo la direzione di $\mathbf {v}$, ossia:
    $g:(-\delta ,\delta )\to \mathbb {R}$
    $g:t\to f(\mathbf {x_{0}} +t\mathbf {v} )$
($f$ risulta definita in un intorno di $\mathbf {x_{0}}$, poiché questo è un punto interno di $\Omega$). La funzione $g$ ammette minimo in $t=0$, perché per ipotesi $f(\mathbf {x} )\geq f(\mathbf {x_{0}} )$ per tutti gli $\mathbf {x}$ in un intorno di $\mathbf {x_{0}}$. Inoltre, $g$ è derivabile in $t=0$, perché
    $g^{\prime }(0)=\lim _{t\to 0}{\frac {f(\mathbf {x_{0}} +t\mathbf {v} )-f(\mathbf {x_{0}} )}{t}}={\frac {\partial {f}}{\partial \mathbf {v} }}(\mathbf {x_{0}} )$,
e la derivata direzionale di $f$ lungo $\mathbf {v}$ esiste ($f$ è differenziabile in $\mathbf {x_{0}}$, quindi ammette tutte le derivate direzionali in quel punto). Il teorema di Fermat per funzioni di variabile reale garantisce a questo punto che $g^{\prime }(0)={\frac {\partial {f}}{\partial \mathbf {v} }}(\mathbf {x_{0}} )=0$; poiché tutte le derivate direzionali nel punto sono nulle, lo saranno in particolare le derivate lungo gli assi coordinati (derivate parziali), e quindi $\nabla f(\mathbf {x_{0}} )=0$. Q. E. D.

### Contrappunto alla dimostrazione

Dalla dimostrazione si vede che l'ipotesi di differenziabilità di $f$ in $\mathbf {x_{0}}$ non è indispensabile (si richiede solo l'esistenza delle derivate parziali); l'enunciato potrebbe essere riformulato nel seguente modo: se $\mathbf {x_{0}}$ è un punto estremante per $f$, e se esiste una derivata direzionale di $f$ nel punto $\mathbf {x_{0}}$, allora tale derivata è ivi nulla.