genel bakış
İyi soru. R. Baltensperger tarafından "Keyfi kollokasyon noktaları için matris farklılaştırma yönteminin doğruluğunun artırılması" başlıklı bir makale bulunmaktadır. Bu Bence önemli değil, ama (zaten 2000 yılında ortaya çıkmasından önce bilindiğini) bir noktası vardır: sabit fonksiyon türevi olduğunu aslında doğru bir temsilinin önemini vurgulamaktadır should sıfır olması (tam olarak matematiksel anlamda geçerlidir, ancak sayısal gösterimde olması gerekmez).f( x ) = 1
Bunun n. Türev türev matrislerinin satır toplamlarının sıfır olmasını gerektirdiğini görmek kolaydır . Bu kısıtlamayı çapraz girişi ayarlayarak, yaniKayan nokta hesaplamalarındaki yuvarlama hataları nedeniyle bir bilgisayarda çalışırken bu özelliğin tam olarak geçerli olmadığı açıktır. Daha şaşırtıcı olan, türev matris için analitik formüller kullanıldığında (örneğin birçok klasik kollokasyon noktası, örneğin Gauss-Lobatto için kullanılabilir) bu hataların daha da şiddetli olmasıdır.D( n )D( n )j j: = - ∑i = 1ben ≠ jN-Dben j.(1)
Şimdi, makale (ve içindeki referanslar), türevin hatasının satır toplamlarının sapma sıfıra göre olduğunu belirtir. Bu nedenle amaç, bunları mümkün olduğunca sayısal hale getirmektir.
Sayısal testler
İyi nokta şu ki Fornberg prosedürü bu açıdan oldukça iyi görünüyor. Aşağıdaki resimde, değişken Chebyshev-Lobatto kollokasyon noktalarının kesin, yani analitik, ilk türev matrisinin ve Fornberg algoritması tarafından türetilmiş olanın davranışını karşılaştırdım.
Yine, alıntılanan makaledeki ifadeye inanarak, Fornberg algoritmasının türev için daha doğru sonuçlar vereceği anlamına gelir.
Bunu kanıtlamak için, kağıttaki ile aynı işlevi kullanacağım,
veBu, (i) analitik olarak elde edilen türev matrisi, (ii) Fornberg türev matrisi ve (iii) Fornberg matrisinin düzeltilmiş bir versiyonudur; (1) aracılığıyla oldukça basit bir şekilde uygulanırİşte ne olsun (yine Gauss-Lobatto abscissas örneği için):f( x ) = 11 + x2.(2)
En= maks.i ∈ { 0 , … , n }|||f'( xben) - ∑j = 1nDben jf( xj) ∣||.(3)
D~j j= Dj j- ( ∑i = 1nDj ben) ,tüm j için .(4)
Sonuç
Sonuç olarak, Fornberg'in yöntemi oldukça doğru görünmektedir, olması durumunda bile, analitik formüllerden elde edilen sonuçlardan yaklaşık 3 kat daha büyüklükte daha doğrudur. Bu, çoğu uygulama için yeterince doğru olmalıdır. Dahası, bu dikkate değerdir, çünkü Fornberg bu gerçeği yöntemine açıkça dahil etmemektedir (en azından iki Fornberg gazetesinde hiç söz yoktur).N-= 512
Bu örnek için, Denklem (4) 'ün doğrudan dahil edilmesiyle başka bir büyüklük derecesi elde edilebilir. Bu oldukça basit bir yaklaşım olduğundan ve her bir türev için sadece bir kez uygulandığından, onu kullanmamanın bir sebebi görmüyorum.
Baltensperger kağıdından - denklem (1) 'deki toplamı, yuvarlama hatalarını azaltmak için değerlendirmek için daha sofistike bir yaklaşım kullanan yöntem, hata için yaklaşık aynı büyüklük derecesini verir. Yani, en azından bu örnek için, kabaca yukarıdaki "Düzeltilmiş Fornberg" yöntemine eşdeğerdir.