Lezione 12 · Canale 1 · mercoledì 14 ottobre 2026

Differenziabilità e direzioni di discesa

Programmazione Matematica

Differenziabilità in Rn\mathbb R^n

Una funzione è differenziabile in un punto se lì si può sostituire con una funzione affine, con un errore trascurabile rispetto alla distanza dal punto. In una variabile è

f(x)=f(x0)+a (x−x0)+o(x−x0),x→x0f(x)=f(x_0)+a\,(x-x_0)+o(x-x_0),\qquad x\to x_0

con aa costante. In Rn\mathbb R^n la costante diventa un vettore e il prodotto fra numeri diventa un prodotto scalare. Una funzione f ⁣:Rn→Rf\colon\mathbb R^n\to\mathbb R è differenziabile in x0x_0 se esiste G∈RnG\in\mathbb R^n tale che

f(x)=f(x0)+G⊤(x−x0)+o(∥x−x0∥),x→x0f(x)=f(x_0)+G^\top(x-x_0)+o(\|x-x_0\|),\qquad x\to x_0

Il vettore GG dipende dal punto, come f′(x0)f'(x_0) dipende da x0x_0. Scrivendo xx al posto di x0x_0 e dd per lo spostamento, la definizione dice che l'errore dell'approssimazione lineare tende a zero più in fretta di ∥d∥\|d\|:

lim⁡d→0f(x+d)−f(x)−G(x)⊤d∥d∥=0\lim_{d\to0}\frac{f(x+d)-f(x)-G(x)^\top d}{\|d\|}=0

Proposizione (senza dimostrazione).

  • Condizione necessaria. Se ff è differenziabile in xx, esistono le derivate parziali in xx e G(x)=∇f(x)G(x)=\nabla f(x).
  • Condizione sufficiente. Se il gradiente esiste ed è continuo in un intorno di xx, cioè le derivate parziali esistono e sono continue, ff è differenziabile in xx.

Le due condizioni non coincidono: la necessaria non chiede che il gradiente sia continuo.

Differenziabile implica continua

Dalla definizione:

f(x+d)=f(x)+∇f(x)⊤d+o(∥d∥)f(x+d)=f(x)+\nabla f(x)^\top d+o(\|d\|)

Per d→0d\to0 il termine lineare e il resto tendono a zero, quindi f(x+d)→f(x)f(x+d)\to f(x) e ff è continua in xx. Il viceversa non vale, come in una variabile.

Ne segue che la funzione che vale 11 fuori dagli assi e 00 sugli assi, pur avendo le derivate parziali nell'origine, non è differenziabile lì: non è continua. L'esistenza del gradiente in un punto non basta.

Derivata direzionale

Se ff è differenziabile in xx, la derivata direzionale si calcola con il gradiente. Per t→0+t\to0^+:

Df(x,d)=lim⁡t→0+f(x+td)−f(x)t=lim⁡t→0+t ∇f(x)⊤d+o(t∥d∥)t=∇f(x)⊤d\begin{aligned} Df(x,d)&=\lim_{t\to0^+}\frac{f(x+td)-f(x)}{t}\\ &=\lim_{t\to0^+}\frac{t\,\nabla f(x)^\top d+o(t\|d\|)}{t}\\ &=\nabla f(x)^\top d \end{aligned}

I termini f(x)f(x) si cancellano, tt esce dal numeratore e il resto, diviso per tt, tende a zero. Se in xx il gradiente è (10,−2,3,−1)⊤(10,-2,3,-1)^\top e la direzione è d=(1,3,1,1)⊤d=(1,3,1,1)^\top:

Df(x,d)=10−6+3−1=6Df(x,d)=10-6+3-1=6

Il calcolo è meccanico: derivate prime e un prodotto scalare. Il segno si legge dal quoziente: il denominatore tt è positivo, quindi Df(x,d)>0Df(x,d)>0 vuol dire f(x+td)>f(x)f(x+td)>f(x) per tt piccolo. Lungo dd, per spostamenti abbastanza piccoli, ff cresce.

Direzioni di discesa

Per minimizzare ff si parte da una soluzione x0x_0 e se ne cerca una migliore, x1x_1 con f(x1)<f(x0)f(x_1)<f(x_0). Serve una direzione di discesa: un dd con Df(x0,d)<0Df(x_0,d)<0, lungo cui ff diminuisce per spostamenti abbastanza piccoli. Se ff è differenziabile e ∇f(x)≠0\nabla f(x)\neq0, una direzione di discesa c'è sempre: l'opposta del gradiente, detta antigradiente.

Df(x,−∇f(x))=−∇f(x)⊤∇f(x)=−∥∇f(x)∥2<0\begin{aligned} Df\bigl(x,-\nabla f(x)\bigr)&=-\nabla f(x)^\top\nabla f(x)\\ &=-\|\nabla f(x)\|^2<0 \end{aligned}

perché a⊤a=∥a∥2a^\top a=\|a\|^2 per la norma euclidea.

Direzioni di discesa in un punto

Le direzioni a partire da

  • direzioni di discesa

con

090180270360−1,5−1−0,500,511,5angolo fra e il gradiente, in gradi
Mentre ruota, cambia segno: è negativa per le direzioni nel semipiano aperto ombreggiato, che contiene l'antigradiente, e nulla sul suo bordo.

La direzione dice dove spostarsi, non di quanto. Si pone

x1=x0−α ∇f(x0),α>0x_1=x_0-\alpha\,\nabla f(x_0),\qquad\alpha>0

e si prova α=1\alpha=1. Se f(x1)≥f(x0)f(x_1)\ge f(x_0) si dimezza α\alpha e si riprova. Poiché la derivata direzionale è negativa, per α\alpha abbastanza piccolo f(x1)<f(x0)f(x_1)<f(x_0), quindi prima o poi la soluzione migliora. Si ripete da x1x_1, con il gradiente calcolato lì, e così via.

Se il gradiente è Lipschitz continuo di costante LL, ogni 0<α<2/L0<\alpha<2/L fa diminuire ff (con ∇f(x0)≠0\nabla f(x_0)\neq0); lo si dimostrerà più avanti. In pratica LL spesso non si conosce, e per questo si dimezza.

Retta e iperpiano tangente

In una variabile il grafico di ff è l'insieme dei punti (x,y)∈R2(x,y)\in\mathbb R^2 con y=f(x)y=f(x). La retta tangente al grafico in (x0,f(x0))(x_0,f(x_0)) è

T={(x,y)∈R2: y=f(x0)+f′(x0) (x−x0)}T=\bigl\{(x,y)\in\mathbb R^2:\ y=f(x_0)+f'(x_0)\,(x-x_0)\bigr\}

Il vettore (−f′(x0),1)(-f'(x_0),1) è ortogonale alla retta. Presi due punti (u1,v1)(u_1,v_1) e (u2,v2)(u_2,v_2) di TT, vale v2−v1=f′(x0) (u2−u1)v_2-v_1=f'(x_0)\,(u_2-u_1), e il prodotto scalare fra il vettore che li unisce e (−f′(x0),1)(-f'(x_0),1) è nullo:

(u2−u1, v2−v1)⋅(−f′(x0), 1)=−f′(x0)(u2−u1)+v2−v1=0\begin{aligned} &(u_2-u_1,\ v_2-v_1)\cdot(-f'(x_0),\,1)\\ &=-f'(x_0)(u_2-u_1)+v_2-v_1=0 \end{aligned}

La tangente e il vettore ortogonale

−3−2,5−2−1,5−1−0,500,511,522,53−1−0,500,511,522,53
  • grafico di
  • retta tangente
Mentre si sposta, la retta tangente e il vettore ruotano insieme e restano ortogonali.

Con nn variabili il grafico è l'insieme dei punti (x,y)∈Rn+1(x,y)\in\mathbb R^{n+1} con y=f(x)y=f(x): le prime nn coordinate sono x∈Rnx\in\mathbb R^n, l'ultima è f(x)f(x).

Al posto della retta tangente si ha l'iperpiano tangente: nel grafico in R2\mathbb R^2 è una retta, in R3\mathbb R^3 un piano, da R4\mathbb R^4 in poi un iperpiano. La definizione resta la stessa, con il gradiente al posto della derivata prima e il prodotto scalare al posto del prodotto:

T={(x,y)∈Rn+1: y=f(x0)+∇f(x0)⊤(x−x0)}\begin{aligned} T=\bigl\{(x,y)\in\mathbb R^{n+1}:\ &y=f(x_0)\\ &+\nabla f(x_0)^\top(x-x_0)\bigr\} \end{aligned}

Il vettore ortogonale ha n+1n+1 componenti, il gradiente cambiato di segno e un 11:

(−∇f(x0), 1)∈Rn+1\bigl(-\nabla f(x_0),\,1\bigr)\in\mathbb R^{n+1}

Esempio. Sia f ⁣:R5→Rf\colon\mathbb R^5\to\mathbb R, con x0=(0,1,1,−1,1)⊤x_0=(0,1,1,-1,1)^\top, f(x0)=7f(x_0)=7 e ∇f(x0)=(2,−1,3,1,1)⊤\nabla f(x_0)=(2,-1,3,1,1)^\top. Il gradiente ha cinque componenti, come le variabili, e il grafico e TT stanno in R6\mathbb R^6. Basta sostituire nella definizione:

T={(x,y)∈R6: y=7+(2,−1,3,1,1)⋅(x−x0)}\begin{aligned} T=\bigl\{(x,y)\in\mathbb R^6:\ &y=7+(2,-1,3,1,1)\\ &\cdot(x-x_0)\bigr\} \end{aligned}

Il vettore ortogonale è (−2,1,−3,−1,−1,1)⊤(-2,1,-3,-1,-1,1)^\top. Conta che le dimensioni siano coerenti; calcolare f(x0)f(x_0) e il gradiente è solo sostituzione e derivazione.

Domini aperti

Finora ff era definita su tutto Rn\mathbb R^n. Su un dominio D⊆RnD\subseteq\mathbb R^n la definizione di differenziabilità usa f(x+d)f(x+d) per ogni direzione, quindi x+tdx+td deve stare in DD per tt piccolo. Succede se xx è interno a DD. Da un punto di frontiera alcune direzioni portano fuori da DD con spostamenti piccoli quanto si vuole, dove ff può non essere definita.

Interno e frontiera

−1−0,500,511,522,5−1−0,8−0,6−0,4−0,200,20,40,60,811,2fuori da
  • , frontiera compresa
  • intorno di contenuto in
Da un punto interno ogni spostamento abbastanza piccolo resta in . Da , sulla frontiera, alcune direzioni portano fuori, dove non è definita.

Si chiede perciò che DD sia aperto, cioè formato solo da punti interni. Per questo le definizioni si trovano scritte su un dominio aperto.

Con DD aperto, f∈C0(D)f\in C^0(D) vuol dire che ff è continua su DD. f∈C1(D)f\in C^1(D) vuol dire che in ogni punto di DD esistono le derivate parziali e sono continue. Per la condizione sufficiente, f∈C1(D)f\in C^1(D) è differenziabile in ogni punto di DD: C1C^1 è una regolarità più forte della differenziabilità. Quando si conoscono le derivate si suppone di solito f∈C1f\in C^1.

Esercizi: successioni, limiti e insiemi

Successione limitata in R3\mathbb R^3. Una successione {xk}⊂R3\{x_k\}\subset\mathbb R^3 è limitata se e solo se lo sono le tre successioni delle componenti xk(i)x_k^{(i)}. Basta quindi una componente illimitata, per esempio la seconda, perché la successione sia illimitata.

Un limite che non esiste. Su D=R2∖{(0,0)}D=\mathbb R^2\setminus\{(0,0)\} sia

f(x,y)=xyx2+y2f(x,y)=\frac{xy}{x^2+y^2}

L'origine è di accumulazione per DD. Si confrontano le restrizioni a A={(x,y)∈D: y=x}A=\{(x,y)\in D:\ y=x\} e a B={(x,y)∈D: x=0}B=\{(x,y)\in D:\ x=0\}:

f∣A=x22x2=12f∣B=0y2=0\begin{aligned} f|_A&=\frac{x^2}{2x^2}=\frac12\\ f|_B&=\frac{0}{y^2}=0 \end{aligned}

Le due restrizioni tendono a limiti diversi, 1/21/2 e 00, quindi il limite in (0,0)(0,0) non esiste. Per mostrare che un limite non esiste basta trovare due restrizioni con limiti diversi.

Un insieme chiuso, non compatto, senza punti di accumulazione in R5\mathbb R^5. Si prendono punti isolati che si allontanano all'infinito:

X={(k,1,1,1,1)⊤: k=0,1,2,… }X=\{(k,1,1,1,1)^\top:\ k=0,1,2,\dots\}

Due punti distinti di XX distano almeno 11, quindi un intorno di raggio 1/21/2 di un punto qualsiasi ne contiene al più uno, e restringendolo lo si esclude. Nessun punto è di accumulazione: DX=∅⊆X\mathcal D X=\varnothing\subseteq X, quindi XX è chiuso e tutti i suoi punti sono isolati. Non è limitato, perché la prima coordinata va all'infinito, e perciò non è compatto. Con (1/k,1,1,1,1)\bigl(1/k,1,1,1,1\bigr), k=1,2,…k=1,2,\dots, si avrebbe invece il punto di accumulazione (0,1,1,1,1)(0,1,1,1,1), che non appartiene all'insieme: quell'insieme non è chiuso.

Una successione illimitata con tre punti limite in R4\mathbb R^4. Si dividono gli indici in quattro classi infinite:

K1={1,5,9,… },K2={2,6,10,… }K3={3,7,11,… },K4={4,8,12,… }\begin{gathered} K_1=\{1,5,9,\dots\},\quad K_2=\{2,6,10,\dots\}\\ K_3=\{3,7,11,\dots\},\quad K_4=\{4,8,12,\dots\} \end{gathered}

Si scelgono tre punti distinti p1,p2,p3∈R4p_1,p_2,p_3\in\mathbb R^4 e, per esempio, si pone

xk=pi(k∈Ki, i=1,2,3)xk=(k,0,0,0)⊤(k∈K4)\begin{gathered} x_k=p_i\quad(k\in K_i,\ i=1,2,3)\\ x_k=(k,0,0,0)^\top\quad(k\in K_4) \end{gathered}

Le sottosuccessioni su K1,K2,K3K_1,K_2,K_3 sono costanti e convergono a p1,p2,p3p_1,p_2,p_3; andrebbero bene anche componenti come 1/(k+1)1/(k+1) che tendono a quelle dei pip_i. Su K4K_4 la norma tende a +∞+\infty, quindi {xk}\{x_k\} è illimitata. Una sottosuccessione convergente è limitata, perciò ha solo un numero finito di indici in K4K_4 e il suo limite è uno fra p1,p2,p3p_1,p_2,p_3. I punti limite sono esattamente questi tre.

Formulario

Differenziabilità

f(x)=f(x0)+G⊤(x−x0)+o(∥x−x0∥)\begin{aligned} f(x)&=f(x_0)\\ &\quad+G^\top(x-x_0)\\ &\quad+o(\|x-x_0\|) \end{aligned}

Se differenziabile

G=∇f(x0)G=\nabla f(x_0)

Derivata direzionale

Df(x,d)=∇f(x)⊤dDf(x,d)=\nabla f(x)^\top d

Antigradiente

Df(x,−∇f(x))=−∥∇f(x)∥2\begin{aligned} &Df(x,-\nabla f(x))\\ &=-\|\nabla f(x)\|^2 \end{aligned}

Passo

x1=x0−α ∇f(x0)x_1=x_0-\alpha\,\nabla f(x_0)

Retta tangente

y=f(x0)+f′(x0)(x−x0)\begin{aligned} y&=f(x_0)\\ &\quad+f'(x_0)(x-x_0) \end{aligned}

Iperpiano tangente

y=f(x0)+∇f(x0)⊤(x−x0)\begin{aligned} y&=f(x_0)\\ &\quad+\nabla f(x_0)^\top(x-x_0) \end{aligned}

Vettore ortogonale

(−∇f(x0), 1)(-\nabla f(x_0),\,1)