Nwlapcug.com


Come utilizzare MATLAB per risolvere un problema di programmazione lineare



MATLAB è un ambiente di programmazione adatto per risolvere una vasta gamma di problemi tecnici e matematici. Un problema comune in settori tecnici prevede la programmazione lineare, o l'ottimizzazione dei parametri di sistema per ridurre al minimo errore risultante — o qualsiasi altra metrica. MATLAB fornisce una serie di metodi per risolvere facilmente i problemi di programmazione lineare con il minimo tempo speso a scrivere codice.

Istruzioni

1

Formattare il tuo problema di programmazione lineare nel formato previsto dalla funzione di "linprog()" di MATLAB che riduce al minimo il valore di "f' * x," dove "f'" è la trasposizione di "f", che soddisfano le condizioni:

Un ∙ x < = b
A_eq ∙ x = b_eq
Lower_bound < = x < = Upper_bound

Le variabili "f" "x," "b," "b_eq," "Lower_bound" e "Upper_bound" sono tutti i vettori. Le variabili "A" e "A_eq" sono matrici o vettori multidimensionali. Gli argomenti "A_eq," "B_eq," "Lower_bound" e "Upper_bound" sono facoltativi.

2

Impostare le opzioni per il solutore di "linprog()" utilizzando la funzione "optimset()". Valore del parametro vengono impostate utilizzando la sintassi seguente; nel secondo esempio aggiunge un parametro a un set di opzioni esistente:

my_options = optimset('param1',value1,...);
my_new_options = optimset(my_options,'param2',value2);

Ci sono molte opzioni disponibili. Per impostare le opzioni comuni includono "MaxIter" per impostare il numero massimo di iterazioni della procedura di ottimizzazione e "Display" al progresso di output dopo ogni iterazione.

3

Eseguire la funzione di "linprog()" utilizzando la seguente sintassi:

... = linprog (f, A, b, A_eq, b_eq, Lower_bound, Upper_Bound, x0, opzioni);

La variabile "x 0" è il valore iniziale per valutare la "x", ma è disponibile solo utilizzando l'algoritmo di medie dimensioni impostata utilizzando la funzione "optimset()".

4

Indirizzare l'output di "linprog()" per le variabili di output appropriato:

[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 "il valore finale di"x". La variabile "exitflag" indica come ha terminato la procedura di ottimizzazione: "1" indica l'ottimizzazione convergente ad una soluzione per "x", mentre altri valori indicano un errore nella procedura. La variabile "output" è una struttura che contiene informazioni sulla procedura di ottimizzazione, e la variabile "lambda" è una struttura contenente i moltiplicatori di Lagrange di "x".

Consigli & Avvertenze

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