Lezione 10 · Canale 1 · lunedì 12 ottobre 2026

Derivate e gradiente in più variabili

Programmazione Matematica

Dalla derivata alla linearizzazione

La differenziazione dà un'approssimazione lineare di una funzione vicino a un punto. Una funzione lineare è la più semplice da trattare, e per questo gli algoritmi di ottimizzazione partono da lì. In una variabile derivata e differenziabilità coincidono. In Rn\mathbb R^n l'equivalenza non vale.

Sia f ⁣:R→Rf\colon\mathbb R\to\mathbb R e x0∈Rx_0\in\mathbb R. Il rapporto incrementale è definito per x≠x0x\neq x_0, e x0x_0 è di accumulazione per questo insieme, quindi il suo limite ha senso. Se il limite esiste finito, è la derivata prima in x0x_0. Con x=x0+hx=x_0+h:

f′(x0)=lim⁡x→x0f(x)−f(x0)x−x0=lim⁡h→0f(x0+h)−f(x0)h\begin{aligned} f'(x_0)&=\lim_{x\to x_0}\frac{f(x)-f(x_0)}{x-x_0}\\ &=\lim_{h\to0}\frac{f(x_0+h)-f(x_0)}{h} \end{aligned}

La funzione ff è differenziabile in x0x_0 se esiste una costante aa tale che

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

Per x→x0x\to x_0, r=o(g)r=o(g) significa che rr e gg tendono a zero e rr ci va più in fretta:

r(x)→0,g(x)→0,r(x)g(x)→0r(x)\to0,\qquad g(x)\to0,\qquad \frac{r(x)}{g(x)}\to0

Il termine o(x−x0)o(x-x_0), detto resto, è dunque trascurabile rispetto all'incremento x−x0x-x_0. Vicino a x0x_0 si può allora sostituire ff con la funzione affine

f^(x)=f(x0)+a (x−x0)\hat f(x)=f(x_0)+a\,(x-x_0)

che è lineare nell'incremento x−x0x-x_0, e per questo ff si dice linearizzabile.

In una variabile derivabile e differenziabile sono equivalenti, con a=f′(x0)a=f'(x_0). Dividendo la formula per x−x0x-x_0 si vede che il resto, diviso per l'incremento, tende a zero se e solo se il rapporto incrementale tende ad aa. Così f^\hat f è la retta tangente.

La tangente come approssimazione di

Intorno ampio di

−1−0,500,511,522,53−1−0,500,511,52

Ingrandimento attorno a

0,970,9750,980,9850,990,995111,011,011,021,021,030,8250,830,8350,840,8450,850,855
Lontano da la tangente si stacca dal grafico. Vicino a le due curve si confondono: l'errore è trascurabile rispetto a .

Rette e semirette in Rn\mathbb R^n

Il passaggio a più variabili passa per le direzioni. Dati un punto xˉ∈Rn\bar x\in\mathbb R^n e un vettore d∈Rnd\in\mathbb R^n non nullo, la retta per xˉ\bar x parallela a dd e la semiretta nel verso di dd sono

{x∈Rn: x−xˉ=td, t∈R}{x∈Rn: x−xˉ=td, t≥0}\begin{aligned} &\{x\in\mathbb R^n:\ x-\bar x=td,\ t\in\mathbb R\}\\ &\{x\in\mathbb R^n:\ x-\bar x=td,\ t\ge0\} \end{aligned}

Con t≤0t\le0 si ha la semiretta opposta. La retta è l'unione delle due, e tutte e tre contengono xˉ\bar x.

Retta e semirette per

−1−0,500,511,522,53−0,4−0,200,20,40,60,811,21,41,61,822,22,42,62,83
  • semiretta nel verso di
  • vettore
  • semiretta opposta
La retta per parallela a è l'unione di due semirette: quella nel verso di () e quella opposta ().

Derivata direzionale

Per ora f ⁣:Rn→Rf\colon\mathbb R^n\to\mathbb R è definita su tutto Rn\mathbb R^n. Si fissano un punto xx e una direzione dd e si studia come varia ff lungo la semiretta che parte da xx nel verso di dd, cioè nei punti x+tdx+td con t≥0t\ge0. Se esiste finito il limite

Df(x,d)=lim⁡t→0+f(x+td)−f(x)tDf(x,d)=\lim_{t\to0^+}\frac{f(x+td)-f(x)}{t}

si chiama derivata direzionale di ff in xx lungo dd. Il limite è per t→0+t\to0^+ perché la semiretta ha t≥0t\ge0. Dipende dal punto e dalla direzione, e può non esistere. Con φ(t)=f(x+td)\varphi(t)=f(x+td) è la pendenza di φ\varphi in t=0t=0, vista da destra.

La derivata direzionale come pendenza lungo la semiretta

Semiretta da

00,20,40,60,811,21,41,61,8211,21,41,61,822,22,42,62,83
  • semiretta nel verso di
  • rette dove è costante

lungo la semiretta

−0,100,10,20,30,40,50,60,70,80,911,1−0,200,20,40,60,811,21,41,6
  • tangente in , pendenza
Lungo la semiretta da , ha pendenza in . Ruotando la pendenza cambia, ed è nulla quando è parallela alle rette dove è costante.

Derivate parziali e gradiente

Si fissa la jj-esima variabile e si lasciano ferme le altre. Se esiste finito il limite

∂f(x)∂xj=lim⁡t→0f(x1,…,xj+t,…,xn)−f(x)t\frac{\partial f(x)}{\partial x_j}=\lim_{t\to0}\frac{f(x_1,\dots,x_j+t,\dots,x_n)-f(x)}{t}

è la derivata parziale di ff rispetto a xjx_j in xx. Dipende anche dai valori delle variabili ferme. Si calcola con le regole di derivazione, trattando le altre variabili come costanti.

Se esistono le derivate parziali rispetto a tutte le variabili, si dispongono in colonna e si ottiene il gradiente:

∇f(x)=(∂f(x)∂x1⋮∂f(x)∂xn)∈Rn\nabla f(x)=\begin{pmatrix}\dfrac{\partial f(x)}{\partial x_1}\\\vdots\\\dfrac{\partial f(x)}{\partial x_n}\end{pmatrix}\in\mathbb R^n

Il gradiente sta nello spazio delle variabili e ha tante componenti quante sono. Calcolarlo è solo derivazione.

Esempio in R3\mathbb R^3. Per f(x)=x13−3x1x2+x1x2x3f(x)=x_1^3-3x_1x_2+x_1x_2x_3:

∇f(x)=(3x12−3x2+x2x3−3x1+x1x3x1x2)\nabla f(x)=\begin{pmatrix}3x_1^2-3x_2+x_2x_3\\-3x_1+x_1x_3\\x_1x_2\end{pmatrix}

Nel punto xˉ=(1,2,−1)\bar x=(1,2,-1) si sostituiscono le coordinate:

∇f(xˉ)=(3−6−2−3−12)=(−5−42)\nabla f(\bar x)=\begin{pmatrix}3-6-2\\-3-1\\2\end{pmatrix}=\begin{pmatrix}-5\\-4\\2\end{pmatrix}

Esempio in R2\mathbb R^2. Per f(x)=ex1−x2f(x)=e^{x_1-x_2} il gradiente sta in R2\mathbb R^2. Nel punto xˉ=(1,2)\bar x=(1,2):

∇f(x)=(ex1−x2−ex1−x2)∇f(xˉ)=(e−1−e−1)\begin{gathered} \nabla f(x)=\begin{pmatrix}e^{x_1-x_2}\\-e^{x_1-x_2}\end{pmatrix}\\[0.6em] \nabla f(\bar x)=\begin{pmatrix}e^{-1}\\-e^{-1}\end{pmatrix} \end{gathered}

Esercizio. Trovare f ⁣:R6→Rf\colon\mathbb R^6\to\mathbb R il cui gradiente, in un punto assegnato, sia c=(1,−1,2,3,1,6)⊤c=(1,-1,2,3,1,6)^\top. Invertire i calcoli punto per punto è inutile. Basta una funzione il cui gradiente non dipende dal punto, cioè una funzione lineare f(x)=c⊤xf(x)=c^\top x:

f(x)=x1−x2+2x3+3x4+x5+6x6f(x)=x_1-x_2+2x_3+3x_4+x_5+6x_6

Ogni derivata parziale è il coefficiente della variabile, quindi ∇f(x)=c\nabla f(x)=c in ogni punto.

Derivate parziali e derivate direzionali

Il punto (x1,…,xj+t,…,xn)(x_1,\dots,x_j+t,\dots,x_n) si ottiene da xx cambiando solo la componente jj, quindi è x+tejx+te_j, dove eje_j è il versore del jj-esimo asse coordinato, con 11 al posto jj e 00 altrove. Così

∂f(x)∂xj=lim⁡t→0f(x+tej)−f(x)t\frac{\partial f(x)}{\partial x_j}=\lim_{t\to0}\frac{f(x+te_j)-f(x)}{t}

È simile a Df(x,ej)Df(x,e_j), ma il limite è per t→0t\to0 da entrambi i lati, mentre la derivata direzionale lo è solo da destra. Servono perciò due direzioni, eje_j e −ej-e_j.

Proposizione. La derivata parziale ∂f(x)/∂xj\partial f(x)/\partial x_j esiste se e solo se esistono Df(x,ej)Df(x,e_j) e Df(x,−ej)Df(x,-e_j) e

Df(x,ej)=−Df(x,−ej)Df(x,e_j)=-Df(x,-e_j)

Dimostrazione. La derivata parziale esiste se e solo se esistono, e coincidono, il limite del rapporto incrementale per t→0+t\to0^+ e quello per t→0−t\to0^-. Il primo è per definizione Df(x,ej)Df(x,e_j). Nel secondo si pone t=−ht=-h, con h→0+h\to0^+:

lim⁡t→0−f(x+tej)−f(x)t=lim⁡h→0+f(x−hej)−f(x)−h=−Df(x,−ej)\begin{aligned} &\lim_{t\to0^-}\frac{f(x+te_j)-f(x)}{t}\\ &=\lim_{h\to0^+}\frac{f(x-he_j)-f(x)}{-h}\\ &=-Df(x,-e_j) \end{aligned}

Il limite da sinistra esiste se e solo se esiste Df(x,−ej)Df(x,-e_j), e vale il suo opposto. Dunque i due limiti esistono e coincidono se e solo se esistono le due derivate direzionali e Df(x,ej)=−Df(x,−ej)Df(x,e_j)=-Df(x,-e_j). In tal caso ∂f(x)/∂xj=Df(x,ej)\partial f(x)/\partial x_j=Df(x,e_j). □\square

La funzione attorno a

Funzione
−1−0,8−0,6−0,4−0,200,20,40,60,811,2−1−0,500,511,52
  • pendenza a destra:
  • pendenza a sinistra:
La derivata parziale esiste se la pendenza a destra e quella a sinistra coincidono, cioè . Con lo spigolo, scelto dal selettore, no.

Le derivate parziali non bastano per la continuità

In una variabile la derivabilità implica la continuità. Da f(x)−f(x0)=a(x−x0)+o(x−x0)f(x)-f(x_0)=a(x-x_0)+o(x-x_0) il secondo membro tende a zero, quindi f(x)→f(x0)f(x)\to f(x_0). Non è necessaria: esistono funzioni continue e non derivabili.

In due variabili ci si aspetterebbe che l'esistenza delle due derivate parziali in un punto implichi la continuità. È falso. Esiste una funzione con f(0,0)=0f(0,0)=0, nulla sugli assi, e con limite 11 lungo A={(x1,x2): x1≠0, x2≠0}A=\{(x_1,x_2):\ x_1\neq0,\ x_2\neq0\}. Ad esempio

f(x1,x2)={1x1≠0, x2≠00altrimentif(x_1,x_2)=\begin{cases}1&x_1\neq0,\ x_2\neq0\\0&\text{altrimenti}\end{cases}

Non è continua in (0,0)(0,0). L'origine è di accumulazione per AA e la restrizione f∣Af_{|A} tende a 11. Se ff fosse continua in (0,0)(0,0), f∣Af_{|A} tenderebbe a f(0,0)=0f(0,0)=0.

Le derivate parziali esistono. Sugli assi ff è nulla, quindi f(t,0)=f(0,t)=0f(t,0)=f(0,t)=0 per ogni tt e i rapporti incrementali sono nulli:

lim⁡t→0f(t,0)−f(0,0)t=0lim⁡t→0f(0,t)−f(0,0)t=0\begin{aligned} &\lim_{t\to0}\frac{f(t,0)-f(0,0)}{t}=0\\ &\lim_{t\to0}\frac{f(0,t)-f(0,0)}{t}=0 \end{aligned}

Entrambe le derivate parziali in (0,0)(0,0) esistono e valgono 00.

Un controesempio nell'origine

−1−0,8−0,6−0,4−0,200,20,40,60,811,2−1−0,8−0,6−0,4−0,200,20,40,60,811,2
  • , dove
  • assi, dove
Avvicinandosi all'origine lungo la funzione vale sempre , sugli assi vale . Per questo non è continua in , anche se le derivate parziali esistono.

Formulario

Derivata prima

f′(x0)=lim⁡h→0f(x0+h)−f(x0)hf'(x_0)=\lim_{h\to0}\frac{f(x_0+h)-f(x_0)}{h}

Differenziabilità

f(x)=f(x0)+a (x−x0)+o(x−x0)\begin{aligned} f(x)&=f(x_0)\\ &\quad+a\,(x-x_0)\\ &\quad+o(x-x_0) \end{aligned}

Con a=f′(x0)a=f'(x_0)

f^(x)=f(x0)+a (x−x0)\hat f(x)=f(x_0)+a\,(x-x_0)

Retta per xˉ\bar x

{x: x−xˉ=td, t∈R}\{x:\ x-\bar x=td,\ t\in\mathbb R\}

Semiretta nel verso di dd

{x: x−xˉ=td, t≥0}\{x:\ x-\bar x=td,\ t\ge0\}

Derivata direzionale

Df(x,d)=lim⁡t→0+f(x+td)−f(x)tDf(x,d)=\lim_{t\to0^+}\frac{f(x+td)-f(x)}{t}

Derivata parziale

∂f(x)∂xj=lim⁡t→0f(x+tej)−f(x)t\frac{\partial f(x)}{\partial x_j}=\lim_{t\to0}\frac{f(x+te_j)-f(x)}{t}

Gradiente

∇f(x)=(∂f(x)∂x1⋮∂f(x)∂xn)\nabla f(x)=\begin{pmatrix}\dfrac{\partial f(x)}{\partial x_1}\\\vdots\\\dfrac{\partial f(x)}{\partial x_n}\end{pmatrix}

Funzione lineare

f(x)=c⊤x ⇒ ∇f(x)=cf(x)=c^\top x\ \Rightarrow\ \nabla f(x)=c

La derivata parziale esiste se e solo se

Df(x,ej)=−Df(x,−ej)Df(x,e_j)=-Df(x,-e_j)