Spline enterpolasyonu - Spline interpolation

İçinde matematiksel alanı Sayısal analiz, spline enterpolasyonu bir biçimdir interpolasyon interpolant özel bir tür parça parça polinom deniliyor eğri. Spline enterpolasyonu genellikle polinom enterpolasyonu Çünkü enterpolasyon hatası spline için düşük dereceli polinomlar kullanıldığında bile küçük yapılabilir.[1] Spline enterpolasyonu, Runge fenomeni, yüksek dereceli polinomlar kullanılarak enterpolasyon yapılırken noktalar arasında salınım meydana gelebilir.

Giriş

Aslında, eğri için bir terimdi elastik cetveller önceden tanımlanmış bir dizi noktadan ("düğümler") geçmek için bükülmüş olanlar. Bunlar yapmak için kullanıldı teknik çizimler için gemi yapımı ve Şekil 1'de gösterildiği gibi elle yapım.

Şekil 1: Sekiz nokta arasında kübik eğrilerle enterpolasyon. Gemi yapımı vb. İçin önceden tanımlanmış noktaları takip edecek şekilde bükülmüş esnek cetveller kullanılarak elle çizilmiş teknik çizimler yapılmıştır.

Bu tür elastik cetvellerin şeklini matematiksel olarak modelleme yaklaşımı, n + 1 düğümler tüm düğüm çiftleri arasında enterpolasyon yapmaktır ve polinomlarla .

eğrilik bir eğrinin tarafından verilir:

Eğri bükülmeyi en aza indiren bir şekil alacağından (tüm düğümlerden geçme kısıtlaması altında) ve her yerde ve düğümlerde sürekli olacak. Bunu başarmak için buna sahip olmak gerekir

Bu, yalnızca derece 3 veya daha yüksek polinomlar kullanıldığında elde edilebilir. Klasik yaklaşım, 3. derece polinomları kullanmaktır. kübik eğriler.

Enterpolasyonlu kübik spline'ı bulmak için algoritma

Üçüncü dereceden bir polinom hangisi için

simetrik biçimde yazılabilir

 

 

 

 

(1)

nerede

 

 

 

 

(2)

 

 

 

 

(3)

 

 

 

 

(4)

Gibi

biri şunu anlıyor:

 

 

 

 

(5)

 

 

 

 

(6)

Ayar t = 0 ve t = 1 sırasıyla denklemlerde (5) ve (6) biri (2) aslında ilk türevler q ′(x1) = k1 ve q ′(x2) = k2 ve ayrıca ikinci türevler

 

 

 

 

(7)

 

 

 

 

(8)

Şimdi ise (xben, yben), ben = 0, 1, ..., n vardır n + 1 puan ve

 

 

 

 

(9)

nerede ben = 1, 2, ..., n ve vardır n üçüncü derece polinomlar enterpolasyon y aralıkta xben−1xxben için ben = 1, ..., n öyle ki q ′ben (xben) = q ′ben+1(xben) için ben = 1, ..., n−1 sonra n polinomlar birlikte aralıkta türevlenebilir bir işlevi tanımlar x0xxn ve

 

 

 

 

(10)

 

 

 

 

(11)

için ben = 1, ..., n nerede

 

 

 

 

(12)

 

 

 

 

(13)

 

 

 

 

(14)

Eğer dizi k0, k1, ..., kn öyle ki, ek olarak, q ′ ′ben(xben) = q ′ ′ben+1(xben) için tutar ben = 1, ..., n-1 ise, sonuçta ortaya çıkan fonksiyonun sürekli bir ikinci türevi bile olacaktır.

Gönderen (7), (8), (10) ve (11), durumun böyle olduğunu ancak ve ancak

 

 

 

 

(15)

için ben = 1, ..., n-1. İlişkiler (15) n − 1 doğrusal denklemler n + 1 değerler k0, k1, ..., kn.

Esnek cetveller için spline interpolasyonu modeli olması için en soldaki "düğümün" solunda ve en sağdaki "düğümün" sağında cetvel serbestçe hareket edebilir ve bu nedenle bir düz çizgi q ′ ′ = 0. Gibi q ′ ′ sürekli bir işlevi olmalı x biri bunu "Doğal Spline'lar için" n − 1 doğrusal denklemler (15) buna sahip olmalı

yani bu

 

 

 

 

(16)

 

 

 

 

(17)

Sonuçta, (15) birlikte (16) ve (17) oluşturmak n + 1 benzersiz şekilde tanımlayan doğrusal denklemler n + 1 parametreleri k0, k1, ..., kn.

Başka uç koşullar da vardır: Spline'ın uçlarındaki eğimi belirten "Kenetlenmiş spline" ve üçüncü türevin de sürekli olmasını gerektiren popüler "non-a-knot spline" x1 ve xN−1 "Düğümsüz" eğri için ek denklemler şöyle olacaktır:

nerede .

Misal

Şekil 2: Üç nokta arasında kübik "doğal" spline'larla enterpolasyon.

Üç puan olması durumunda için değerler çözülerek bulunur tridiagonal lineer denklem sistemi

ile

Üç puan için

,

biri bunu anlıyor

ve den (10) ve (11) bu

Şekil 2'de, iki kübik polinomdan oluşan spline fonksiyonu ve veren (9) görüntülenir.

Ayrıca bakınız

Bilgisayar kodu

TinySpline: Kübik eğri enterpolasyonu uygulayan eğriler için açık kaynaklı C kitaplığı

SciPy Spline Interpolation: enterpolasyon uygulayan bir Python paketi

Kübik Enterpolasyon: Kübik spline enterpolasyonu için açık kaynak C # kitaplığı

Referanslar

  1. ^ Hall, Charles A .; Meyer, Weston W. (1976). "Kübik Spline Enterpolasyonu için Optimal Hata Sınırları". Yaklaşıklık Teorisi Dergisi. 16 (2): 105–122. doi:10.1016 / 0021-9045 (76) 90040-X.

Dış bağlantılar