Satır aramada kübik ve kuadratik enterpolasyon arasında karar vermeye yardımcı olun


9

Bir yarı Newton BFGS algoritmasının bir parçası olarak çizgi arama yapıyorum. Çizgi aramanın bir adımında, yerel minimizere yaklaşmak için kübik enterpolasyon kullanıyorum.

Let ilgi fonksiyonu. Bir bulmak istiyorum öyle ki .f:RR,fC1xf(x)0

Let , , ve bilinmelidir. Ayrıca olduğunu varsayın . Kübik bir polinom böylece , , ve .f(xk)f(xk)f(xk+1)f(xk+1)0xk<x<xk+1Q(x)=ax3+bx2+cx+dQ(0)=f(xk)Q(0)=f(xk)Q(xk+1xk)=f(xk+1)Q(xk+1xk)=f(xk+1)

İkinci dereceden denklemi : kapalı form çözümünü kullanarak aranan için.(1):Q(xxk)=0x

Dışında da pek çok durumda yukarıda belirtilen çalışmalar, için kapalı form çözümü olarak ile bölündüğü çok yakın ya da tam olarak olur .f(x)=O(x2)(1)a0

Benim çözümüm bakmak için ve "çok küçük" ise sadece kuadratik polinom ait asgarileştirir için kapalı formda çözümü almak Zaten katsayıları sahip olduğunuz önceki uyumdan .aQ2(x)=bx2+cx+db,c,dQ(x)

Sorum şu: Kübik interpolasyonun kübik üzerine ne zaman alınacağı konusunda nasıl iyi bir test yapabilirim? için test etmek için saf bir yaklaşım, sayısal nedenlerden dolayı kötüdür, bu yüzden Burada makine hassasiyeti, ancak ölçek değişmezi olan iyi bir karar veremiyorum .a0|a|<ϵτϵτf

Bonus soru: Başarısız kübik uyumdan, katsayılarının kullanılmasıyla ilgili herhangi bir sayısal sorun var mı veya uygun katsayıları hesaplamak için yeni bir kuadratik uyum gerçekleştirmeli miyim?b,c,d

Açıklığa kavuşturmak için düzenleyin: Soruma göre , literatürde aslında olarak . Soru formülasyonunu basitleştirdim. Çözdüğüm optimizasyon problemi 6 boyutta doğrusal değil. Wolfe koşullarının BFGS satır araması için yeterli olduğunu ve bu yüzden ; Güçlü Wolfe koşullarını tatmin edecek bir şey arıyorum ve kübik yaklaşımın minimizasyonunu almak yol boyunca iyi bir adım.fϕ(α)=f(x¯k+αpk¯)f(x)0

Soru BFGS ile ilgili değil, kübik katsayının kuadratik bir yaklaşımın daha uygun olacağı kadar küçük olduğunu nasıl belirleyeceğiydi.

Edit 2: Gösterimi güncelleyin, denklemler değişmedi.

Yanıtlar:


4

Hmm ... kübik enterpolasyon satır araması için duyulmamış değil, tipik olarak aşırı doludur.

Sorununuzu doğru okuyorsam, sadece bir skaler mi? Bu durumda, BFGS muhtemelen probleminizi çözmenin en etkili yolu değildir. Brenth yöntemi gibi skaler optimizasyon algoritmaları probleminizi daha hızlı çözecektir.x

BFGS için bir dizi satır arama algoritması vardır. Kendi uygulamalarım için, bellek sınırlı BFGS (L-BFGS) kullanarak bu satır araması çok iyi çalışıyor. Sadece Wolfe koşullarını yerine getirmeniz gerektiğini ve kesin küçültücüyü bularak çok fazla kazanamayacağınızı unutmayın.

Her neyse, sorunuzu gerçekten cevaplamak için: Eğer kübik çözüldüğünde NaN veya Inf gibi "kötü" değerler verirse ( burada yapıldığı gibi ) basitçe kuadratik polinomlara geçmeyi düşünürdüm .

kullanarak ne demek istediğinizden emin değilim ? Kübik uyum için bu katsayılar kuadratik uyum için olanlarla aynı olmayacaktır, bu yüzden onları tekrar kullanamazsınız.b,c,d

Son olarak, kullanmak isteyebilir yerine sizin fonksiyonu (muhtemelen) sadece lokal olarak yaklaşık kübik veya kuadratik olacağı gibi, ve ve olmalıdır birbirine (ve çözeltiye) daha yakın .f(xk1)f(x0)xkxk1x0

Bu yardımcı olur umarım.


Netlik için düzenlenmiştir. "Kullanılarak " ı bir kübik fit yaptığı anlamına ve bulundu böylece ben zaten ikinci dereceden bir polinomdur. Ve soru, bu uyum için elde edilen katsayılarının bir enterpolasyon yapmak için kullanılması mantıklı olup olmadığı veya tipik bir kuadratik uyum için yeni katsayıları yeniden hesaplamam gerektiğiydi. b,c,dQ(x)=ax3+bx2+cx+da0Q(x)=bx2+cx+db,c,d
Emily L.

Ahh, doğru, tabii. Sayısal açıdan katsayıların kullanımında herhangi bir sorun görmüyorum. Bunun önemli olacağını düşündüğüm tek nokta, yine de feshedeceğiniz çözüme çok yakın.
LKlevin

Kübik hesaplayıp "kötü" değerleri kontrol ederek cevabınızı motive edebilir misiniz? veya olduğunda yapmak neden güvenlidir ? a<<ba0
Emily L.

Ne zaman , ve yaklaşık kare durum için olanlar olacaktır. BFGS satır araması oldukça sağlam olduğundan, tamamen doğru olmasalar bile bunları kullanmanız gerekir. Wolfe koşullarına uyduğunuz sürece yakınsama elde edersiniz. "Kötü" değerlere gelince, bilgisayar ihtiyacınız olan hassasiyette hesaplamaları doğru bir şekilde yapabildiği sürece, her şey iyidir. Yapamadığında, inf ve NaN'yi görmeye başlayacaksınız. a0b,cd
LKlevin

4

Moré'nin Nocedal tarafından uygulanmış bir makalesi var:

Jorge J. Moré ve David J. Thuente. 1994. Yeterli azalmayı garantileyen satır arama algoritmaları. ACM Trans. Matematik. Y. 20, 3 (Eylül 1994), 286-307. DOI http://dx.doi.org/10.1145/192115.192132 ( ön baskı ).


SciComp.SE'ye hoş geldiniz! Yazınızı bulmayı kolaylaştırmak için yayınınızı biçimlendirdim. Nocedal'ın uygulamasına bir bağlantı bulabilirseniz, bu yardımcı olacaktır.
Christian Clason
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.