Riepilogo delle opzioni ODE
La risoluzione delle ODE richiede spesso la sincronizzazione dei parametri, la regolazione delle tolleranze di errore o il trasferimento di informazioni supplementari al risolutore. Questo argomento mostra come specificare le opzioni per le funzioni del risolutore (ode45, ode15s e così via) e con quali risolutori di equazioni differenziali ciascuna opzione è compatibile.
Sintassi delle opzioni
Utilizzare la funzione odeset per creare una struttura di opzioni da passare al risolutore come quarto argomento di input. Ad esempio, per regolare le tolleranze di errore relative e assolute:
opts = odeset(RelTol=1e-2,AbsTol=1e-5); [t,y] = ode45(@odefun,tspan,y0,opts);
Se si utilizza il comando odeset senza alcun input, MATLAB® visualizza un elenco dei valori possibili per ciascuna opzione, con i valori predefiniti indicati da parentesi graffe {}.
La funzione odeget esegue query sul valore di un'opzione in una struttura esistente, che è possibile utilizzare per modificare dinamicamente i valori delle opzioni in base alle condizioni. Ad esempio, questo codice rileva se Stats è impostato su "on" e modifica il valore se necessario:
if isempty(odeget(opts,"Stats")) odeset(opts,Stats="on") end
Compatibilità delle opzioni con ciascun risolutore
Alcune opzioni in odeset sono generiche e compatibili con qualsiasi risolutore, mentre altre sono specifiche per il risolutore. Questa tabella riepiloga la compatibilità di ciascuna opzione con i diversi risolutori.
| Gruppo opzioni | Opzione | ode45 | ode23 | ode78 | ode89 | ode113 | ode15s | ode23s | ode23t | ode23tb | ode15i |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Controllo degli errori | RelTol |
|
|
|
|
|
|
|
|
|
|
AbsTol |
|
|
|
|
|
|
|
|
|
| |
NormControl |
|
|
|
|
|
|
|
|
|
| |
| Output del risolutore | NonNegative |
|
|
|
|
|
|
|
|
|
|
OutputFcn |
|
|
|
|
|
|
|
|
|
| |
OutputSel |
|
|
|
|
|
|
|
|
|
| |
Refine |
|
|
|
|
|
|
|
|
|
| |
Stats |
|
|
|
|
|
|
|
|
|
| |
| Dimensione del passo | InitialStep |
|
|
|
|
|
|
|
|
|
|
MaxStep |
|
|
|
|
|
|
|
|
|
| |
MinStep |
|
|
|
|
|
|
|
|
|
| |
| Posizione dell'evento | Events |
|
|
|
|
|
|
|
|
|
|
| Matrice jacobiana | Jacobian |
|
|
|
|
|
|
|
|
|
|
JPattern |
|
|
|
|
|
|
|
|
|
| |
Vectorized |
|
|
|
|
|
|
|
|
|
| |
| Matrice di massa e DAE | Mass |
|
|
|
|
|
|
|
|
|
|
MStateDependence |
|
|
|
|
|
|
|
|
|
| |
MvPattern |
|
|
|
|
|
|
|
|
|
| |
MassSingular |
|
|
|
|
|
|
|
|
|
| |
InitialSlope |
|
|
|
|
|
|
|
|
|
| |
Opzioni dell'algoritmo per ode15s e ode15i | MaxOrder |
|
|
|
|
|
|
|
|
|
|
BDF |
|
|
|
|
|
|
|
|
|
|
* Utilizzare il parametro NonNegative con ode15s, ode23t e ode23tb solo per quei problemi in cui non è presente una matrice di massa.
** La funzione eventi per ode15i deve accettare un terzo argomento di input per yp.
Esempi di utilizzo
MATLAB include numerosi file di esempio che mostrano come utilizzare le varie opzioni. Ad esempio, digitare edit ballode per vedere un esempio che utilizza 'Events' per specificare una funzione eventi, oppure edit batonode per vedere un esempio che utilizza 'Mass' per specificare una matrice di massa. Per un riepilogo completo dei file di esempio e delle opzioni utilizzate, vedere Summary of ODE Examples and Files.