Strang bölünmesinin optimal kullanımı (reaksiyon difüzyon denklemi için)


9

Basit bir 1D reaksiyon difüzyon denklemine çözümü hesaplarken garip bir gözlem yaptım:

ta=2x2aab

tb=ab

tc=a

Başlangıç değeri sabit (bir ) ve sadece üzerinde integrali ilgilendiğim mesafede ile ( ). Amacı, ve denklem sadece bu integrali değerlendirmektir.bb(0,x)=b0a0101a(t,x)dtctc=a

Difüzyon ve reaksiyon arasındaki bağlantı için bir Strang yarma şeması kullandım (yarım adım reaksiyon, sonra tam adım difüzyon ve sonra tekrar yarım adım reaksiyon), difüzyon için bir Krank Nicholson şeması ve reaksiyon için analitik bir çözüm ( ) denklemini içerir .tc=a

Analitik çözeltinin bir adımı, Crank Nicholson şemasının bir adımından daha yavaş bir faktör 3'ten daha fazla olduğu için, her reaksiyon adımı için birden fazla Krank Nicholson adımı yapmaya çalıştım. Genel olarak daha hızlı olacağım için Strang yarma planının daha az adımını atmayı umuyordum.

Bununla birlikte, ters etki gözlenebilir, yani birden fazla Krank Nicholson adımı kullanılırsa Strang yarma şeması için çok daha fazla adım gereklidir. (Ben sadece üzerinde integral doğrulukla endişeleniyorum oranda daha hızlı yakınsama görünüyor, kendisi.) Bir süredir merak sonra, aynı etki de için olur fark ve bu dava için nedenini bile anlıyorum. Mesele şu ki, tam olarak bir Crank Nicholson adımı yaparsam, genel şema yamuk bir kurala dönüşür ( ).aab(t,x)=b0=0b(t)=0

Bu yüzden a'yı difüzyon adımının parçası olarak ele alırsam, Crank Nicholson adımlarının sayısını arttırmak (muhtemelen) genel doğruluğun azalmasına (gözlemlendiği gibi) yol açmaz. Ancak bu, sistemin (doğrusal olmayan ve potansiyel olarak çok sert) reaksiyon kısmı için analitik bir çözüm kullanma amacını ortadan kaldırıyor gibi görünüyor.tc=a

Yani benim sorum: a'yı bir Strang bölünmesi bağlamında, reaksiyon adımının bir parçası olarak tedavi etmekten veya tedavi etmekten daha iyi bir yol var mı? difüzyon adımının bir parçası olarak. Difüzyon için tam olarak bir Crank Nicholson adımı kullanmaya "zorlanmak" olmaktan kaçınmak istiyorum. (Örneğin 3D'de, difüzyonu Crank Nicholson kullanmak yerine bir FFT ile analitik olarak çözmeyi tercih ederim. Tabii ki FFT'yi Crank Nicholson ile de birleştirebilirim, bu yüzden bu kadar önemli değil.)tc=a


In people.maths.ox.ac.uk/dellar/OperatorLB.html benzer bir etki tarif gibi görünüyor. Sonuç, tam çözüm yerine Crank Nicholson'un kullanılması çok önemlidir. Belki de sorumun cevabı basit bir hayır.
Thomas Klimpel

Denklemlerinizde bir şeyler yanlış görünüyor. ilk iki birleştirme tek yol yapım ve hesaplayabilirdi yani görünmez herhangi birinde sonrası işlem basamağı olarak sağlanabilir. cct
Bill Barth

@BillBarth ben rolünü açıklığa kavuşturmak için soru değişti . Yani sadece yi hesaplamanın bir yoludur . Bu integrali nasıl hesaplayacağınız konusunda herhangi bir öneriniz varsa (muhtemelen yukarıda açıklanan Strang yarma ve Crank Nicholson kombinasyonundan elde ettiğimden) potansiyel olarak bir işlem sonrası adımı kullanarak bana bildirin. cc01a(t,x)dt
Thomas Klimpel

Bu artık uzun bir zaman geçti, ama bu denklem sisteminin bir üstel reaksiyon terimi ile parabolik bir PDE olarak yazılabileceğini biliyor muydunuz ? Sanırım basitleştirilmiş bir sistem yerine bu 3 değişkenli sistemi gerçekten çözmek isteyip istemediğinizi merak ediyorum. c
Bill Barth

@BillBarth Bu sistemin üstel bir reaksiyon terimi ile nasıl parabolik bir PDE olarak yazılabileceğini öğrenmek isterim. Bu modelin çözümünün hızı, model kalibrasyonu sırasında (birkaç saat sürebilir) sınırlayıcı bir faktördür, ancak zaman entegrasyonuna ilişkin kullanılan doğruluk tam yakınsamadan oldukça uzaktır.
Thomas Klimpel

Yanıtlar:


6

Soruyu doğrudan cevaplamasa da bunu bir cevap olarak yazacağım.

İkinci denklemi ve üçüncü denklemi birinciye takıp üçüncüyü ikincisine takmak birlikte: Bu ikisinin yeniden düzenlenmesi şunları sağlar: Şimdi, bunların her ikisini de bir kez entegre edebiliriz . ilk denklem:

2ct2=2x2ct+btbt=(ct)b
t(ct2cx2b)=01b(bt)=ct
t
ct2cx2=b+A(x)
Üçüncü denklemi kullanarak entegrasyonun "sabitini" ifade edebiliriz olarak . İkinci denklem biraz daha zor. Biraz yeniden : çözeltisine Bu yol açar ya da Exponentiating verir: son olarak ve, için PDE içine bu takıp verir A(x)=a02c0x2b0
0t1b(x,t)(b(x,t)t)dt=0tc(x,t)tdt
lnb(x,t)lnb0(x)=c(x)+c0(x)
lnbb0=c+c0
b=b0ec0c
c
ct2cx2=b0ec0c+A(x)

Değiştirme ile , veya eşdeğer başlangıç koşulları kullanılarak , bu denklem basitleştirir için Şimdi, bu denklemi çözmenin en iyi yolu hakkında önemli literatür bulabilmelisiniz. Crank-Nicholson'un üstel terim için iyi bir seçim olup olmadığını bilmiyorum, ancak makul görünüyor. Muhtemelen her yerde çözülmesinin hızlı bir şekilde patlayabileceğine dikkat edilmelidir .ccc0c0(x)=0

ct=2cx2+a0(1ec)b0
c>c0

Bu türevden sadece iki kez geçtim, bu yüzden bir veya iki hata olabilir, ancak bana doğru bir his veriyor. Her yerde ise, bu doğru bir çözümdür ve aksi takdirde makul bir sahiptir.b0=0

Bunu olana kadar çözmek ve değerlerini değerlendirmek aradığınız cevabı vermelidir.t=1c(x,1)


Bu cevap için çok teşekkürler. Oldukça aydınlatıcı buluyorum, en azından çözümün davranışını anlamamı / tahmin etmemi kolaylaştırıyor. Diğer bir avantajı zaman evrim olmasıdır zamanla değişimine daha yavaştır ben yakınsama daha iyi eskisinden daha olacağı oldukça iyimserim yüzden. ca
Thomas Klimpel

Sorun değil. İlk yorum alışverişimizden sonra bana sallanıyordum. Umarım faydalıdır.
Bill Barth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.