Un esempio di programmazione non lineare

Matematica_Math_Wallpaper_01

Con questo articolo ho voluto dare anch’io un piccolo contributo alla trattazione della programmazione matematica, un argomento, tanto vasto e complesso quanto affascinante, che è stato già affrontato in due articoli di ELETTRONICA OPEN SOURCE (Capire la programmazione lineare e La programmazione lineare). Illustro un semplice esempio di programmazione non lineare, più precisamente quadratica.

La programmazione matematica, detta anche ottimizzazione, è quella branca della matematica applicata che studia i metodi per determinarne il valore massimo e/o minimo di una funzione (e naturalmente anche dove tale valore viene assunto), detta funzione obiettivo, in presenza di vincoli espressi da equazioni o disequazioni. Essa trova applicazione in diversi campi e soprattutto nell’economia: i tipici problemi per i quali si utilizza sono la massimizzazione dei profitti e la minimizzazione dei costi.

La funzione obiettivo può essere algebrica (si definiscono algebriche quelle funzioni costruite unicamente con le quattro operazioni aritmetiche, l’elevamento a potenza e l’estrazione della radice n-esima) o trascendente (non algebrica). Nel 1° caso, la programmazione matematica si definisce lineare o non lineare a seconda che la funzione obiettivo sia o meno di 1° grado (lineare), ossia del tipo:

 

f(x1, x2, …, xn) = a1x1 + a2x2 + … + anxn + b
 

 

Esaminiamo ora un semplice esempio di programmazione non lineare e più precisamente di programmazione quadratica: la funzione obiettivo è una funzione algebrica di 2° grado.

Supponiamo che una fabbrica abbia la capacità produttiva massima settimanale di 200 pezzi lavorati. Il costo della realizzazione di ogni pezzo sia pari a 2 euro, mentre la sua commercializzazione comporti una spesa di 0,5 + 0,01x euro, dove x rappresenta il numero di oggetti fabbricati settimanalmente. Ipotizzando che il prezzo di tale prodotto sia 5 euro e che si riesca a vendere tutti i pezzi realizzati, calcoliamo quanti ne dovrebbero essere prodotti alla settimana per avere il massimo utile.

Innanzitutto, osserviamo che 0 ≤ x ≤ 200. Il costo settimanale della produzione e vendita di tale oggetto è espresso dalla funzione:

 

C(x) = (2,5 + 0,01x)x = 2,5x + 0,01x^2
 

 

mentre il ricavo settimanale è dato da:

 

R(x) = 5x
 

 

Pertanto, l’utile settimanale è rappresentato dalla funzione:

 

f(x) = R(x) – C(x) = 2,5x – 0,01x^2
 

 

che è la funzione obiettivo del nostro problema. Mentre 0 ≤ x ≤ 200 è il vincolo. Quindi, ciò che dobbiamo fare è determinare il valore massimo che f(x) assume nell’intervallo [0, 200] e il corrispondente x.

La derivata di f(x) è:

 

f'(x) = 2,5 – 0,02x
 

e si annulla per x = 2,5/0,02 = 125. Poiché f”(x) = -0,02 < 0, x = 125 è il punto di massimo assoluto di f(x) su tutto l’asse reale e, dal momento che è interno a [0, 200], è esattamente il valore che cercavamo.

Un altro modo di ottenere lo stesso risultato consiste nell’osservare che f(x) è un polinomio di 2° grado con il coefficiente di x^2 negativo e perciò il suo grafico è una parabola con la concavità rivolta verso il basso, come mostrato dalla seguente illustrazione realizzata tramite Matlab:

 

 

Il massimo di f(x) ovviamente si ha in corrispondenza del vertice della parabola, la cui ascissa si calcola con la formula:

 

x = -b/2a = -2,5/(2×(-0,01)) = 125
 

Concludendo, l’utile massimo settimanale, pari a 2,5×125 – 0,01×125^2 = 156,25 euro, si ottiene fabbricando settimanalmente 125 pezzi.

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

5 Comments

  1. Marco Giancola Marco Giancola 25 aprile 2013
  2. Boris L. 25 aprile 2013
  3. Marco Giancola Marco Giancola 25 aprile 2013
  4. Piero Boccadoro Piero Boccadoro 26 aprile 2013
  5. Marco Giancola Marco Giancola 28 aprile 2013

Leave a Reply