Podczas obliczania rozwiązania prostego równania dyfuzji reakcji 1D dokonałem dziwnej obserwacji:
Początkowa wartość jest stały ( ) i mi zainteresowanych tylko całka od do ( ). Celem i równania jest po prostu ocena tej całki.
Użyłem schematu podziału Strang do sprzęgania między dyfuzją a reakcją (reakcja półetapowa, następnie dyfuzja pełnego etapu, a następnie reakcja półetapowa), schematu Crank Nicholsona dla dyfuzji i roztworu analitycznego dla reakcji ( w tym równanie ).
Ponieważ jeden krok roztworu analitycznego był ponad 3-krotnie wolniejszy niż jeden krok schematu Crank Nicholson, próbowałem wykonać więcej niż jeden krok Crank Nicholson dla każdego etapu reakcji. Miałem nadzieję, że uda mi się obejść z mniejszym krokiem schematu podziału Strang, dzięki czemu ogólnie będę szybszy.
Można jednak zaobserwować efekt odwrotny, a mianowicie, że wymagany jest znacznie więcej kroków w schemacie podziału Strang, jeśli stosuje się więcej niż jeden krok Crank Nicholsona. (Ja wyłącznie o dokładności całkę , który wydaje się jakby szybciej niż sam). Po zastanawiać, przez pewien czas, to zauważyć, że ten sam efekt, także zdarza się na i że nawet rozumiem, dlaczego w tym przypadku. Chodzi o to, że jeśli zrobię dokładnie jeden krok Crank Nicholsona, wówczas ogólny schemat zamieni się w regułę trapezoidalną (jeśli ).
Więc gdybym traktował jako część etapu dyfuzji, zwiększenie liczby kroków Crank Nicholsona (prawdopodobnie) nie doprowadziłoby do zmniejszenia ogólnej dokładności (jak zaobserwowano). Wydaje się jednak, że pokonuje to cel zastosowania rozwiązania analitycznego dla (nieliniowej i potencjalnie bardzo sztywnej) części reakcyjnej układu.
Oto moje pytanie: czy istnieje lepszy sposób leczenia w kontekście podziału Strang, niż traktowanie go jako części etapu reakcji lub leczenia jako część etapu dyfuzji. Chcę uniknąć „zmuszania” do użycia dokładnie jednego kroku Crank Nicholson do dyfuzji. (Na przykład w 3D wolałbym analitycznie rozwiązać dyfuzję za pomocą FFT zamiast używać Cranka Nicholsona. Oczywiście mogę również łączyć FFT z Crankiem Nicholsonem, więc nie jest to taka wielka sprawa.)
źródło
Odpowiedzi:
Zamierzam napisać to jako odpowiedź, chociaż nie odpowiada bezpośrednio na pytanie.
Podłączając drugie równanie i trzecie równanie do pierwszego i podłączając trzecie równanie do drugiego, razem daj: Zmiana kolejności tych dwóch daje: Teraz możemy zintegrować oba z nich raz w , pozostawiając pierwsze równanie:
Zastępując przez lub równoważnie stosując warunki początkowe , to równanie upraszcza do Teraz powinieneś być w stanie znaleźć znaczną literaturę na temat najlepszego sposobu rozwiązania tego równania. Nie wiem, czy Crank-Nicholson jest dobrym wyborem dla wykładniczego terminu, ale wydaje się prawdopodobne. Prawdopodobnie należy starań, aby zagwarantować, że wszędzie lub rozwiązanie może szybko .c c−c0 c0(x)=0
Przeszedłem przez to wyprowadzenie tylko dwa razy, więc może być w nim błąd lub dwa, ale ma to dla mnie właściwy charakter. Jeśli wszędzie, to jest to oczywiście właściwe rozwiązanie, a poza tym ma powiew prawdopodobieństwa.b0=0
Rozwiązanie tego do i oszacowanie powinno dać odpowiedź, której szukasz.t=1 c(x,1)
źródło