Sto cercando di capire alcuni risultati e apprezzerei alcuni commenti generali sulla lotta ai problemi non lineari.
Equazione di Fisher (una PDE non lineare di reazione-diffusione),
in forma discreta,
dove è l'operatore differenziale e è lo stencil di discretizzazione.
Metodo
Desidero applicare uno schema implicito perché ho bisogno di stabilità e di tempi illimitati. A questo scopo sto usando il metodo (nota che fornisce uno schema completamente implicito e dà lo schema trapezoidale o "Crank-Nicolson"),
Tuttavia, per problemi non lineari questo non può essere fatto perché l'equazione non può essere scritta in una forma lineare.
Per aggirare questo problema ho esplorato due approcci numerici,
Metodo IMEX
La via più ovvia è ignorare la parte non lineare del termine di reazione e semplicemente aggiornare il termine di reazione con il miglior valore possibile, cioè quello della fase temporale precedente. Ciò comporta il metodo IMEX.
Risolutore di Newton
L' equazione del metodo completa può essere risolta usando l'iterazione di Newton-Raphson per trovare la futura variabile di soluzione. Dove è l'indice di iterazione ( ) e è la matrice giacobina di . Qui uso i simboli per le variabili di iterazione in modo tale che si distinguano dalla soluzione dell'equazione in un punto in tempo reale . Questo è in realtà un risolutore Newton modificato perché Jacobian non viene aggiornato con ogni iterazione.k k ≥ 0 A n F ( w n ) ν k u n
risultati
I risultati sopra riportati sono calcolati per un intervallo di tempo ragionevolmente ampio e mostrano la differenza tra l'approccio di stepping temporale e un solutore di iterazioni di Newton completo.
Cose che non capisco:
Sono sorpreso che il metodo del time stepping faccia "OK", ma alla fine è in ritardo rispetto alla soluzione analitica col passare del tempo. ( NB se avessi scelto un passo temporale più piccolo, l'approccio del passo temporale dà risultati chiusi al modello analitico). Perché l'approccio time-stepping dà risultati ragionevoli a un'equazione non lineare?
Il modello di Newton fa molto meglio, ma inizia a guidare il modello analitico col passare del tempo. Perché l'accuratezza dell'approccio di Newton diminuisce nel tempo? È possibile migliorare la precisione?
Perché c'è una caratteristica generale che dopo molte iterazioni poi il modello numerico e il modello analitico iniziano a divergere? È solo perché il passo temporale è troppo grande o accadrà sempre?