Il Toolbox di ottimizzazione di Matlab. Mauro Gaggero

Похожие документы
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

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

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

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

Le derivate parziali

Massimi e minimi vincolati

Parte V: Rilassamento Lagrangiano

Algoritmo di Branch & Bound

Regressione non lineare con un modello neurale feedforward

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.

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

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

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

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

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

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

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

Laboratorio 3. Integrazione numerica

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

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

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

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

Транскрипт:

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