Newton-Krylov ne zaman uygun bir çözücü değildir?


16

Son zamanlarda scipy'den farklı lineer olmayan çözücüleri karşılaştırdım ve özellikle 20 kod satırında lineer olmayan reaksiyon terimi ile ikinci dereceden diferansiyel denklem denklemini çözdükleri Scipy Yemek Kitabı'ndaki Newton-Krylov örneğinden özellikle etkilendim .

Formdaki yarı iletken heterostrüktürler için doğrusal olmayan Poisson denklemini ( Poisson-Boltzmann denklemi de denir, bu notlarda sayfa 17'ye bakınız) çözmek için örnek kodu değiştirdim ,

d2ϕdx2k(x)(p(x,ϕ)n(x,ϕ)+N+(x))=0

(Bu, çözücüye iletilen artık işlevdir.)

Bu ve formu için doğrusal olmayan fonksiyonlar olan elektrostatik bir sorundur . Buradaki ayrıntılar önemli değildir, ancak nokta, doğrusal olmayan fonksiyonun ile katlanarak değişmesidir, bu nedenle kalan fonksiyon küçük bir değişiklikle büyük bir aralıkta ( değişebilir içinde .n(x,ϕ)p(x,ϕ)ni(x)e(Ei(x,ϕ)Ef)ϕ1061016)ϕ

Bu denklemi scipy'nin Newton-Krylov ile çözdüm, ama asla yakınsama olmaz (aslında her zaman Jacobian'ın hesaplanmasında bir hata rapor eder). Bir geçilmiştir Newton Krylov için çözücü fsolve (MINPACK hybrd üzerine dayandığı) ve ilk kez çalıştı!

Newton-Krylov'un belirli sorunlara iyi uymamasının genel nedenleri var mı? Giriş denklemlerinin bir şekilde koşullandırılması gerekiyor mu?

Yorum yapmak için daha fazla bilgiye ihtiyaç vardır, ama neden bu durumda fsolve'un işe yaradığını düşünüyorsunuz?


Newton-Krylov'un Jacobian'la başarısız olmasıyla aynı sorunu yaşadım ve yöntemi "lgmres" ten sadece "gmres" ( sol = newton_krylov(func, guess, method='gmres')) olarak değiştirmenin sorunu çözdüğünü buldum . Nedenini tam olarak bilmiyorum, ancak bu sorunu yaşayan herkes aynı şeyi yapmayı düşünebilir.
Arthur Dent

Yanıtlar:


18

Karşılaşabileceğiniz iki sorun var.

Kötü klima

İlk olarak, sorun kötü durumdadır, ancak sadece bir kalıntı sağlıyorsanız, Newton-Krylov, Jacobian'ın eylemini elde etmek için kalıntıyı sonlu farklılaştırarak önemli basamaklarınızın yarısını atmaktadır:

J[x]yF(x+ϵy)F(x)ϵ

Analitik bir Jacobian sağlarsanız, tüm rakamları (örneğin, çift hassasiyetli 16) tutmanız gerekir. Krylov yöntemleri aynı zamanda iç ürünlere de güvenir, bu nedenle Jacobian'ınız ayarına uygun değilse , etkili bir şekilde tekildir ve Krylov durgunlaşabilir veya hatalı çözümleri döndürebilir. Bu, doğrudan çözücülerin birleşmesini de önleyebilir. Bazen izlenebilir koşullandırma ile kaba bir ızgarada homojenize etmek için çoklu ızgara yöntemlerini kullanabilirsiniz. Bir problem daha iyi şartlandırma ile formüle edilemediğinde, dört hassasiyetle çalışmaya değer olabilir. (Bu, örneğin PETSc tarafından desteklenir.)1016

Aynı sorunların, sonlu farklar olmaksızın yarı Newton yöntemleri için de geçerli olduğunu unutmayın. Kompakt olmayan operatörlerle (örn. Diferansiyel denklemler) ilgili problemler için tüm ölçeklenebilir yöntemler ön koşullandırma için Jacobian bilgilerini kullanmalıdır.

fsolveJacobian bilgilerini kullanmamış olması ya da esasen tekil bir Jacobian'a (yani sonlu farkların çok fazla "gürültüsü" sonlu duyarlıklı aritmetik). Bu ölçeklenebilir değildir ve fsolvesorun boyutunu artırdıkça muhtemelen yavaşlar.

Küreselleşme

Doğrusal problemler doğru bir şekilde çözülürse, doğrusal problem (Krylov) ile ilgili problemleri göz ardı edebilir ve doğrusal olmama nedeniyle sorunlara odaklanabiliriz. Lokal minima ve nonmooth, yavaş yakınsama veya durgunluğa neden olur. Poisson-Boltzmann düzgün bir modeldir, bu yüzden yeterince iyi bir başlangıç ​​tahminiyle başlarsanız, Newton dörtlü olarak birleşecektir. Çoğu küreselleşme stratejisi, son iterasyonlar için yüksek kaliteli bir ilk tahmin üretmek için bir çeşit devam gerektirir. Örnekler arasında şebeke sürdürme (örn. Tam Multigrid), parametre sürdürme ve sözde geçici sürdürme yer alır. İkincisi genellikle kararlı durum problemlerine uygulanabilir ve bazı küresel yakınsama teorisi sunar, bkz. Coffey, Kelley ve Keyes (2003) . Bir arama bu makaleyi ortaya çıkarır, bu sizin için yararlı olabilir:Shestakov, Milovich ve Noy (2002) Yalancı geçici süreklilik ve sonlu elemanlar yöntemi kullanılarak doğrusal olmayan Poisson-Boltzmann denkleminin çözümü . Sahte geçişin devamı Levenberg-Marquardt algoritması ile yakından ilişkilidir.

daha fazla okuma

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.