Il Toolbox di ottimizzazione di Matlab. Mauro Gaggero

Documenti analoghi
LEZIONE ICO

Optimization Toolbox di MATLAB

Equazioni e sistemi non lineari

FREEFEM++ Marcello Bellomi. 18 Aprile Università di Verona FREEFEM++

Introduzione all Optimization Toolbox di MATLAB. Barbara Panicucci Massimo Pappalardo Mauro Passacantando

Esercizi di ottimizzazione vincolata

Principi e Metodologie della Progettazione Meccanica

Principi e Metodologie della Progettazione Meccanica

MATEMATICA GENERALE APPLICAZIONI DI MATEMATICA PER L ECONOMIA 1/6/2011 A. NOME e COGNOME Matricola. x = x 3 + 1

Cercare il minimo di una funzione: Particle swam optimization

Appunti sul corso di Complementi di Matematica mod. Analisi prof. B.Bacchelli - a.a. 2010/2011.

Introduzione al MATLAB c Parte 1 Variabili ed array

Elementi di un modello di Programmazione Matematica

Esercitazione n o 3 per il corso di Ricerca Operativa

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Esercizi su ottimizzazione vincolata

LUISS Laurea specialistica in Economia e Finanza Anno Accademico 2010/2011

Scopo del laboratorio

Introduzione alla programmazione lineare

Introduzione alla Ricerca Operativa. Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

LINGO -

Esercizi su massimi e minimi locali

Generazione del campione secondo un predefinito meccanismo generatore dei dati (DGP) Stima dei parametri del modello

Corso di Laurea in Chimica e Tecnologia Farmaceutiche Matematica con Elementi di Informatica COMPITO 19 Febbraio 2016

Le derivate parziali

Massimi e minimi vincolati

Corso di Laurea in Informatica. Insegnamento integrato di Calcolo (Calcolo I, Calcolo II, Esercitazioni di Calcolo) Prof. F.

Instradamento egoistico in reti multi-salto

Metodi e Modelli per l Ottimizzazione Combinatoria Metodi Risolutivi per la Programmazione Lineare Intera

Parte V: Rilassamento Lagrangiano

Algoritmo di Branch & Bound

Regressione non lineare con un modello neurale feedforward

Corso di Laurea in Informatica. Insegnamento integrato di Calcolo (Calcolo I, Calcolo II, Esercitazioni di Calcolo) Prof. F.

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Soluzione grafica di problemi PM in 2 variabili

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

LEZIONE N. 6 - PARTE 1 - Introduzione

Appunti di Laboratorio di Calcolo Numerico con Matlab

MATEMATICA GENERALE Prova d esame del 4 giugno FILA A

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Sistemi lineari: bilanciamento di reazioni chimiche

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Il modello duale. Capitolo settimo. Introduzione

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Risoluzione di problemi ingegneristici con Excel

Matematica Finanziaria 29 novembre 2000

x 1 x x 1 2 x 2 6 x 2 5 Indici di base Vettore Ammissibile Degenere (si/no) (si/no)

Selezione di un portafoglio di titoli in presenza di rischio. Testo

Controllo Digitale - A. Bemporad - A.a. 2007/08

Analisi Matematica II. Esercizi per le vacanze pasquali

Note sulle funzioni convesse/concave

Programma del corso di: Calcolo Numerico Corso di laurea in Matematica a.a Prof. B.Paternoster

Analisi Matematica II Corso di Ingegneria Gestionale Compito del f(x, y) = e (x3 +x) y

I vettori in C. Vettori. Definizione di vettori in C. int dato[10] ; int. Numero di elementi. Tipo di dato base. Nome del vettore.

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

IL CRITERIO DELLA MASSIMA VEROSIMIGLIANZA

4.11 Massimi e minimi relativi per funzioni di più variabili

Esercitazioni di Analisi e Simulazione dei Processi Chimici

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Metodi & Modelli per le Scelte Economiche

Esercitazione 6: Metodi iterativi per sistemi lineari.

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Esercizio 1. Esercizio 2

IMPORTAZIONE PRESENZE DA RILEVATORI ELETTRONICI. tramite file tracciato

UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA GESTIONALE A.A. 2013/2014. Tesi di Laurea Triennale

Laboratorio Complementi di Ricerca Operativa DEI, Politecnico di Milano. Stima di parametri

Esercizi del 9 ottobre 2014

Laboratorio di Calcolo Numerico A.A Laboratorio 4 Risoluzione di sistemi non lineari Metodo di punto fisso

Introduzione al Calcolo Scientifico

Mathcad Prime 2.0 Guida al curriculum

DIARIO DELLE LEZIONI DI ANALISI MATEMATICA II Corso di laurea in Ingegneria Gestionale Canale PZ Secondo codocente: Dott. Salvatore Fragapane

Equazioni, funzioni e algoritmi: il metodo delle secanti

Teorema delle Funzioni Implicite

APPLICAZIONI LINEARI

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

Teoria dei giochi. migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio.

Laboratorio 3. Integrazione numerica

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

M. Marra Appunti delle Lezioni di Ricerca Operativa Problemi e metodi di ottimizzazione PROBLEMI E METODI DI OTTIMIZZAZIONE

Laboratorio 5-6 Metodi di Bisezione, Newton e Punto Fisso

MATEMATICA GENERALE Prova d esame del 23 maggio FILA A

Esercitazione n 6. Esercizio 1: Determinare i punti di massimo e minimo relativo delle seguenti funzioni: (b)f(x, y) = 4y 4 16x 2 y + x

Estremi. 5. Determinare le dimensioni di una scatola rettangolare di volume v assegnato, che abbia la superficie minima.

Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali

Mini-Corso di Informatica

Corso di Calcolo Numerico

Curve n d. f(x, y)=l. x,yda,b

Ricerca Operativa. Docente. 1. Introduzione

Prove d esame Esercizi con Matlab

Il metodo del simplesso

Vediamo come risolvere un problema di PL con Excel. Riprendiamo un esercizio già visto.

Appunti delle esercitazioni di Ricerca Operativa

Ricerca Operativa. Ricerca Operativa p. 1/6

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a Homework n 28. Docente: Laura Palagi

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Calcolo di funzioni non lineari

Transcript:

Mauro Gaggero

I Toolbox di Matlab I Toolbox di Matlab sono pacchetti software utili per risolvere problemi specifici. Questi pacchetti non fanno parte del kernel vero e proprio di Matlab. Si tratta di codice scritto appositamente per risolvere problemi in moltissimi campi dell ingegneria, della matematica, della fisica, dell economia, della finanza, e altro ancora. In questa presentazione vedremo in dettaglio alcune funzioni dell Optimization Toolbox. Mauro Gaggero 2

Problema di ottimizzazione libera Consideriamo un esempio di minimizzazione libera di una funzione di più variabili. Dato il vettore x = [x 1,x 2,x 3 ] T e la funzione f(x) = x 2 1 + x 2 2x 3, vogliamo risolvere il seguente problema di ottimizzazione: { min = min x 2 x R3{f(x)} 1 +x 2 } 2x 3. x R 3 E possibile specificare anche il gradiente della funzione da minimizzare al fine di ottenere prestazioni migliori. In assenza di alcuna specificazione, il gradiente è calcolato automaticamente in modo numerico. Mauro Gaggero 3

Problema di ottimizzazione libera Qui di seguito è riportato il codice Matlab necessario per risolvere il problema di minimizzazione considerato mediante la funzione fminunc. Occorre anzitutto indicare la funzione da minimizzare in un file ffree.m: 1 function retval = ffree(x) 2 % Funzione da minimizzare 3 retval = x(1).^2 + x(2)^2.*x(3); Mauro Gaggero 4

Problema di ottimizzazione vincolata Successivamente occorre scrivere il codice necessario per la minimizzazione: 1 % Esempio di minimizzazione libera di una funzione di piu variabili 2 3 % Punto iniziale dell algoritmo di ottimizzazione 4 x0 = [10; 10; 10]; 5 % Opzioni di minimizzazione 6 options = optimset( LargeScale, off,... % Non sono utilizzati algoritmi Large Scale 7 MaxFunEvals, 1000,... % Numero massimo valutazioni della funzione 8 GradObj, off,... % Gradiente calcolato numericamente 9 TolFun, 1e-9,... % Tolleranza sul valore della funzione 10 TolX, 1e-9,... % Tolleranza sul valore di x 11 Display, iter... % Visualizzazione risultati a ogni iterazione 12 ); 13 % Minimizzazione vera e propria 14 [xopt, fval, exitflag] = fminunc(@(x) ffree(x), x0, options) Mauro Gaggero 5

Problema di ottimizzazione libera Al prompt dei comandi viene visualizzato il testo seguente: 1 >> esempiofree 2 First- order 3 Iteration Func- count f(x) Step- size optimality 4 0 4 1100 200 5 1 8 867.51 0.005 171 6 2 12 143.046 1 44.6 7 3 16 64.7454 1 15.6 8 4 20 47.3196 1 13.6 9 5 24 37.0588 1 11.6 10 6 28 15.7725 1 14.4 11 7 32 4.23781 1 9.94 12 8 36 0.508438 1 3.42 13 9 40 0.0114608 1 0.326 14 10 44 0.000104198 1 0.02 15 11 48 5.95782 e-07 1 0.00285 16 12 52 3.00695 e-10 1 8.52 e-05 17 13 56 8.15836 e-14 1 1.03 e-06 18 14 60 3.85541 e-16 1 1.85 e-07 19 20 Local minimum found. 21 Mauro Gaggero 6

22 Optimization completed because the size of the gradient is less than 23 the selected value of the function tolerance. 24 25 < stopping criteria details > 26 27 xopt = 28-0.0000 29-0.0000 30 6.1721 31 32 fval = 33 3.8554 e-16 34 35 exitflag = 36 1 Alle varie iterazioni del processo di ottimizzazione vengono mostrate diverse informazioni, tra cui il valore della funzione da minimizzare, il valore del gradiente della funzione da minimizzare, e il numero di volte in cui la funzione da minimizzare viene valutata. Mauro Gaggero 7

Problema di ottimizzazione libera La procedura di minimizzazione ha fornito come ottimo x = 0 0 6.17, f(x ) = 0 La procedura è terminata con exitflag pari a 1, ossia a causa del raggiunto limite di tolleranza sulla norma del gradiente della funzione obiettivo. Esistono altri valori che exitflag può assumere, corrispondenti ad altre condizioni che hanno interrotto la procedura di ricerca del minimo. Mauro Gaggero 8

Problema di ottimizzazione vincolata Consideriamo un esempio di minimizzazione vincolata di una funzione di più variabili. Dato il vettore x = [x 1,x 2,x 3 ] T e la funzione f(x) = x 1 x 2 x 3, vogliamo risolvere il seguente problema di ottimizzazione: min x {f(x)} = min x { x 1 x 2 x 3 } con vincoli 0 x 1 + 2x 2 + 2x 3 72 e x 2 1x 2 0. Si tratta di due vincoli lineari di disuguaglianza e di un vincolo non lineare di disuguaglianza. E possibile specificare anche il gradiente della funzione da minimizzare al fine di ottenere prestazioni migliori. In assenza di alcuna specificazione, il gradiente è calcolato automaticamente in modo numerico. Mauro Gaggero 9

Problema di ottimizzazione vincolata Qui di seguito è riportato il codice Matlab necessario per risolvere il problema di minimizzazione considerato mediante la funzione fmincon. Occorre anzitutto indicare la funzione da minimizzare in un file fconstr.m: 1 function retval = fconstr( x) 2 % Funzione da minimizzare 3 retval = -x(1)*x(2)*x(3); Occorre poi indicare la funzione dei vincoli non lineari di uguaglianza e disuguaglianza in un file nonlinconstr.m: 1 function [c, ceq] = nonlinconstr(x) 2 % Funzione dei vincoli non lineari di disuguaglianza e di uguaglianza 3 % Vincoli di disuguaglianza non lineari (visti come c<=0) 4 c = -x(1)^2*x(2); 5 % Vincoli di uguaglianza non lineari (visti come ceq==0) 6 ceq = []; Mauro Gaggero 10

Problema di ottimizzazione vincolata Successivamente occorre scrivere il codice necessario per la minimizzazione: 1 % Esempio di minimizzazione vincolata di una funzione di piu variabili 2 3 % Matrici per indicare i vincoli lineari di disuguaglianza Ax<=b 4 A = [-1-2 -2; 1 2 2]; 5 b = [0; 72]; 6 % Punto iniziale dell algoritmo di ottimizzazione 7 x0 = [10; 10; 10]; 8 % Opzioni di minimizzazione 9 options = optimset( LargeScale, off,... % Non sono utilizzati algoritmi Large Scale 10 MaxFunEvals, 1000,... % Numero massimo valutazioni della funzione 11 GradObj, off,... % Gradiente calcolato numericamente 12 TolFun, 1e-9,... % Tolleranza sul valore della funzione 13 TolX, 1e-9,... % Tolleranza sul valore di x 14 TolCon, 1e-6,... % Tolleranza sulla violazione dei vincoli 15 Display, iter... % Visualizzazione risultati a ogni iterazione 16 ); 17 % Minimizzazione vera e propria 18 [xopt, fval, exitflag] = fmincon(@(x) fconstr(x), x0, A, b, [], [], [], [],... 19 @(x) nonlinconstr(x), options) Mauro Gaggero 11

Problema di ottimizzazione vincolata Al prompt dei comandi viene visualizzato il testo seguente: 1 >> esempioconstrained 2 3 Max Line search Directional First- order 4 Iter F- count f( x) constraint steplength derivative optimality Procedure 5 0 4-1000 -22 6 1 9-1587.17-11 0.5 642 584 7 2 13-3323.25 0 1-1.9 e +003 161 8 3 21-3325.4 0 0.0625 108 57.5 Hessian modified 9 4 25-3337.65-1.421 e-014 1-10.7 56.7 10 5 29-3393.66 0 1-34.4 43.8 11 6 33-3436.73 0 1-22.2 37 12 7 37-3452.42 0 1-5.47 20.4 13 8 41-3455.64 0 1-1.37 7.1 14 9 45-3456 0 1-0.0136 0.556 15 10 49-3456 0 1-3.22 e-005 0.0229 16 11 53-3456 0 1-4.06 e-008 0.000684 Hessian modified 17 12 57-3456 0 1-8.15 e-012 9.94 e-006 Hessian modified 18 Optimization terminated: magnitude of directional derivative in search 19 direction less than 2* options. TolFun and maximum constraint violation 20 is less than options.tolcon. 21 Mauro Gaggero 12

22 Active inequalities ( to within options. TolCon = 1e-006): 23 lower upper ineqlin ineqnonlin 24 2 25 xopt = 26 24.0000 27 12.0000 28 12.0000 29 30 fval = 31-3.4560 e +003 32 33 exitflag = 34 5 Alle varie iterazioni del processo di ottimizzazione vengono mostrate diverse informazioni, tra cui il valore della funzione da minimizzare, il valore del gradiente della funzione da minimizzare, e il numero di volte in cui la funzione da minimizzare viene valutata. Mauro Gaggero 13

Problema di ottimizzazione vincolata La procedura di minimizzazione ha fornito come ottimo x = 24 12 12, f(x ) = 3.45 10 3 La procedura è terminata con exitflag pari a 5, ossia a causa del raggiunto limite di tolleranza sulla derivata direzionale e sulla violazione dei vincoli. Esistono altri valori che exitflag può assumere, corrispondenti ad altre condizioni che hanno interrotto la procedura di ricerca del minimo. Mauro Gaggero 14