Ottimizzare
Ottimizzare o risolvere equazioni in Live Editor
Descrizione
L'attività Optimize (Ottimizza) consente di scegliere tra due modalità per ottimizzare i problemi o per risolvere sistemi di equazioni non lineari in modo interattivo:
Basata sui problemi (consigliata): creare variabili simboliche di ottimizzazione ed espressioni per rappresentare la funzione obiettivo e i vincoli o le equazioni.
Basata sul risolutore: rappresentare la funzione obiettivo e i vincoli o le equazioni utilizzando il codice standard di MATLAB®.
L'attività genera automaticamente codice MATLAB per lo script live.
Utilizzando la versione basata sui problemi di questa attività, è possibile:
Specificare gli array delle variabili di ottimizzazione, compresi i loro limiti e i valori iniziali.
Specificare il tipo di problema: minimizzazione, massimizzazione, fattibilità o risoluzione di equazioni.
Specificare le funzioni obiettivo e di vincolo, scrivendo le espressioni oppure selezionandole dall'elenco delle funzioni disponibili.
Scegliere, opzionalmente, un risolutore e specificare le opzioni non predefinite.
Eseguire l'ottimizzazione.
Utilizzando la versione basata sul risolutore di questa attività, è possibile:
Scegliere un risolutore in base alle caratteristiche del problema. Se si dispone di Global Optimization Toolbox, è possibile scegliere di utilizzare anche i relativi risolutori.
Specificare le funzioni obiettivo e di vincolo, scrivendo le funzioni oppure selezionandole dall'elenco delle funzioni disponibili.
Specificare le opzioni del risolutore.
Eseguire l'ottimizzazione.
Per iniziare ad utilizzare Optimize (Ottimizza), vedere Get Started with Solver-Based Optimize Live Editor Task e Introduzione a Optimize task di Live Editor basato sui problemi. Per suggerimenti su come utilizzare Optimize (Ottimizza), vedere Use Solver-Based Optimize Live Editor Task Effectively o Use Problem-Based Optimize Live Editor Task Effectively. Al momento non è possibile utilizzare i risolutori fseminf, GlobalSearch o MultiStart con Optimize (Ottimizza).
Per informazioni generali sulle attività di Live Editor, vedere Add Interactive Tasks to a Live Script.
Apri l'attività
Per aggiungere Optimize task a uno script live nell'Editor di MATLAB, nella scheda Insert in Live Editor, selezionare Task > Optimize.

In alternativa, in un blocco di codice all'interno dello script, digitare una parola chiave pertinente, come optim o fmincon. Selezionare Optimize tra i suggerimenti di completamento del comando.

Dopo aver inserito l'attività, selezionare Problem-based (recommended) o Solver-based.
Esempi
- Get Started with Solver-Based Optimize Live Editor Task
- Introduzione a Optimize task di Live Editor basato sui problemi
- Constrained Nonlinear Problem Using Optimize Live Editor Task or Solver
- Feasibility Using Problem-Based Optimize Live Editor Task
- Optimize Live Editor Task with fmincon Solver
- Optimize Live Editor Task with lsqlin Solver
- Optimize Using the GPS Algorithm (Global Optimization Toolbox)
- Minimize Function with Many Local Minima (Global Optimization Toolbox)
- Pareto Front for Two Objectives (Global Optimization Toolbox)
- Use Problem-Based Optimize Live Editor Task Effectively
- Use Solver-Based Optimize Live Editor Task Effectively
- Impostazione di un problema di ottimizzazione basato sul risolutore
- How to Use the Solver-Based Optimize Live Editor Task
- How to Use the Problem-Based Optimize Live Editor Task
Parametri
Limitazioni
Al momento, Optimize (Ottimizza) presenta le seguenti limitazioni per l'ottimizzazione multiobiettivo.
È necessario specificare le funzioni obiettivo utilizzando un'unica funzione con più output. In altre parole, la funzione obiettivo deve restituire un vettore di valori, con una voce per ciascun obiettivo.
Tutte le funzioni obiettivo devono utilizzare lo stesso orientamento: minimizzazione per l'attività basata sul risolutore e minimizzazione o massimizzazione per l'attività basata sui problemi.
Suggerimenti
Per le funzioni con input aggiuntivi, le attività Optimize (Ottimizza) basate sul risolutore e quelle basate sui problemi presentano requisiti leggermente diversi.
Basate sul risolutore: scegliere la variabile di ottimizzazione e specificare quali variabili del workspace contengono gli input di dati fissi. Ad esempio, vedere Place Optimization Variables in One Vector and Data in Other Variables, che contiene tre input della funzione:

Optimize (Ottimizza) genera codice solo dopo che sono stati specificati tutti gli input della funzione.
Basate sui problemi: specificare il nome di una variabile di ottimizzazione o di una variabile del workspace per ciascun input della funzione. Se il nome di un argomento di input nella firma della funzione corrisponde al nome della variabile di ottimizzazione o del workspace già esistente, Optimize (Ottimizza) seleziona automaticamente quel nome.

Optimize (Ottimizza) genera codice solo dopo che sono stati specificati tutti gli input della funzione.
Optimize (Ottimizza) non è in grado di analizzare una funzione contenente l'input
varargino una funzione che contiene un errore.Se si seleziona una funzione da un file, Optimize (Ottimizza) aggiunge la posizione del file al percorso di MATLAB.
Se Optimize (Ottimizza) presenta un errore di analisi o se più funzioni locali hanno lo stesso nome, l'elenco delle funzioni locali disponibili è vuoto.
Cronologia versioni
Introdotto in R2020bVedi anche
App
Funzioni
fmincon|intlinprog|surrogateopt(Global Optimization Toolbox) |patternsearch(Global Optimization Toolbox)
