Yüksek mertebeden Runge – Kutta yöntemleri neden daha sık kullanılmıyor?


17

Sadece yüksek dereceli (yani 4'ten büyük) Runge – Kutta yöntemlerinin neden neredeyse hiç tartışılmadığını (en azından bilgime göre) kullanıldığını merak ettim. Adım başına daha büyük hesaplama süresi gerektirdiğini anlıyorum (örneğin 12. sıradaki gömülü adımla RK14 ), ancak daha yüksek dereceli Runge-Kutta yöntemlerini kullanmanın başka olumsuzlukları var mı (örn. Kararlılık sorunları)? Aşırı zaman ölçeklerinde yüksek salınımlı çözeltilere sahip denklemlere uygulandığında, bu tür yüksek dereceli yöntemler tipik olarak tercih edilmez mi?


2
Bence bu çok öznel bir soru. Daha önce de belirttiğiniz gibi en büyük dezavantaj, hesaplama maliyetidir. Genellikle doğruluk ve hesaplama süresi arasında denge kurmaya çalışırız. PDE'lerde insanlar daha yüksek sıra hakkında konuştuğunda genellikle 3. veya 4. sıra hakkında düşünürler. Ve zaman atlaması da aynı sırada tutulur.
Vikram

3
PDE'de, zamansal bağımlılık için yüksek dereceli bir doğruluk şeması, uzamsal doğruluk daha kötüyse mantıklı değildir. Aslında, mekansal bağımlılığın doğruluğu, özellikle yapılandırılmamış ağlar üzerinde çalışırken çoğunlukla yaklaşık 2. veya 3. sıradadır. İnsanların küresel hata kısaltmasını en düşük maliyetle kontrol etmesi gerekiyor, bu nedenle Runge-Kutta'yı belirli durumlarda yeterince yüksek doğrulukla düşünüyor.
tqviet

@tqviet Mekansal türevler için 8 nolu sıraya kadar geriye veya merkezi fark yaklaşımları kullanılıyorsa , RK8 uygun olur, değil mi? Genel olarak, uzamsal türevlerin bu tür yüksek dereceli sonlu fark yaklaşımlarının kullanılmasıyla ilgili herhangi bir doğruluk veya kararlılık sorunu var mı?
Mathews24

1
Δt

Yanıtlar:


17

Beşinci sıra veya daha yüksek Runge-Kutta yöntemlerini kullanarak binlerce makale ve yüzlerce kod var. Not o MATLAB en yaygın olarak kullanılan açık entegratör bir 5 dereceden Runge-Kutta yöntemi kullanılarak çözümü ilerler ODE45 vardır.

Yaygın olarak kullanılan yüksek dereceli Runge-Kutta yöntemlerine örnekler

Dormand & Prince 5 dereceden yöntemi verme kağıt üzerinde 1700 alıntı var Google Bilgin'e göre . Bunların çoğu, bazı problemleri çözmek için yöntemlerini kullanan kağıtlardır. Cash-Karp yöntemi belgesinde 400'den fazla alıntı var . Belki de 5'ten yüksek en yaygın kullanılan sipariş yöntemi , Google Akademik'te 400'den fazla alıntıya sahip olan Prince-Dormand'ın 8. dereceden yöntemidir . Başka birçok örnek verebilirim; ve bu yöntemleri kullanan insanların çoğunun (çoğu olmasa bile) asla kağıtları alıntılamadığını unutmayın.

Ayrıca şunu da unutmayın yüksek dereceli ekstrapolasyon ve ertelenmiş düzeltme yöntemlerinin Runge-Kutta yöntemleri olduğuna dikkat edin .

Yüksek mertebeden yöntemler ve yuvarlama hatası

Doğruluğunuz yuvarlama hatalarıyla sınırlıysa, daha yüksek dereceli bir yöntem kullanmalısınız . Bunun nedeni, yüksek dereceli yöntemlerin daha az adım (ve adım başına daha fazla değerlendirme olmasına rağmen daha az işlev değerlendirmesi) gerektirmesidir, bu nedenle daha az yuvarlama hatası yaparlar. Bunu basit deneylerle kendiniz kolayca doğrulayabilirsiniz; sayısal analizde ilk ders için iyi bir ödev problemidir.

Onuncu mertebe yöntemleri çift kesinlikli aritmetikte son derece kullanışlıdır. Aksine, sahip olduğumuz tek şey Euler yöntemi olsaydı, yuvarlama hatası büyük bir sorun olurdu ve yüksek mertebeden çözücülerin iyi işlediği birçok sorun için çok yüksek hassasiyetli kayan nokta numaralarına ihtiyacımız olurdu.

Yüksek sipariş yöntemleri aynı kararlı olabilir

@RichardZhang ikinci Dahlquist bariyerine atıfta bulundu, ancak bu sadece çok aşamalı yöntemler için geçerlidir. Burada yayınlanan soru Runge-Kutta yöntemleri hakkındadır ve her siparişin sadece Runge-Kutta yöntemleri yoktur.bir- istikrarlı, aynı zamanda B-stable (bazı doğrusal olmayan problemler için yararlı bir kararlılık özelliği). Bu yöntemler hakkında bilgi edinmek için, örneğin Hairer & Wanner metnine bakın.

Gök mekaniğinde üst düzey yöntemler

Sen sor

Aşırı zaman ölçeklerinde yüksek salınımlı çözeltilere sahip denklemlere uygulandığında, bu tür yüksek dereceli yöntemler tipik olarak tercih edilmez mi?

Kesinlikle haklısın! Bunun en iyi örneği gök mekaniği. Ben o alanda uzman değilim. Ancak, bu makale , örneğin, gök mekaniği yöntemlerini karşılaştırır ve hatta 5'ten daha düşük düzeni bile dikkate almaz. verimli).


Ketchson: Lütfen bu ifade hakkında bazı kanıtlar veya açıklamalar sağlayabilir misiniz: "yüksek dereceli ekstrapolasyon ve ertelenmiş düzeltme yöntemleri Runge-Kutta yöntemleridir"? Özellikle "ertelenmiş düzeltme yöntemleri". Teşekkürler.
tqviet

@David Ketcheson Dışa yuvarlanmış aralık veya radyal aritmetik gibi onaylanmış (doğrulanmış) hesaplama teknikleri kullanıldığında cevabınızın nasıl değişeceğini tartışabilir misiniz? Peki ya çift kesinlikten daha yüksek dışa yuvarlanmış aralık veya radyal aritmetik kullanılmışsa? Runge-Kutta siparişi arttıkça sarma ve bağımlılık ile ne olacak ve sadece eğlence için ODE'nin çok sert olduğunu varsayalım?
Mark L. Stone

@ MarkL.Stone Bu tamamen farklı bir dizi soru. Onlara sormak isterseniz, lütfen ayrı sorular olarak gönderin. Ancak, bu konularda uzman değilim ve cevaplayamayacağım.
David Ketcheson

1
@tqviet Açıklama için bu makaleye bakınız .
David Ketcheson

12

Standart çift kesinlikli kayar nokta aritmetiği kullandığınız sürece, makul sayıda adımda yüksek doğrulukta bir çözüm elde etmek için çok yüksek dereceli yöntemlere gerek yoktur. Uygulamada, çözeltinin doğruluğunun normalde RKF45 ile atılan adımların sayısı / uzunluğu yerine çift kesinlikli kayan nokta gösterimi ile 1.0e-16'lık bir göreceli hata ile sınırlı olduğunu görüyorum.

Çift kesinlikli kayan nokta aritmetik şemasından daha yüksek bir düzeye geçerseniz, 10'uncu sıra yöntemini kullanmak iyi olabilir.


5
Bence bu cevap yanıltıcı. Yüksek dereceli yöntemler çok daha az yuvarlama hatasına neden olurken, düşük dereceli yöntemler, gerekli doğruluk büyük veya zaman aralığı uzun olduğunda yuvarlama hatasının baskın olmasından muzdariptir; aşağıdaki cevabımı gör.
David Ketcheson

2
Mesele şu ki, çift duyarlıklı kayan noktada 1,0e-16'dan daha iyi göreceli doğruluğa sahip bir çözümü bile temsil edemezsiniz. Birçok pratik durumda, iyi eski RKF45, ilgilendiğiniz süre boyunca küçük adımlar gerektirmeden bu doğruluk seviyesine ulaşmanızı sağlar. Sempatik bir entegratörün istendiği sert sistemler veya durumlar için iyi bir seçim olmayabilir, ancak daha yüksek dereceli bir Runge Kutta yöntemi de bu durumlarda mükemmel bir çözüm değildir. Çok uzun zaman dilimleri için yüksek dereceli Runge Kutta yöntemlerinin bir anlam ifade edebileceğini kabul ediyorum.
Brian Borchers

10

Sadece Brian Borcher'ın mükemmel cevabına eklemek için, birçok gerçek yaşam uygulaması son derece sert ODE'leri veya DAE'leri kabul ediyor. Sezgisel olarak, bu sorunlar zaman içinde düzensiz, ani değişiklikler yaşar, bu nedenle uzun adım boyutlarına uzanan yüksek dereceli polinomların aksine, kısa adım boyutlarına ince yayılmış düşük dereceli polinomlar kullanılarak daha iyi modellenir. Ayrıca, istikrar genellikle yüksek dereceli yöntemlerin hesaplama cezalarının daha dik olduğu örtük yöntemlerin kullanılmasını gerektirir .

Daha titiz bir şekilde, yüksek dereceli yöntemler, sert problemler için düşük dereceli yöntemlerden daha az kararlıdır. Örneğin, doğrusal çok aşamalı yöntemler için Dahlquist engelleri var.

Teorem (İkinci Dahlquist bariyeri). A kararlı bir çok aşamalı yöntem uygun olmalıdırr2. 2. sıradaki tüm çok aşamalı yöntemler arasında, yamuk kuralı en küçük hata sabitine sahiptir.

RK formüllerinde L-stabilitesi için benzer (ancak çok daha karmaşık) ifadeler yapılabilir. Her durumda, siparişteki artış genellikle her zaman daha doğru çözümlere yol açmaz. Aşağıdakiler Prothero ve Robinson'un seminal 1974 belgesinden bir alıntıdır:

Sert doğrusal olmayan diferansiyel denklemlerin büyük sistemlerini çözmek için A-kararlı tek adımlı yöntemler kullanırken,
(a) bazı A-kararlı yöntemlerin yüksek derecede dengesiz çözümler verdiğini ve
(b) denklemler elde edildiğinde elde edilen çözeltilerin doğruluğunu bulduk sertlik genellikle kullanılan yöntemin sıralaması ile ilgisiz görünmektedir.

Bu konunun daha da titiz muameleleri için, Hairer & Wanner, "Adi diferansiyel denklemlerin çözümü II: Sert ve Diferansiyel - Cebirsel Sorunlar", 1991 klasik metnine bakınız.

Pratikte, sert denklemler neredeyse her zaman trapezoidal kural veya TR-BDF2 formülü (MATLAB'daki ode23t ve ode23tb fonksiyonları) kullanılarak çözülür. Bunların her ikisi de kapalı ikinci dereceden yöntemlerdir. Elbette, istikrarın bir sorun olmadığı durumlarda (yani, denklemsiz denklemlerde), bir dizi seçenek arasından seçim yapmakta özgürüz; RK45 en yaygın seçimdir.


Çok ilginç. A kararlı bir çok aşamalı yöntem olması için siparişin neden 2'den küçük veya ona eşit olması gerektiğine dair (sezgisel) bir açıklama var mı? Ve açıklığa kavuşturmak gerekirse, RK formülleri için benzer ifadeler yapılabileceğini söylediğinizde, bu bir kez daha 2. sırada mı?
Mathews24

Ancak Runge-Kutta yöntemleri için, A-kararlı keyfi düzen yöntemleri vardır.
David Ketcheson

@DavidKetcheson Evet, ancak güçlü bir şekilde A-kararlı değiller (yani L-kararlı). DAE'leri çözmek için kullanıldığında birçok sorunu vardır, örneğin basit transistör devrelerini simüle edin. Gerçekten de TR, SPICE'de yapay zil sesine neden olduğu için ünlüdür, bu da TR-BDF2'nin gelişimini motive eder.
Richard Zhang

@DavidKetcheson Referans için bkz. Doi.org/10.1090/S0025-5718-1974-0331793-2 . A-stabilite kavramı DAE'ler için yeterince güçlü değildir ve yüksek dereceli A-stabil yöntemler DAE'leri çözmek için kullanıldığında genellikle garip sonuçlar üretir.
Richard Zhang

Tabii, ama soru DAE'ler veya çok aşamalı yöntemler hakkında değil.
David Ketcheson

9

Karşılaştırma Kurulumu

Julia yazılımı DifferentialEquations.jl'de , Feagin yöntemleri de dahil olmak üzere birçok yüksek dereceli yöntem uyguladık. Bunu yöntemler listemizde görebilirsiniz ve daha sonra sağlanan tablolar olarak kullanabileceğiniz tonlarca başka var . Tüm bu yöntemler bir araya getirildiğinden, aralarında kolayca karşılaştırma yapabilirsiniz. Burada sahip olduğum karşılaştırmaları burada görebilir ve birçok farklı algoritmayı karşılaştırmanın çok basit olduğunu görebilirsiniz. Bu yüzden karşılaştırmaları çalıştırmak için birkaç dakikanızı ayırmak istiyorsanız, bunun için gidin. İşte ortaya çıkanların bir özeti.

Öncelikle, her bir kıyaslamaya bakarsanız, DP5(Dormand-Prince Order 5) ve DP8yöntemlerimizin Hairer Fortran kodlarından ( dopri5ve dop853) daha hızlı olduğunu göreceksiniz ve bu nedenle bu uygulamaların çok iyi optimize edildiğini göreceksiniz. . Bunlar , başka bir iş parçacığında belirtildiği gibi , Dormand-Prince yöntemlerinin aşırı kullanımının, yöntemlerin hala en iyi oldukları için değil, zaten yazılmış olduğu için olduğunu göstermektedir. Dolayısıyla, en iyileştirilmiş uygulamalar arasındaki gerçek karşılaştırma Tsitorous yöntemleri, Verner yöntemleri ve DifferentialEquations.jl'deki Feagin yöntemleri arasındadır.

Sonuçlar

Genel olarak, 7'den daha yüksek bir siparişin yöntemleri, seçilen toleranslar göz önüne alındığında, genellikle siparişe göre ağır basmayan ilave bir hesaplama maliyetine sahiptir. Bunun bir nedeni, daha düşük dereceli yöntemler için katsayı seçimlerinin daha optimize edilmesidir (asimtopik olarak küçük olmadığınızda daha önemli olan küçük "temel kesme hatası katsayılarına sahiptirler"). Buradaki birçok problemde Verner Efficient 6 ve 7 yöntemlerinin son derece iyi olduğunu görebilirsiniz, ancak Verner Efficient 8 gibi yöntemlerin daha düşük bir eğime sahip olabileceğini görebilirsiniz. Bunun nedeni, yüksek mertebeden "kazançların" düşük toleranslarla birleşmesidir, bu nedenle yüksek mertebeden yöntemlerin daha verimli olacağı her zaman bir tolerans vardır.

Ancak, soru şu, ne kadar düşük? İyi optimize edilmiş bir uygulamada, bu iki nedenden dolayı oldukça azalır. Birinci neden, düşük dereceli yöntemlerin FSAL (ilk önce sonuncusu ile) olarak adlandırılan bir şeyi uygulamasıdır. Bu özellik, düşük dereceli yöntemlerin bir sonraki adımda önceki adımdan itibaren bir fonksiyon değerlendirmesini yeniden kullandığı ve dolayısıyla etkili bir şekilde daha az fonksiyon değerlendirmesine sahip olduğu anlamına gelir. Bu doğru kullanılırsa, 5. dereceden bir yöntem (Tsitorous veya Dormand-Prince) gibi bir şey aslında tableaus'un önereceği 6 yerine 5 işlev değerlendirmesi alıyor. Bu, Verner 6 yöntemi için de geçerlidir.

Diğer sebep enterpolasyonlardan kaynaklanmaktadır. Çok yüksek dereceli bir yöntem kullanmanın bir nedeni, daha az adım atmak ve sadece ara değerleri enterpole etmektir. Bununla birlikte, ara değerleri elde etmek için enterpolasyon fonksiyonunun, adımı atmakta kullanılandan daha fazla fonksiyon değerlendirmesine ihtiyacı olabilir.Verner yöntemlerine bakarsanız, Sipariş 8 interpolantını almak için Sipariş 8 yöntemi için 8 ekstra işlev değerlendirmesi gerekir. Çoğu zaman düşük dereceli yöntemler bir "serbest" interpolant sağlar, örneğin çoğu 5. dereceden yöntem ücretsiz 4. dereceden enterpolasyona sahiptir (ekstra fonksiyon değerlendirmesi yoktur). Bu, ara değerlere ihtiyacınız varsa (yüksek dereceli bir yöntem kullanıyorsanız iyi bir arsa için ihtiyacınız olacak), bazı ekstra gizli maliyetler olduğu anlamına gelir. Bu enterpolasyonlu değerlerin olay işleme ve gecikmeli diferansiyel denklemleri çözme açısından gerçekten önemli olması ve neden ekstra enterpolasyon maliyet faktörlerinin olduğunu görebilirsiniz.

Peki Feagin Yöntemleri Hakkında Ne?

Böylece, Feagin yöntemlerinin karşılaştırmalı olarak şüpheli bir şekilde eksik olduğunu göreceksiniz. İyi, yakınsama testleri keyfi hassas sayılar vb. Üzerinde çalışır, ancak aslında onları iyi yapabilmeleri için oldukça saçma derecede düşük toleranslar istemeniz gerekir. Örneğin, yayınlanmamış ölçütlerde , toleranslarda Feagin14daha iyi performans gösterdiğini Vern9(9. sıra Verner Verimli Yöntem) buldum 1e-30. Kaotik dinamiklere sahip uygulamalar için (Pleides veya 3 vücut astrofizik problemlerinde olduğu gibi), hassas bağımlılık nedeniyle bu miktarda doğruluk isteyebilirsiniz (kaotik sistemlerde hızlı hatalar). Ancak, çoğu insan muhtemelen çift kesinlikli kayar nokta sayılarıyla hesaplıyor ve bu tolerans alanında daha iyi performans gösterdikleri bir ölçüt bulamadım.

Ek olarak, Feagin yöntemleriyle birlikte gidecek interpolant yoktur. Yani yaptığım şey, üçüncü bir Hermite enterpolasyonunu onlara koymaktır, böylece bir kişi var olur (ve şaşırtıcı bir şekilde iyi çalışır). Bununla birlikte, standart enterpolasyon fonksiyonu yoksa, yüksek dereceli enterpolasyon elde etmek için özyinelemeli Hermite yöntemini (orta noktayı elde etmek için bu enterpolasyonu kullanın, ardından 5. dereceden enterpolasyon vb. Yapabilirsiniz) yapabilirsiniz, ancak bu çok maliyetlidir ve sonuç enterpolasyonun mutlaka düşük bir prensip kesme hatası terimi yoktur (bu nedenle dt, gerçekten küçük olduğunda iyidir , bu da istediğimiz durumun tam tersidir!). Bu nedenle, doğruluğunuzla eşleşmesi için gerçekten iyi bir enterpolasyona ihtiyacınız varsa, en azından benzer bir şeye geri dönmeniz gerekir Vern9.

Ekstrapolasyon Hakkında Not

Ekstrapolasyon yöntemlerinin basitçe rasgele sıralı Runge-Kutta yöntemleri oluşturmak için algoritmalar olduğunu unutmayın. Bununla birlikte, siparişleri için gerekenden daha fazla adım atıyorlar ve yüksek prensip kesme hatası katsayılarına sahipler ve bu nedenle belirli bir siparişte iyi optimize edilmiş bir RK yöntemi kadar verimli değiller. Ancak, önceki analiz göz önüne alındığında, bu, bu yöntemlerin "bilinen" RK yöntemlerinden daha iyi olacağı son derece düşük toleranslı bir alan olduğu anlamına gelir. Ama koştuğum her kıyaslamada, o kadar düşük olmadım.

Kararlılık Hakkında Not

Seçim gerçekten istikrar sorunları ile ilgisi yoktur. Aslında, DifferentialEquations.jl tableaus üzerinden giderseniz (plot(tab) kararlılık bölgeleri için ), yöntemlerin çoğunun kuşkuyla benzer kararlılık bölgelerine sahip olduğunu göreceksiniz. Bu aslında bir seçim. Genellikle yöntemleri türetirken, yazar genellikle aşağıdakileri yapar:

  1. En düşük prensip kesme hatası katsayılarını (bir sonraki sipariş terimleri için katsayıları) bulun
  2. Sipariş kısıtlamalarına tabi
  3. Ve stabilite bölgesini Dormand-Prince Order 5 yöntemininkine yakın hale getirin.

Neden son durum? Peki, bu yöntem PI kontrollü adaptif kademeli seçimlerin yapılmasıyla her zaman kararlı olma eğilimindedir, bu nedenle "yeterince iyi" stabilite bölgeleri için iyi bir çubuktur. Dolayısıyla, stabilite bölgelerinin benzer olma eğilimi yoktur.

Sonuç

Her yöntem seçiminde ödünleşmeler vardır. En yüksek dereceli RK yöntemleri, hem katsayıların seçimini optimize etmek daha zor olduğundan hem de işlev değerlendirme bileşiklerinin sayısı (ve enterpolasyonlar söz konusu olduğunda daha da hızlı büyür) nedeniyle daha düşük toleranslarda etkili değildir. Ancak, tolerans yeterince düşük olursa kazanırlar, ancak gerekli toleranslar "standart" uygulamaların çok altında olabilir (yani, gerçekten sadece kaotik sistemler için geçerlidir).

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.