Sabit sayıda RHS değerlendirmesi için en uygun ODE yöntemi


14

Uygulamada, bir IVP ˙ x ( t ) = f ( t , x ( t ) ) sayısal olarak çözülme süresi x ( t 0 ) = x 0 genellikle sağ taraftaki (ST) değerlendirme süresi hakimdir f . Bu nedenle, diğer tüm işlemlerin anında (yani hesaplama maliyeti olmadan) olduğunu varsayalım. IVP'yi çözmek için toplam çalışma süresi sınırlıysa, bu f'nin değerlendirme sayısınıbazı N N ile sınırlamaya eşdeğerdir.

x˙(t)=f(t,x(t)) for t[t0,t1]
x(t0)=x0
ffNN

Sadece nihai değer olan ilgileniyoruz .x(t1)

Böyle bir ortamda en iyi ODE yöntemini seçmeme yardımcı olacak teorik ve pratik sonuçlar arıyorum.

Örneğin, ise, IVP'yi iki açık Euler genişlik aşamasını ( t 1 - t 0 ) / 2 kullanarak veya t 1 - t 0 genişliğinin bir adımını orta nokta yöntemini kullanarak çözebiliriz . Hangisinin tercih edileceği hemen belli değil. Daha büyük N için , elbette çok adımlı yöntemler, yinelenen Runge-Kutta şemaları vb.N=2(t1t0)/2t1t0N

Aradığım şey, örneğin kareleme kuralları için mevcut olanlara benzer sonuçlardır: Kareleme kuralı n i = 1 w i olacak şekilde ağırlıkları { w i } ve ilişkili noktaları { x i } seçebiliriz g ( x i ) tüm polinomları için kesindir g , öyle ki d , e g ( g ) 2 , n - 1 .n{wi}{xi}i=1nwig(xi)gdeg(g)2n1

Bu nedenle, RHS sınırlı sayıda izin verilen değerlendirmesi göz önüne alındığında, ODE yöntemlerinin küresel doğruluğu üzerinde üst veya alt sınırlar arıyorum . Sınırlar sadece bazı RHS sınıfları için geçerliyse veya çözüm x üzerinde ek kısıtlamalar ortaya koyarsa (sadece belirli bir dereceye kadar polinomları tutan dörtlü kuralın sonucu gibi) sorun değildir.fx

EDIT: Bazı arka plan bilgileri: Bu, zor gerçek zamanlı uygulamalar içindir, yani sonucu , bilinen bir son tarihten önce mevcut olmalıdır. Dolayısıyla baskın maliyet faktörü olarak RHS değerlendirme N sayısı sınırı . Tipik olarak sorunlarımız sert ve nispeten küçüktür.x(t1)N

EDIT2: Ne yazık ki kesin zamanlama gereksinimlerine sahip değilim, ancak oldukça küçük olacağını varsaymak güvenlidir (kesinlikle <100, muhtemelen 10'a daha yakın). Gerçek zamanlı gereksinim göz önüne alındığında, modellerin doğruluğu (RHS'nin daha uzun yürütme sürelerine ve dolayısıyla daha düşük bir N'ye yol açan daha iyi modellerle ) ve ODE yönteminin doğruluğu (daha yüksek gerektiren daha iyi yöntemlerle) arasında bir denge bulmalıyız. N değerleri ).NNN


y=f(x)f(x)

@JM: Bunun farkındayım. Kareleme kurallarını, yalnızca işlev değerlendirme sayısı sınırlı olduğunda belirli bir girdi kümesi için sayısal bir yöntemin doğruluğunu karakterize etmenin bir örneği olarak kullanmayı amaçladım. Bunun dışında "gerçek" ODE'lerle, yani standart entegrasyona indirgenmeyenlerle ilgileniyorum.
Florian Brucker

1
NλN/TTλfx

@DavidKetcheson: Belirli bir sorun için en uygun yöntem yerine belirli bir sorun için uygun bir yöntem seçmek için genel yaklaşımla daha fazla ilgileniyorum. Sertlik ve zamanlama gereksinimlerinde büyük farklılıklar gösteren çok sayıda modelimiz var.
Florian Brucker

f

Yanıtlar:


7

Bence sorunuza cevap vermek için en önemli referans Hosea ve Shampine'nin bu makalesi . Şimdi biraz bilgi vereceğim.

Genel olarak, bir IVP'yi sayısal olarak entegre ederken kullanabileceğiniz adım boyutu, kararlılık veya doğruluk ile kısıtlanabilir. Kararlılık açısından en iyi çözücüyü seçmek istiyorsanız , mutlak kararlılık bölgesini göz önünde bulundurmanız gerekir . Tek adımlı bir yöntem için bu

S={zC:|P(z)|1}.

P(z)λhSλfh

Büyük kararlı adım boyutlarına izin veren (açık) yöntemler bulma sorununun kapsamlı bir tedavisi için , kararlılık polinomları hakkındaki bu makaleme ve sıkıştırılabilir sıvı simülasyonları için Runge-Kutta yöntemlerinin optimizasyonu hakkındaki bu makaleye bakın .

Kararlılık, en büyük kararlı adım boyutunun size yeterli doğruluğu sağladığını tespit ederseniz endişe konusudur. Öte yandan, adım boyutu doğruluk gereksinimlerinizle kısıtlanabilir. Genellikle yapılan yerel hata kontrolüdür. Çözelti iki yöntem kullanılarak hesaplanır ve farkları, daha az doğru olandaki hatanın bir tahmini olarak kullanılır. Adım boyutu, öngörülen toleransı mümkün olduğunca yakından elde etmek için adaptif olarak seçilir.

Doğruluk verimliliğini tahmin etmek için iki teorik önlem önemlidir. Birincisi , adım boyutu azaldığında hatanın sıfıra yaklaşma oranını tarif eden yöntemin doğruluk sırasıdır . İkincisi, hata terimlerinde görünen sabitleri dikkate alan ve aynı sıradaki yöntemler arasında karşılaştırma yapılmasına izin veren doğruluk verimlilik endeksidir (yukarıdaki birinci cümlede bağlantılı Hosea ve Şampuan makalesine bakın).

Çok çeşitli yöntemlerin doğruluk ve kararlılık verimliliği, NodePy kullanılarak basit ve otomatik bir şekilde hesaplanabilir (sorumluluk reddi: NodePy benim tarafımdan geliştirilmiştir).


Teşekkür ederim. Hosea ve Shampine'nin makalesi gerçekten çok ilginç. Sert problemler için benzer sonuçlar biliyor musunuz? Birinin bunlar için genellikle örtük yöntemler kullandığının farkındayım, ancak bunların RHS değerlendirmelerinin sayısı ile ilgili bir önceliği yoktur, bu yüzden benim durumumda çok az kullanımları vardır.
Florian Brucker

Sert sorunlar için böyle bir şey bilmiyorum, ama bir şeyin var olduğundan şüpheleniyorum. Dediğiniz gibi, örtük yöntemler kullanılırken soru daha incedir. Bir yaklaşım, sert problemleri iyi ele alan ancak sabit sayıda RHS değerlendirmesi olan Rosenbrock yöntemlerini kullanmak olabilir.
David Ketcheson

6

Bu yönde çok fazla sonuç yoktur, çünkü sadece doğruluğu sabitlemekten daha zordur, çünkü stabilite hususları genellikle istediğiniz doğruluk için ihtiyacınız olandan daha küçük zaman adımları seçmenizi gerektirebilir. Böylece sonuçlar sert ve sert olmayan durumlar arasında bölünür. İlk durumda zaman adımları ve RHS değerlendirme gereklilikleri genellikle doğruluk ve ikinci durumda geçerlidir.

Açık durumdaki yöntemlere odaklanacağım, çünkü örtük durum kaç tane RHS değerlendirmesini kullanmanız gerektiğinden çok daha az açıktır. Bu tamamen ortaya çıkan sistemi nasıl çözeceğinize bağlıdır.

Sert olmayan sistemler için:

Belli bir doğruluk sırasına ulaşmak için kaç aşamaya (RHS değerlendirmeleri) ihtiyaç duyulduğunu söyleyen açık Runge-Kutta yöntemleri için aşama sınırlamaları vardır. Dördüncü sıradan sonra aşama sayısı doğruluk sırasını aşıyor ve eşitsizlik artmaya devam ediyor. Kasap'ın büyük ODE kitabı: http://books.google.com/books/about/Numerical_Methods_for_Ordinary_Different.html?id=opd2NkBmMxsC

bu 'yokluk' kanıtlarından bazılarını açıklayan iyi bir iş çıkarıyor.

Kareleme kuralı örneğiniz, Adams-bashforth gibi çok adımlı bir tür yönteme veya şimdi spektral-ertelenmiş düzeltme yöntemleri olarak adlandırılan yönteme yol açar. Adams-bashforth için her adımda sadece bir RHS değerlendirmesine ihtiyacınız vardır, ancak genel olarak bu bölgeler için stabilite bölgeleri çok küçük olduğundan, genellikle RHS-Kutta yöntemi ile aynı miktarda RHS-Kutta yöntemi ile aynı miktarda iş yaparsınız. sipariş.

İşte spektral ertelenmiş düzeltme hakkında bir makale:

https://www.google.com/search?q=spectral+deferred+correction&aq=f&oq=spectral+deferred+correction&aqs=chrome.0.57j0l2j62.3336j0&sourceid=chrome&ie=UTF-8

Bu entegrasyon yöntemlerinin standart açık yöntemlere karşı nasıl oynandığından emin değilim, genellikle dördün düğümlerde çözüm durumlarını kaydetmek için çok daha fazla belleğe ihtiyaç duyuyorlar ve bu yüzden onları hiç kullanmadım.

Sert sistemler için:

S2S2S1S


2
Değişken adım (hatta değişken sıra) yönteminin kullanılmasının, sabit adım yöntemine sıkıca bağlı kalmaktan daha etkili olabileceği düşünülebilir. Örneğin, Bulirsch-Stoer gibi ekstrapolatif bir yöntem kullanmayı düşünebilirsiniz: bazı adımlarda birkaç değerlendirme yapın ve ardından bu adımların sonuçlarından (görünüşte) daha doğru tahminler oluşturun.
JM

Doğru. Nitekim, optimal yöntemlerin birçoğu bir anlamda bir başka zaman-adımının değişken adım versiyonuna eşdeğerdir. Örneğin Runge-Kutta-Chebshev, değişken zaman adımları Chebyshev noktaları olacak şekilde uygulanan ileri Euler olarak görülebilir.
Reid.Atcheson

@JM: Kesinlikle. Peki, bu deneylerin doğruluğunu, sayısal deneylerin yanı sıra (olası çok sayıda yaklaşım göz önüne alındığında, çok ilgili olacaktır) RHS değerlendirme sayısı açısından değerlendirmenin bir yolu var mı?
Florian Brucker

@Florian, genel olarak değil. Sanırım Lorenz'in denklemlerini duydun mu?
JM

1
@JM: Evet :) Bu yüzden orijinal problem alanının bir alt kümesi (polinomlar) ile doğruluk ölçülen kareleme örneğinden bahsettim. Sadece belirli bir sorun alt kümesi için çalışan sonuçlardan memnun olurum.
Florian Brucker

3

1014f(x)

Elbette istisnalar vardır (çok büyük sistemler, çok sert sistemler) ancak toplumda yaygın bir düşünce, "standart" sistemler için ODE çözücüleri tasarlama sorununun çözülmüş olmasıdır. Sonuç olarak, ortaya koyduğunuz sorunun çok ilginç olmadığını düşünüyorum - ODE çözücü tasarımının artık önemsiz bir bileşenini ele alıyor. Bu konu ile ilgili literatür eksikliğini de açıklayabilir.


+1. Birisi verimli ODE çözücüleri sorduğunda, sadece PDE yarı takdir yetkilerinden veya büyük n-beden problemlerinden gelen büyük ODE sistemleriyle ilgilendiklerini varsayıyorum.
David Ketcheson

Bunun sorumla olan ilişkisini açıklayabilir misiniz? Bağlantıyı görmüyorum, çünkü değerlendirmenin f(x)ücretsiz olmadığı, ancak değerlendirme sayısının sınırlı olduğu kadar pahalı olduğu durumla ilgileniyorum .
Florian Brucker

@DavidKetcheson: Burada durum böyle değil. Daha ziyade zayıf donanımlarda (katıştırılmış cihazlar) çok katı zamanlama gereksinimlerimiz (gerçek zamanlı zor) var. ODE sistemlerinin kendileri nispeten küçüktür.
Florian Brucker

NNNN

NNN<1000

1

O(dim3)O(dim2)

Bu nedenle ilk nokta, RHS'nizin altta yatan lineer cebirden gerçekten daha pahalı olup olmadığından emin olmaktır.

İkinci nokta: "pahalı" yöntemlere (yani açık RK yöntemleri) dayanan çözücülerin bazen "daha ucuz" olanlardan (açık çok aşamalı yöntemler) daha hızlı performans gösterdikleri literatürden bilinmektedir.

Özetle, sadece RHS değerlendirme sayısını dikkate almamanız gerektiğini düşünüyorum.


N
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.