Come usare MATLAB per risolvere un problema di programmazione lineare

August 13

Come usare MATLAB per risolvere un problema di programmazione lineare


MATLAB è un ambiente di programmazione adatto per risolvere un'ampia varietà di problemi tecnici e matematici. Un problema comune nei campi tecnici coinvolge programmazione lineare, o l'ottimizzazione dei parametri di sistema per minimizzare l'errore risultante - o qualsiasi altro parametro. MATLAB fornisce una serie di metodi per risolvere facilmente problemi di programmazione lineare con il tempo minimo trascorso la scrittura di codice.

istruzione

1 Formattare il problema di programmazione lineare nel formato previsto dal MATLAB "linprog ()" funzione che riduce al minimo il valore di "f '* X", dove "f'" è la trasposizione di "f", che soddisfi le condizioni:

A ∙ x <= b
A_eq ∙ x = b_eq
Lower_bound <= x <= upper_bound

Le variabili "F", "x", "b", "b_eq", "inferiore limite" e "superiore limite" sono tutti i vettori. Le variabili "A" e "A_eq" sono matrici, o vettori multidimensionali. Gli argomenti "A_eq," "B_eq", "inferiore limite" e "superiore limite" sono opzionali.

2 Impostare le opzioni per la "linprog ()" ") optimset (" funzione di risoluzione usando il. Il valore del parametro vengono impostati utilizzando la seguente sintassi; il secondo viene aggiunto un parametro a un set esistente di opzioni:

my_options = optimset ( 'param1', valore1, ...);
my_new_options = optimset (my_options, 'param2', valore2);

Ci sono molte opzioni disponibili. Opzioni comuni per impostare includere "MaxIter" per impostare il numero massimo di iterazioni della procedura di ottimizzazione e "Display" al progresso uscita dopo ogni iterazione.

3 Eseguire il "linprog ()" funzione utilizzando la seguente sintassi:

... = Linprog (F, A, B, A_eq, b_eq, lower_bound, upper_bound, x0, opzioni);

La variabile "x0" è il valore di partenza per valutare per "x", ma è disponibile solo utilizzando il set di algoritmo di medie dimensioni utilizzando il "optimset) (" la funzione.

4 Dirigere l'uscita di "linprog ()" per variabili di uscita appropriate:

[X, FVAL, exitflag, uscita, lambda] = linprog (...);

La variabile "x" è il valore di "x" che ottimizza il problema di programmazione lineare.
La variabile "FVAL" è il valore di "f '* x" al valore finale di "x". Il "exitflag" variabile indica come la procedura di ottimizzazione finito: "1" indica l'ottimizzazione convergenti ad una soluzione per "x", mentre altri valori indicano un errore nella procedura. La variabile "uscita" è una struttura che contiene informazioni sulla procedura di ottimizzazione, e la variabile "lambda" è una struttura che contiene i moltiplicatori di Lagrange di "x".

Consigli e avvertenze

  • Alcune funzioni di programmazione lineare richiedono l'MATLAB Optimization Toolbox.