Próbuję zrozumieć niektóre wyniki i doceniłbym kilka ogólnych uwag na temat rozwiązywania problemów nieliniowych.
Równanie Fishera (nieliniowe PDE z dyfuzją reakcyjną),
w formie dyskretnej,
gdzie jest operatorem różnicowym, a to szablon dyskretyzacji.
metoda
Chcę zastosować system domyślny, ponieważ potrzebuję stabilności i nieograniczonego czasu. W tym celu używam metody , (zauważ, że daje w pełni niejawny schemat, a daje schemat trapezoidalny lub „Crank-Nicolson”),
Jednak w przypadku problemów nieliniowych nie można tego zrobić, ponieważ równania nie można zapisać w postaci liniowej.
Aby obejść ten problem, badałem dwa podejścia numeryczne,
Metoda IMEX
Najbardziej oczywistą drogą jest zignorowanie nieliniowej części terminu reakcji i po prostu zaktualizowanie terminu reakcji z najlepszą możliwą wartością, tj. Tą z poprzedniego etapu czasowego. Wynikiem tego jest metoda IMEX.
Solver Newtona
Równanie pełnej -method można rozwiązać za pomocą iteracji Newtona-Raphsona, aby znaleźć zmienną przyszłego rozwiązania. Gdzie jest indeksem iteracji ( ), a jest jakobską macierzą . W tym przypadku używam symboli dla zmiennych iteracyjnych, tak że różnią się one od rozwiązania równania w punkcie czasu rzeczywistego . W rzeczywistości jest to zmodyfikowany solver Newtona, ponieważ jakobian nie jest aktualizowany przy każdej iteracji.k k ≥ 0 A n F ( w n ) ν k u n
Wyniki
Powyższe wyniki są obliczane dla stosunkowo dużego kroku czasowego i pokazują różnicę między podejściem krokowym a pełnym rozwiązaniem iteracyjnym Newtona.
Czego nie rozumiem:
Dziwi mnie, że metoda skokowa czasu działa „OK”, ale z czasem pozostaje w tyle za rozwiązaniem analitycznym. ( Uwaga: jeśli wybrałem mniejszy krok czasowy, wówczas podejście krokowe daje wyniki zamknięte dla modelu analitycznego). Dlaczego podejście krokowe daje rozsądne wyniki równania nieliniowego?
Model Newtona ma się znacznie lepiej, ale z czasem zaczyna przewodzić modelowi analitycznemu. Dlaczego dokładność podejścia Newtona zmniejsza się z czasem? Czy można poprawić dokładność?
Dlaczego istnieje ogólna cecha, że po wielu iteracjach model numeryczny i model analityczny zaczynają się różnić? Czy to tylko dlatego, że przedział czasowy jest zbyt duży, czy zawsze tak się stanie?