Funzioni > Soluzione e ottimizzazione > Algoritmi di soluzione > Scelta di un algoritmo di soluzione
Scelta di un algoritmo di soluzione
È possibile scegliere un algoritmo di soluzione per le funzioni Find, Minerr, Minimize, Maximize, Pdesolve, Odesolve, numol, genfit e polyroots, nonché per gli integrali definiti.
Per visualizzare l'algoritmo, fare clic con il pulsante destro del mouse sul nome della funzione o sull'operatore integrale.
Per modificare l'algoritmo di soluzione, selezionare un algoritmo dall'elenco.
Selezione dell'algoritmo per integrali definiti 
Di seguito sono indicati i metodi di integrazione numerica disponibili.
Romberg - Applicabile alla maggior parte degli integrali. Utilizza approssimazioni trapezoidali su un numero pari di sottointervalli; quindi confronta stime sequenziali sommando le aree dei trapezi.
Adattivo - Applicabile a funzioni che cambiano rapidamente nell'intervallo di integrazione. Noto anche come metodo di quadratura adattiva.
Limite infinito - Applicabile a integrali in cui uno o entrambi i limiti sono infiniti. La funzione da integrare deve essere reale.
Punto finale singolare - Applicabile agli integrali con una singolarità o un infinito in uno o entrambi i limiti di integrazione. Noto anche come metodo di Romberg aperto.
Informazioni aggiuntive:
La selezione dell'algoritmo è disponibile solo per gli integrali definiti.
Se almeno uno dei limiti integrali è maggiore del valore assoluto di 10^307, o se è un infinito, Selezione automatica utilizza il metodo Limite infinito come algoritmo di soluzione. Per gli altri casi, viene utilizzato il metodo Adattativo.
Selezione dell'algoritmo per Find, Minerr, Minimize e Maximize 
Per Find e Minerr, l'algoritmo di default utilizzato da Selezione automatica è il metodo Non lineare: Levenberg-Marquardt.
Per Minimize e Maximize, Selezione automatica tenterà automaticamente più algoritmi finché il problema non sarà risolto. L'operazione avrà esito negativo solo se il problema non può essere risolto tramite nessuno degli algoritmi.
Lineare - Applicabile quando il problema ha una struttura lineare, ovvero funzioni obiettivo con tutti i vincoli. Questo algoritmo fornisce risultati rapidi e precisi.
Non lineare: Levenberg-Marquardt - Tenta di trovare gli zeri degli errori nei vincoli. Se non vengono trovati zeri, il metodo minimizza la somma dei quadrati degli errori nei vincoli. Questo algoritmo non è disponibile per le funzioni Minimize e Maximize.
Non lineare: gradiente coniugato - Fattorizza una matrice di proiezione e applica il metodo del gradiente coniugato per minimizzare approssimativamente un modello quadratico del problema della barriera.
Non lineare: SQP - Questo metodo di insieme attivo risolve una sequenza di sottoproblemi di programmazione quadratica per trovare la soluzione.
Non lineare: punto interno - Questo metodo sostituisce il problema di programmazione non lineare con una serie di sottoproblemi barriera controllati da un parametro barriera.
Non lineare: insieme attivo -I metodi di insieme attivo risolvono una sequenza di sottoproblemi basati su un modello quadratico del problema originale.
È possibile utilizzare opzioni avanzate aggiuntive per Minimize, Maximize, Find e Minerr. Le opzioni disponibili sono Multistart e Ottimizza. Ulteriori informazioni sulle Opzioni di soluzione avanzate. Per Minimize e Maximize è possibile utilizzare anche la soluzione avanzata con derivate.
Risoluzione dei problemi:
Provare un metodo diverso. Per il problema che si sta tentando di risolvere, un metodo particolare potrebbe funzionare meglio o peggio degli altri.
Provare un valore ipotizzato diverso o aggiungere un vincolo di disuguaglianza. Se si sta cercando una soluzione complessa, fornire un valore ipotizzato complesso.
Utilizzare Minerr anziché Find per raggiungere una soluzione approssimata.
Provare un valore diverso per TOL o CTOL.
Per i sistemi che prevedono più di una soluzione, la soluzione restituita dipende dai valori ipotizzati. È possibile aggiungere disuguaglianze per forzare il solutore a trovare una soluzione diversa.
Selezione dell'algoritmo per Pdesolve e numol 
Per Pdesolve e numol, l'algoritmo di soluzione di default è Differenze a 5 punti ricorsive. Tutti gli algoritmi elaborano la soluzione utilizzando il metodo Radau.
Polinomiale - Utilizza approssimazioni polinomiali delle derivate spaziali del primo e del secondo ordine per ridurre il sistema PDE a un sistema ODE in base alla variabiletime.
Differenze centrali - Utilizza approssimazioni di differenze centrali delle derivate spaziali del primo ordine con applicazione ricorsiva per le derivate spaziali del secondo ordine per ridurre il sistema PDE a un sistema ODE in base alla variabile time.
Differenze a 5 punti - Utilizza approssimazioni di differenze a 5 punti delle derivate spaziali del primo ordine con approssimazione separata per le derivate spaziali del secondo ordine per ridurre il sistema PDE a un sistema ODE in base alla variabile time.
Differenze a 5 punti ricorsive - Utilizza approssimazioni di differenze a 5 punti delle derivate spaziali del primo ordine con applicazione ricorsiva per le derivate spaziali del secondo ordine per ridurre il sistema PDE a un sistema ODE in base alla variabile time.
Selezione dell'algoritmo per Odesolve 
Adams/BDF (default) - Per i sistemi di tipo non stiff, Odesolve chiama il solutore Adams che utilizza i metodi Adams-Bashforth. Se Odesolve rileva che il sistema ODE è di tipo stiff, passa al solutore BDF (Backward Differentiation Formula).
Fixed - Chiama il solutore rkfixed che utilizza un metodo di Runge-Kutta a passo fisso.
Adattativo - Chiama il solutore Rkadapt che utilizza un metodo di Runge-Kutta con dimensione di passo adattiva.
Radau - Per i sistemi di tipo stiff o con vincoli algebrici, Odesolve chiama il solutore Radau.
Fare riferimento agli algoritmi di soluzione ODE.
Selezione dell'algoritmo per genfit 
Levenberg-Marquardt ottimizzato (default) - Questa versione ottimizzata del metodo di Levenberg-Marquardt per la minimizzazione è spesso più veloce e meno sensibile a valori ipotizzati imprecisi ed è più sensibile agli errori nelle derivate algebriche fornite.
Levenberg-Marquardt - Questo metodo di minimizzazione viene utilizzato per risolvere problemi ai minimi quadrati non lineari. Questo metodo dovrebbe essere utilizzato con genfit per un funzionamento corretto e valori ipotizzati accurati.
Selezione dell'algoritmo per polyroots 
LaGuerre (default) - Questo metodo è iterativo e ricerca le soluzioni nel piano complesso.
Matrice compagna - Questo metodo converte le equazioni in un problema di autovalori.
È stato utile?