Esercizi Svolti sui Moltiplicatori di Lagrange: Guida Pratica all’Ottimizzazione Vincolata

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

LAGRANGE – Ottimizzazione Vincolata

Quando cerchiamo la soluzione ottimale a un problema, raramente abbiamo totale libertà d’azione.


C’è sempre un limite con cui fare i conti: un budget fisso da non sforare, una quantità esatta di materiali da utilizzare, o regole fisiche da rispettare.

È esattamente qui che entrano in gioco i moltiplicatori di Lagrange. Questo metodo matematico ci permette di trovare il massimo o il minimo di una funzione senza ignorare i paletti che la realtà ci impone.
In questo articolo vedremo tre esercizi pratici, di difficoltà crescente. Non ci limiteremo a svolgere i calcoli in modo meccanico: analizzeremo il significato dietro ogni risultato, dall’economia aziendale alla geometria, per capire davvero cosa ci stanno dicendo i numeri.

Esercizio 1 – Utilità con vincolo di bilancio (disuguaglianza) (difficoltà ★★★★☆)

Testo

Un consumatore ha funzione di utilità

[math]U(x,y) = \ln x + \ln y[/math]

e un reddito [math]M = 1[/math]. I prezzi dei due beni sono entrambi pari a 1.

Il vincolo di bilancio è quindi

[math]x + y \le 1, \quad x > 0, \; y > 0.[/math]

Trova il paniere che massimizza l’utilità.

✅ Risoluzione

Si tratta di un problema con vincolo di disuguaglianza. Poiché [math]U[/math] è strettamente crescente in entrambe le variabili, il vincolo di bilancio sarà attivo all’ottimo (altrimenti si potrebbe aumentare [math]x[/math] o [math]y[/math] e migliorare l’utilità). Quindi risolviamo con uguaglianza [math]x + y = 1[/math].

1. Lagrangiano (standard)

[math]\mathcal{L} = \ln x + \ln y – \lambda(x + y – 1).[/math]

2. Condizioni

[math]\displaystyle \begin{cases}
\dfrac{1}{x} – \lambda = 0 \Rightarrow \lambda = \dfrac{1}{x}, \\[6pt]
\dfrac{1}{y} – \lambda = 0 \Rightarrow \lambda = \dfrac{1}{y}, \\[6pt]
x + y = 1.
\end{cases}[/math]

Dalle prime due: [math]x = y[/math]. Con [math]x + y = 1[/math] si ottiene [math]x = y = \frac{1}{2}[/math].

3. Verifica KKT

Poiché il vincolo è attivo, la condizione di complementarità richiede solo [math]\lambda \ge 0[/math]. Qui [math]\lambda = 2 > 0[/math], quindi è ammissibile.

4. Natura del punto

La funzione [math]U[/math] è concava (somma di logaritmi) e il vincolo è convesso; il punto è un massimo globale.

[math]\displaystyle U_{\max} = \ln \frac{1}{2} + \ln \frac{1}{2} = \ln \frac{1}{4}.[/math]

💡 Osservazione

Nei problemi con disuguaglianze, se la soluzione cade all’interno della regione ([math]x + y < 1[/math]), allora il moltiplicatore deve essere zero (condizione di complementarità). Qui invece la soluzione è sul bordo perché la funzione è crescente.

La condizione di qualificazione dei vincoli (LICQ) è soddisfatta perché [math]\nabla(x + y) = (1, 1) \neq (0, 0)[/math].

❓ Mini quiz

Se il reddito aumentasse a [math]M = 2[/math], il paniere ottimo si sposterebbe. Quale sarebbe? E se il reddito fosse [math]M > 0[/math] generico?

💡 Risposta

Per reddito generico [math]M[/math] e prezzi unitari, la soluzione è [math]x = y = M/2[/math]. Per [math]M = 2[/math], si ha [math](x, y) = (1, 1)[/math].


Esercizio 2 – Minimizzazione con due vincoli lineari (difficoltà ★★★★☆)

Testo

Un’impresa produce tre beni con costi quadratici

[math]C(x,y,z) = x^2 + y^2 + z^2.[/math]

Deve soddisfare due vincoli produttivi:

  1. Quantità totale prodotta: [math]x + y + z = 1[/math].
  2. Mix tecnologico: [math]x + 2y + 3z = 0[/math].

Determina la combinazione [math](x, y, z)[/math] che minimizza il costo.

✅ Risoluzione

1. Problema

Minimizzare

[math]f(x,y,z) = x^2 + y^2 + z^2[/math]

soggetto a

[math]\displaystyle \begin{aligned}
g_1(x,y,z) &= x + y + z – 1 = 0, \\
g_2(x,y,z) &= x + 2y + 3z = 0.
\end{aligned}[/math]

2. Lagrangiano

Con due vincoli servono due moltiplicatori [math]\lambda_1, \lambda_2[/math]:

[math]\mathcal{L} = x^2 + y^2 + z^2 – \lambda_1(x + y + z – 1) – \lambda_2(x + 2y + 3z).[/math]

3. Condizioni

[math]\displaystyle \begin{cases}
2x – \lambda_1 – \lambda_2 = 0, \\
2y – \lambda_1 – 2\lambda_2 = 0, \\
2z – \lambda_1 – 3\lambda_2 = 0, \\
x + y + z = 1, \\
x + 2y + 3z = 0.
\end{cases}[/math]

Dalle prime tre:

[math]\displaystyle x = \frac{\lambda_1 + \lambda_2}{2}, \quad y = \frac{\lambda_1 + 2\lambda_2}{2}, \quad z = \frac{\lambda_1 + 3\lambda_2}{2}.[/math]

4. Sostituzione nei vincoli

Vincolo 1:

[math]\displaystyle \begin{aligned}
\frac{\lambda_1 + \lambda_2 + \lambda_1 + 2\lambda_2 + \lambda_1 + 3\lambda_2}{2} &= 1 \\
\frac{3\lambda_1 + 6\lambda_2}{2} &= 1 \\
3\lambda_1 + 6\lambda_2 &= 2 \qquad \text{(A)}
\end{aligned}[/math]

Vincolo 2:

[math]\displaystyle \frac{(\lambda_1 + \lambda_2) + 2(\lambda_1 + 2\lambda_2) + 3(\lambda_1 + 3\lambda_2)}{2} = 0[/math]

Calcoliamo il numeratore:

[math]\displaystyle \begin{aligned}
\lambda_1 + \lambda_2 + 2\lambda_1 + 4\lambda_2 + 3\lambda_1 + 9\lambda_2 &= 6\lambda_1 + 14\lambda_2
\end{aligned}[/math]

Quindi [math]6\lambda_1 + 14\lambda_2 = 0 \Rightarrow 3\lambda_1 + 7\lambda_2 = 0. \tag{B}[/math]

Risolviamo il sistema lineare (A)-(B):

[math]\displaystyle \begin{cases}
3\lambda_1 + 6\lambda_2 = 2, \\
3\lambda_1 + 7\lambda_2 = 0.
\end{cases}[/math]

Sottraendo: [math]\lambda_2 = -2[/math]. Dalla seconda: [math]3\lambda_1 – 14 = 0 \Rightarrow \lambda_1 = \frac{14}{3}[/math].

5. Punto critico

[math]\displaystyle \begin{aligned}
x &= \frac{\frac{14}{3} – 2}{2} = \frac{\frac{14}{3} – \frac{6}{3}}{2} = \frac{8/3}{2} = \frac{4}{3}, \\
y &= \frac{\frac{14}{3} – 4}{2} = \frac{\frac{14}{3} – \frac{12}{3}}{2} = \frac{2/3}{2} = \frac{1}{3}, \\
z &= \frac{\frac{14}{3} – 6}{2} = \frac{\frac{14}{3} – \frac{18}{3}}{2} = \frac{-4/3}{2} = -\frac{2}{3}.
\end{aligned}[/math]

Quindi [math](x, y, z) = \left(\frac{4}{3}, \frac{1}{3}, -\frac{2}{3}\right)[/math].

6. Minimo globale

[math]f[/math] è una funzione convessa (somma di quadrati) e i vincoli sono lineari.

Il punto critico è l’unico minimo globale.

Costo minimo:

[math]\displaystyle \begin{aligned}
f &= \left(\frac{4}{3}\right)^2 + \left(\frac{1}{3}\right)^2 + \left(-\frac{2}{3}\right)^2 \\
&= \frac{16 + 1 + 4}{9} = \frac{21}{9} = \frac{7}{3}.
\end{aligned}[/math]

💡 Osservazione

Con più vincoli, i moltiplicatori di Lagrange rappresentano i costi marginali (o benefici) dell’allentamento dei vincoli. In questo caso, [math]\lambda_1 \approx 4.67[/math] e [math]\lambda_2 = -2[/math] indicano come varierebbe il costo minimo se i vincoli fossero modificati.

❓ Mini quiz

Se il vincolo [math]x + y + z = 1[/math] fosse sostituito da [math]x + y + z = 2[/math], come cambierebbe il costo minimo? (senza ricalcolare tutto, usa i moltiplicatori).

💡 Risposta

Il moltiplicatore [math]\lambda_1 \approx 4.67[/math] rappresenta la variazione del costo minimo per una variazione unitaria del vincolo. Aumentando il vincolo da 1 a 2, il costo minimo aumenterebbe di circa [math]4.67[/math] (in prima approssimazione). Il valore esatto si ottiene risolvendo nuovamente il sistema.


Esercizio 3 – Estremi su un insieme compatto (difficoltà ★★★★★)

Contesto

In questo scenario abbandoniamo l’economia aziendale per entrare nella geometria pura. Immagina di camminare lungo il bordo di un cratere circolare perfetto. La funzione rappresenta l’altitudine del terreno. Vogliamo mappare non solo i punti più alti e più bassi in assoluto, ma ogni singola vetta e avvallamento lungo il nostro percorso.

Testo

Data la funzione

[math]f(x,y) = x^3 + y^3[/math]

soggetta al vincolo

[math]x^2 + y^2 = 1,[/math]

trova tutti i punti stazionari e classificali (massimi assoluti/locali e minimi assoluti/locali).

✅ Risoluzione

1. Analisi del problema

Il vincolo è una circonferenza di raggio 1, che geometricamente è un insieme chiuso e limitato (compatto). Per il Teorema di Weierstrass, sappiamo in partenza che la funzione ammette sicuramente un massimo e un minimo assoluti.

Ti potrebbe interessare anche:  Studio di Funzione: Guida Completa con Esercizi Svolti Passo Passo (da Base ad Avanzato)

2. Impostazione del Lagrangiano

Costruiamo la funzione lagrangiana includendo il vincolo:

[math]\mathcal{L}(x,y,\lambda) = x^3 + y^3 – \lambda(x^2 + y^2 – 1)[/math]

3. Condizioni del primo ordine (Sistema)

Annulliamo il gradiente rispetto a [math]x[/math], [math]y[/math] e [math]\lambda[/math]:

[math]\displaystyle \begin{cases}
3x^2 – 2\lambda x = 0 \Rightarrow x(3x – 2\lambda) = 0, \\
3y^2 – 2\lambda y = 0 \Rightarrow y(3y – 2\lambda) = 0, \\
x^2 + y^2 = 1.
\end{cases}[/math]

4. Ricerca dei punti critici

Risolviamo il sistema analizzando i tre scenari possibili.

Caso A: [math]x = 0[/math]. Inserendolo nel vincolo otteniamo [math]y = \pm 1[/math].

Punti trovati: [math](0, 1)[/math] e [math](0, -1)[/math].

Valori della funzione: [math]f(0, 1) = 1[/math], [math]f(0, -1) = -1[/math].

Caso B: [math]y = 0[/math]. Inserendolo nel vincolo otteniamo [math]x = \pm 1[/math].

Punti trovati: [math](1, 0)[/math] e [math](-1, 0)[/math].

Valori della funzione: [math]f(1, 0) = 1[/math], [math]f(-1, 0) = -1[/math].

Caso C: [math]x \neq 0[/math] e [math]y \neq 0[/math]. Dalle prime due equazioni ricaviamo che [math]3x = 2\lambda[/math] e [math]3y = 2\lambda[/math], da cui deduciamo l’uguaglianza [math]x = y[/math].

Sostituendo nel vincolo si ha [math]2x^2 = 1 \Rightarrow x = y = \pm \frac{1}{\sqrt{2}}[/math].

Punti trovati: [math]P_1 = \left(\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}\right)[/math] e [math]P_2 = \left(-\frac{1}{\sqrt{2}}, -\frac{1}{\sqrt{2}}\right)[/math].

Valori della funzione:

[math]\displaystyle f(P_1) = 2\left(\frac{1}{\sqrt{2}}\right)^3 = \frac{2}{2\sqrt{2}} = \frac{1}{\sqrt{2}} \approx 0.707[/math]

[math]\displaystyle f(P_2) = 2\left(-\frac{1}{\sqrt{2}}\right)^3 = -\frac{1}{\sqrt{2}} \approx -0.707[/math]

5. Classificazione degli estremi

Ora che abbiamo la mappa completa delle quote altimetriche, classifichiamo i punti:

  • Massimi assoluti ([math]f = 1[/math]): Raggiunti nei punti [math](1, 0)[/math] e [math](0, 1)[/math].
  • Minimi assoluti ([math]f = -1[/math]): Raggiunti nei punti [math](-1, 0)[/math] e [math](0, -1)[/math].

E i punti intermedi?

Il punto [math]P_1 \approx 0.707[/math] si trova incastrato tra i due massimi assoluti di quota [math]1[/math]. Se ti muovi lungo la circonferenza partendo da [math]P_1[/math], l’altitudine ricomincerà a salire verso [math]1[/math] in entrambe le direzioni. Pertanto, [math]P_1[/math] è una “valle in quota”, ovvero un minimo locale.

Al contrario, [math]P_2 \approx -0.707[/math] si trova tra i due minimi assoluti di quota [math]-1[/math]. L’altitudine scende allontanandosi da esso; si tratta quindi di una “piccola duna sul fondo”, ovvero un massimo locale.

6. La prova definitiva: L’Hessiana Orlata (per i più rigorosi)

Possiamo confermare la nostra intuizione calcolando la matrice Hessiana Orlata [math]H[/math] nel punto [math]P_1(1/\sqrt{2}, 1/\sqrt{2})[/math], dove [math]\lambda = 3/(2\sqrt{2})[/math]:

[math]\displaystyle H = \begin{pmatrix}
0 & 2x & 2y \\
2x & 6x – 2\lambda & 0 \\
2y & 0 & 6y – 2\lambda
\end{pmatrix}[/math]

In un problema a due variabili con un solo vincolo, la regola dei segni del determinante [math]\det(H)[/math] è netta: se è negativo siamo su un minimo locale, se è positivo siamo su un massimo locale.

Sostituendo le coordinate di [math]P_1[/math], la diagonale principale delle derivate seconde parziali risulta [math]6(1/\sqrt{2}) – 3/\sqrt{2} = 3/\sqrt{2}[/math]. Il calcolo del determinante dà come risultato:

[math]\displaystyle \det(H) = -\frac{12}{\sqrt{2}} < 0[/math]

Il segno negativo certifica matematicamente che [math]P_1[/math] è un minimo locale vincolato, confermando la nostra analisi geometrica. (Svolgendo lo stesso calcolo per [math]P_2[/math], troveresti un determinante positivo, confermandolo come massimo locale).

💡 L’illusione del “punto di sella”

Questo esercizio è insidioso perché su funzioni senza vincoli saremmo tentati di chiamare [math]P_1[/math] un “punto di sella” (poiché si trova a metà strada tra massimi e minimi). Tuttavia, quando si ottimizza lungo una curva monodimensionale (come la nostra circonferenza), la funzione non può avere selle vere e proprie: non ci sono direzioni trasversali in cui muoversi. Lungo il sentiero del vincolo si può solo salire o scendere, rendendo i punti stazionari o massimi o minimi.

Metodo alternativo: Parametrizzare il vincolo

L’Esercizio 3 ci offre l’occasione perfetta per mostrare un metodo alternativo a Lagrange. Quando il vincolo ha una geometria nota e facilmente descrivibile (come una circonferenza, un’ellisse o un segmento), possiamo “spalmarlo” su un’unica variabile, trasformando un problema di Analisi 2 in un classico studio di funzione di Analisi 1.

Il nostro vincolo è la circonferenza unitaria [math]x^2 + y^2 = 1[/math]. Possiamo tradurre questa equazione nel linguaggio della trigonometria parametrizzando le coordinate in funzione dell’angolo [math]t[/math] (con [math]t \in [0, 2\pi][/math]):

[math]x = \cos t, \quad y = \sin t[/math]

Sostituendo queste espressioni direttamente nella funzione obiettivo [math]f(x,y) = x^3 + y^3[/math], otteniamo una funzione che dipende esclusivamente da [math]t[/math]:

[math]f(t) = \cos^3 t + \sin^3 t[/math]

In questo modo abbiamo incorporato il vincolo direttamente nella funzione. Ora per trovare i punti stazionari ci basta calcolare la derivata prima [math]f'(t)[/math] e imporla uguale a zero:

[math]f'(t) = 3\cos^2 t (-\sin t) + 3\sin^2 t (\cos t)[/math]

[math]f'(t) = 3\sin t \cos t (\sin t – \cos t)[/math]

Ponendo [math]f'(t) = 0[/math], per la legge di annullamento del prodotto, otteniamo tre casi:

  • [math]\sin t = 0 \implies t = 0, \pi[/math] (corrispondenti ai punti [math](1,0)[/math] e [math](-1,0)[/math])
  • [math]\cos t = 0 \implies t = \frac{\pi}{2}, \frac{3\pi}{2}[/math] (corrispondenti ai punti [math](0,1)[/math] e [math](0,-1)[/math])
  • [math]\sin t – \cos t = 0 \implies \tan t = 1 \implies t = \frac{\pi}{4}, \frac{5\pi}{4}[/math] (corrispondenti ai punti [math]P_1[/math] e [math]P_2[/math])

Ritroviamo esattamente gli stessi sei punti stazionari individuati con il Lagrangiano, ma con un vantaggio concettuale enorme.

Perché questo metodo smaschera l’illusione della sella

Questo approccio ci fa toccare con mano perché lungo un vincolo monodimensionale non esistono veri punti di sella.

Nello spazio 3D, una sella richiede due direzioni libere: in una si sale, nell’altra si scende. Ma riducendo il problema alla singola variabile [math]t[/math], stiamo letteralmente costringendo il nostro esploratore a camminare su un binario (la circonferenza). Su un sentiero 1D ci sono solo tre scenari per un punto stazionario:

  1. La strada smette di salire e inizia a scendere (Massimo).
  2. La strada smette di scendere e inizia a salire (Minimo).
  3. Flesso a tangente orizzontale (un “gradino” in cui ci si ferma e poi si riprende nella stessa direzione).

Studiando il segno della derivata [math]f'(t)[/math] attorno a [math]t = \pi/4[/math] (il nostro punto [math]P_1[/math]), vedresti chiaramente che la funzione scende prima di arrivarci e sale subito dopo. È inequivocabilmente una “conca” lungo il percorso circolare, ovvero un minimo locale. La parametrizzazione spazza via ogni ambiguità vettoriale riconducendo la topologia a una semplice curva piana.

Ti potrebbe interessare anche:  Guida all'Ottimizzazione Economica: Strategie di Pricing e Metodo di Lagrange per il Business

❓ Mini quiz

Perché la condizione del primo ordine [math]\nabla f = \lambda \nabla g[/math] (i gradienti sono allineati) non ci dice nulla su chi sia il massimo e chi il minimo?

💡 Risposta

L’allineamento dei gradienti indica solo che le curve di livello della funzione sono tangenti al vincolo in quel punto (cioè sei fermo, non puoi più salire o scendere muovendoti infinitesimalmente). Ma non ti dice in che direzione si piega la curvatura. Per capire se sei su un picco (massimo) o in una conca (minimo), hai necessariamente bisogno di esplorare le derivate seconde, tramite l’analisi dei valori o l’Hessiana orlata.


Contesto Applicativo

Esercizio 1 (Utilità e Vincoli di Bilancio)

Rappresenta il problema fondamentale della microeconomia. La peculiarità qui è il passaggio logico dal vincolo di disuguaglianza ([math]\le[/math]) a quello di uguaglianza ([math]=[/math]). Matematicamente, giustifichiamo questo salto grazie alla monotonia della funzione (l’utilità cresce sempre, quindi spenderemo tutto il budget).

Il ruolo applicativo del moltiplicatore: Il valore [math]\lambda = 2[/math] non è solo un numero, è l’utilità marginale del reddito. Ci dice esattamente di quanto aumenterebbe il “benessere” del consumatore se avesse a disposizione un’unità aggiuntiva di ricchezza.

Esercizio 2 (Minimizzazione con vincoli multipli)

Introduce i sistemi a più vincoli, tipici della Ricerca Operativa e della logistica. Non basta produrre un tot (vincolo 1), bisogna farlo rispettando proporzioni chimiche o tecnologiche precise (vincolo 2).

Il ruolo applicativo dei moltiplicatori: I due [math]\lambda[/math] sono i famosi prezzi ombra (shadow prices). [math]\lambda_1[/math] ci informa sul costo di aumentare la produzione totale, mentre [math]\lambda_2 = -2[/math] è negativo, suggerendo che un irrigidimento del secondo vincolo (il mix tecnologico) in realtà costringerebbe l’azienda verso combinazioni strutturalmente più economiche in termini di scarti algebrici.

Esercizio 3 (Geometria su insiemi compatti)

Sposta l’attenzione dall’economia alla topologia/geometria. La circonferenza è un insieme chiuso e limitato (compatto), il che garantisce per il Teorema di Weierstrass l’esistenza di massimi e minimi assoluti.

Peculiarità: Dimostra che il metodo di Lagrange trova tutti i candidati stazionari, ma è cieco di fronte alla loro natura. I moltiplicatori ti danno le coordinate, ma serve un’analisi qualitativa o l’Hessiana Orlata per capire se ti trovi su una vetta, in una valle o su un minimo locale.


I 5 Errori Più Comuni (e come evitarli all’esame)

Quando si passa dalla teoria alla pratica, i moltiplicatori di Lagrange nascondono alcune trappole in cui cade la maggior parte degli studenti. Ecco i cinque errori classici da non commettere.

Errore 1: Ignorare la complementarità nei vincoli di disuguaglianza

Il problema chiede di ottimizzare con il vincolo [math]g(x,y) \le 0[/math] e tu imposti direttamente il Lagrangiano come se fosse un’uguaglianza, senza farti domande.

Perché è sbagliato: Il metodo standard di Lagrange vale solo per i confini esatti (le uguaglianze). Se il punto ottimale si trova all’interno della regione (dove [math]g(x,y) < 0[/math]), il vincolo non è attivo e il moltiplicatore deve essere zero ([math]\lambda = 0[/math]).

La soluzione: Usa le condizioni di Karush-Kuhn-Tucker (KKT). Devi sempre verificare la condizione di complementarità: [math]\lambda \cdot g(x,y) = 0[/math]. Se assumi che il vincolo sia attivo (come nell’Esercizio 1), alla fine devi controllare che risulti [math]\lambda \ge 0[/math].

Errore 2: Dimenticare la qualificazione del vincolo ([math]\nabla g \neq 0[/math])

Tutti si buttano a capofitto a impostare il sistema, dimenticando di calcolare il gradiente del vincolo.

Perché è sbagliato: Il teorema di Lagrange funziona solo nei punti in cui il vincolo è “regolare”. Se nel punto critico il gradiente del vincolo si annulla, ovvero [math]\nabla g = (0,0)[/math] (ad esempio sulla punta di un cono o in una cuspide), i gradienti non possono essere proporzionali. In quei punti potrebbe nascondersi un massimo o un minimo che il tuo sistema non troverà mai.

La soluzione: Prima di scrivere la Lagrangiana, calcola [math]\nabla g[/math] e verifica in quali punti si annulla. Se quei punti appartengono al vincolo, aggiungili manualmente alla lista dei “sospettati” da controllare alla fine.

Errore 3: Confondere un estremo locale con uno assoluto

Risolvi il sistema, trovi un punto critico, calcoli l’Hessiana e scopri che è un massimo. Fine dell’esercizio? Non proprio.

Perché è sbagliato: Aver trovato la cima di una collina non significa aver scalato l’Everest. Lagrange individua solo gli estremi locali. Se il dominio non è un insieme compatto (chiuso e limitato), la funzione potrebbe schizzare a [math]+\infty[/math] o [math]-\infty[/math] da qualche altra parte.

La soluzione: Una volta trovati tutti i punti stazionari, valuta la funzione in ciascuno di essi per stilare una “classifica” (come abbiamo fatto nell’Esercizio 3). Poi, verifica sempre il comportamento della funzione agli estremi del dominio (i limiti) per confermare che i valori trovati siano effettivamente i massimi o minimi assoluti.

Errore 4: Credere che l’equazione [math]\nabla f = \lambda \nabla g[/math] classifichi il punto

Molti pensano che la condizione del primo ordine basti a dire se si tratta di un massimo o di un minimo, magari interpretando il segno di [math]\lambda[/math].

Perché è sbagliato: Quell’equazione ti dice solo una cosa: “In questo punto, la curva di livello della funzione è esattamente tangente al vincolo”. Sei su una zona piatta, un punto stazionario. Il gradiente allineato non sa dirti se ai lati di questo punto si sale o si scende.

La soluzione: Il sistema trova le coordinate, non la natura. Per capire se sei su un picco o in una valle devi sostituire i punti trovati nella funzione originaria e confrontarli, oppure usare l’Hessiana Orlata.

Errore 5: Complicarsi la vita con l’Hessiana quando la funzione è convessa

Trovato il punto critico, perdi venti minuti a calcolare un’Hessiana Orlata [math]3 \times 3[/math] o [math]4 \times 4[/math], rischiando errori di calcolo fatali sul determinante.

Perché è sbagliato: È un inutile spreco di tempo. Se stai minimizzando una funzione palesemente convessa (come una somma di quadrati, vedi l’Esercizio 2) su un vincolo lineare o convesso, l’analisi matematica ti fa uno sconto enorme: ogni punto stazionario locale è automaticamente il minimo globale.

Ti potrebbe interessare anche:  Microeconomia: esercizi svolti sulle imprese monopoliste ( IV PARTE)

La soluzione: Prima di lanciarti nelle derivate seconde, guarda la funzione. È una parabola convessa? I vincoli sono rette o piani? Se la risposta è sì, scrivi semplicemente: “Essendo la funzione obiettivo strettamente convessa e l’insieme ammissibile convesso, il punto critico trovato è l’unico minimo globale”. Esercizio concluso, tempo risparmiato.


Il tocco MatematicaOltre: Risoluzione Automatica con Python (SymPy)

Chi ci segue da tempo lo sa: su MatematicaOltre non ci limitiamo alla teoria su carta. Nel mondo reale, quando i calcoli algebrici diventano ingestibili, si usa la programmazione.

Se vuoi verificare i risultati dei tuoi esercizi o risolvere un sistema particolarmente ostico senza impazzire tra i segni, Python viene in tuo soccorso con la libreria SymPy (dedicata al calcolo simbolico).

Ecco come impostare e risolvere in cinque righe un problema di Lagrange (ad esempio, massimizzare [math]f(x,y) = xy[/math] sul vincolo [math]x^2 + y^2 = 4[/math]):

import sympy as sp

# 1. Definiamo le variabili e il moltiplicatore
x, y, lam = sp.symbols('x y lam')

# 2. Scriviamo la funzione Lagrangiana
L = x * y - lam * (x**2 + y**2 - 4)

# 3. Calcoliamo le derivate parziali (il gradiente posto a zero)
eqs = [
    sp.diff(L, x),   # Derivata rispetto a x
    sp.diff(L, y),   # Derivata rispetto a y
    sp.diff(L, lam)  # Derivata rispetto a lambda (il vincolo)
]

# 4. Chiediamo a Python di risolvere il sistema
soluzioni = sp.solve(eqs, [x, y, lam])

print(soluzioni)

Come leggere questo codice:

  • sp.symbols: Comunica a Python che [math]x[/math], [math]y[/math] e [math]\lambda[/math] non sono numeri fissi, ma variabili algebriche vere e proprie.
  • L = ...: È la traduzione in codice della nostra [math]\mathcal{L}[/math]. Nota l’uso di ** per indicare l’elevamento a potenza.
  • sp.diff: È il comando magico che calcola le derivate parziali. Mettendo tutto dentro la lista eqs, stiamo creando il sistema di equazioni (SymPy dà per scontato che ogni espressione nella lista sia uguale a zero).
  • sp.solve: Prende il sistema, prende le incognite, e fa tutto il lavoro sporco algebrico, restituendo una lista con tutti i punti critici e i rispettivi valori di [math]\lambda[/math].

Output

[(-sqrt(2), sqrt(2), -1/2), (sqrt(2), -sqrt(2), -1/2), (-sqrt(2), -sqrt(2), 1/2), (sqrt(2), sqrt(2), 1/2)]

La struttura dell’output

Python ha restituito una lista di quattro tuple (le parentesi tonde). Poiché nel codice avevamo chiesto la soluzione nell’ordine [x, y, lam], ogni tupla contiene esattamente questi tre valori: (coordinata x, coordinata y, valore di lambda).

Leggendo l’output, SymPy ha trovato quattro punti stazionari:

  • Punto 1: [math]x = -\sqrt{2}, \quad y = \sqrt{2} \quad \implies \lambda = -1/2[/math]
  • Punto 2: [math]x = \sqrt{2}, \quad y = -\sqrt{2} \quad \implies \lambda = -1/2[/math]
  • Punto 3: [math]x = -\sqrt{2}, \quad y = -\sqrt{2} \quad \implies \lambda = 1/2[/math]
  • Punto 4: [math]x = \sqrt{2}, \quad y = \sqrt{2} \quad \implies \lambda = 1/2[/math]

Classificazione dei punti (Cosa ci dicono questi numeri?)

Per capire chi è il massimo e chi è il minimo, dobbiamo prendere le coordinate [math]x[/math] e [math]y[/math] appena trovate e sostituirle nella nostra funzione obiettivo [math]f(x,y) = xy[/math].

Ricorda che il vincolo [math]x^2 + y^2 = 4[/math] è una circonferenza (un insieme compatto), quindi per il Teorema di Weierstrass i valori più alti e più bassi saranno i nostri massimi e minimi assoluti.

Valutiamo i Punti 3 e 4:
Sostituendo [math](-\sqrt{2}, -\sqrt{2})[/math] e [math](\sqrt{2}, \sqrt{2})[/math] nella funzione otteniamo in entrambi i casi:

[math]f = (\sqrt{2}) \cdot (\sqrt{2}) = 2[/math]

Questi due punti sono i massimi assoluti della funzione sul vincolo.

Valutiamo i Punti 1 e 2:
Sostituendo [math](-\sqrt{2}, \sqrt{2})[/math] e [math](\sqrt{2}, -\sqrt{2})[/math] nella funzione otteniamo:

[math]f = (-\sqrt{2}) \cdot (\sqrt{2}) = -2[/math]

Questi due punti sono i minimi assoluti.

Cosa ci dice il moltiplicatore [math]\lambda[/math]

Python ci ha calcolato anche il valore di [math]\lambda[/math] per ogni punto.

Nei punti di massimo abbiamo [math]\lambda = 1/2[/math].

Che significato ha?

Sappiamo che [math]\lambda[/math] rappresenta la sensibilità del valore ottimo rispetto al vincolo. Il nostro vincolo era [math]x^2 + y^2 = 4[/math]. Se “allargassimo” la circonferenza facendola diventare, ad esempio, [math]x^2 + y^2 = 5[/math], il valore massimo della funzione [math]f(x,y)[/math] aumenterebbe di circa [math]1/2[/math] (passando da [math]2[/math] a [math]2,5[/math]). I moltiplicatori calcolati da Python non sono solo calcoli intermedi, ma ci danno una previsione immediata su come si comporterà il sistema se cambiamo le regole del gioco.

Inserire questa competenza nel tuo arsenale non solo ti salva dai banali errori di calcolo all’esame, ma ti dà un assaggio di come vengono trattati i problemi di ottimizzazione nell’analisi dei dati e nel machine learning.


📚 Ottimizzazione vincolata, Moltiplicatori di Lagrange e Matrice Hessiana

Se vuoi approfondire gli strumenti matematici utilizzati per risolvere problemi di ottimizzazione in economia, ingegneria, data science e machine learning, ecco una selezione di guide teoriche, esercizi svolti e applicazioni pratiche con Python.

👉Moltiplicatori di Lagrange: teoria, esercizi svolti, grafici Python e applicazioni reali

👉Funzione lagrangiana: come risolvere problemi di ottimizzazione con Lagrange e condizioni KKT

👉Funzione Cobb-Douglas: esercizi svolti su utilità, minimizzazione dei costi e massimizzazione del profitto

👉Matrice Hessiana: teoria, significato e interpretazione

👉Matrice Hessiana: 6 esercizi svolti per individuare massimi, minimi e punti di sella

(6)

PubblicitàPubblicità