Esempio: oscillazione armonica smorzata nei circuiti
Si consideri un semplice circuito elettrico che contiene un resistore R, un induttore L e un condensatore C.
Utilizzare equazioni differenziali per modellare la carica Q nel condensatore C, quindi utilizzare le funzioni del solutore ODE per trovare altre soluzioni approssimate. Confrontare infine i risultati con la soluzione esatta di Q.
Utilizzo delle equazioni differenziali
1. Scrivere un'equazione differenziale per la tensione dei tre componenti, la cui somma deve essere uguale a zero:
2. Scrivere l'equazione differenziale per la variazione istantanea della carica Q del condensatore C:
3. Definire la carica Q al tempo zero:
4. Presupporre i seguenti valori dei parametri di input:
5. Trasformare l'equazione differenziale nella forma standard.
6. Risolvere l'equazione per tutti i casi di a e b:
7. Tracciare i grafici delle due possibili soluzioni per Q.
Quando a=b, la carica Q1 scende rapidamente a zero, mentre quando a è diverso da b oscilla per molto tempo prima di arrivare a zero.
Prima di utilizzare i solutori ODE
• Definire i parametri che verranno passati alle funzioni del solutore ODE:
• I solutori di equazioni ODE possono essere di due tipi, ovvero solutori per sistemi stiff e solutori per sistemi non stiff. Un sistema di equazioni ODE in forma matriciale, ad esempio y' = Ax, è denominato stiff se la matrice A è quasi singolare. In caso contrario, il sistema è detto non stiff.
• La differenza tra sistemi stiff e non stiff può essere correlata alle scale della dinamica intrinseca della matrice A, caratterizzate dai rispettivi autovalori. Una matrice con autovalori molto distribuiti (o con valori che vanno da troppo piccoli a troppo grandi) è in genere un sistema stiff.
• In base ai parametri di sistema specificati, questo semplice esempio di oscillazione armonica smorzata rappresenta un sistema non stiff.
• Le funzioni Adams, AdamsBDF, BDF e Radau possono ricevere un valore specifico di TOL o utilizzare il proprio valore TOL di default, ovvero10-5.
Utilizzo dei solutori ODE per sistemi non stiff
Utilizzare i solutori ODE per sistemi non stiff per trovare le soluzioni approssimate, quindi confrontare i risultati con la soluzione esatta di Q.
1. Adams
2. rkfixed
3. Rkadapt
4. Bulstoer
Utilizzo dei solutori ODE per sistemi stiff
Utilizzare i solutori ODE per sistemi stiff per trovare le soluzioni approssimate, quindi confrontare i risultati con la soluzione esatta di Q.
1. BDF
2. Radau
Utilizzo del solutore ODE ibrido
Utilizzare il solutore ODE ibrido AdamsBDF, che determina se un sistema è stiff o non stiff e chiama rispettivamente Adams o BDF, per trovare le soluzioni approssimate, quindi confrontare i risultati con la soluzione esatta di Q.
1. AdamsBDF
Conclusione
• Nell'ambito dei solutori ODE per sistemi non stiff, le funzioni Adams e rkfixed restituiscono rispettivamente le soluzioni con l'errore minore e maggiore.
• Nell'ambito dei solutori ODE per sistemi stiff, le funzioni Radau e BDF restituiscono rispettivamente le soluzioni con l'errore minore e maggiore.
• La funzione ibrida AdamsBDF restituisce un valore più piccolo di entrambi i valori restituiti da Adams o BDF.
• In generale le funzioni Radau e rkfixed restituiscono, rispettivamente, le soluzioni con l'errore minore e maggiore.
Confronto dei risultati
1. Tracciare i grafici delle soluzioni restituite dai solutori ODE per sistemi non stiff con gli errori minore (Adams, G0nss) e maggiore (rkfixed, G1nss):
La differenza tra le due soluzioni restituite è notevole rispetto a Q.
2. Tracciare i grafici delle soluzioni restituite dai solutori ODE per sistemi stiff con gli errori minore (Radau, G1ss) e maggiore (BDF, G0ss):
Le due soluzioni sembrano identiche rispetto a Q.
3. Tracciare i grafici delle soluzioni che hanno prodotto gli errori minore (Radau, G1ss) e maggiore (rkfixed, G1nss) restituite dai solutori ODE per sistemi stiff e non stiff:
La migliore approssimazione alla soluzione di Q è quella restituita dalla funzione Radau, un solutore per sistemi stiff.