Çok noktalı veriler, yapılandırılmamış ağın hücre merkezlerine nasıl enterpolasyon yapılır?


11

Çok noktalı alan verisi kümem var, her nokta veri kümesi yapılandırılmamış ağın tek bir hücresi ile ilgilidir. Amaç, verileri doğrudan veya dolaylı olarak hücre merkezine en doğru şekilde enterpole etmektir.

Ters Mesafe Ağırlıklı enterpolasyon kullanırsam, kaynak ile hedef (hücre merkezi) arasındaki mesafenin çok küçük olması durumunda, bir kayan nokta istisnasıyla sonuçlanabilir.

Yapılandırılmış bir ağ üzerinde bu tür enterpolasyon için hacim ağırlıklı enterpolasyon kullanılır. Bu doğrudan keyfi olarak şekillendirilmiş bir kafes hücreye dönüşmez.

SIGFPE'yi atlatmak için bir IDW enterpolasyonu için bir tolerans eklemek, sadece enterpolasyonu etkisiz hale getirebilecek herhangi bir test yapmazsam mantıklıdır. Her ağırlık için paydaya yeterince küçük bir eklemek IDW enterpolasyonu ile olası bir seçenek midir? Bu sorun için hangi enterpolasyon yöntemlerini biliyorsunuz?δ

İlave bilgi:

Ağdan noktalara enterpolasyon için, barsentrik koordinatlara dayalı bir enterpolasyon kullanıyorum . Ağın her çok yüzlü hücresi tetrahedra içine ayrıştırılır. Hücre merkezli alan, IDW enterpolasyonu kullanılarak hücre noktalarına enterpole edilir . İçinde bulunduğu tetrahedronu bulmak için her nokta için bir araştırma yapılır ve değerler barycentric enterpolasyon kullanılarak enterpole edilir .

Noktalardan ağa enterpolasyon için bu mümkün değildir. Hücre merkezli değerler bilinmiyor. Uygula tetrahedral bileşim birleştirmek için bir yolu yoktur , W, U C bir noktaya ilişkin ağırlığı p ve bir hücre merkezi C . Bu nokta yapılandırmasının keyfi olması gerçeğinden kaynaklanmaktadır. Yani, şu anda bunun için IDW kullanıyorum, kayan nokta istisnası almadığımdan emin olun. Bu sorun için daha uygun enterpolasyon yöntemleri var mı?pWPC=1WPC


Kullandığınız ağırlıklandırma fonksiyonu hakkında biraz daha spesifik olabilir misiniz? Uç noktalarda tekilliğe sahip olmayan polinom ağırlıklandırma fonksiyonlarını kullanan çeşitli enterpolasyon yaklaşımları vardır.
Pedro

1
İnterpolasyon fonksiyonu pürüzsüzse, ağdan global olarak enterpolasyon yapmak için radyal temel fonksiyonları kullanmayı düşündünüz mü? Python ve scipy
fcruz

Çalıştığım kütüphane aslında RBF'yi (hem kompakt hem de global destek) destekliyor, ancak bununla ilgili çok az deneyimim var.
Tavsiye

1
SciPy RBF kütüphanesini denerseniz bu olağanüstü hatanın
n00b

Hücre köşelerinde bağımlı değişkenin gradyanı değerleriniz var mı?
Johntra Volta

Yanıtlar:


7

Dağınık veri enterpolasyonu için çeşitli yazılım paketlerine bağlantılar http://www.mat.univie.ac.at/~neum/stat.html#fit web sayfamda


GE Fasshauer, MATLAB Kullanan Meshfree Yaklaşım Yöntemleri, Dünya Bilimsel 2007 kitabı
(2006'dan itibaren) kapsamlı bir teknoloji sunmaktadır.

Dağınık veri enterpolasyonu hakkında birkaç yeni makale:
http://www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Box-spline'lar / kutu splines.pdf

Hangi yöntemin kullanılacağı, ortaya çıkan interpolantın kullanımına çok bağlıdır. Kriging yöntemleri stokastik bir modele dayanmaktadır, bu nedenle enterpolasyon yapılacak veriler biraz gürültülü ise iyidir. Radyal esaslı fonksiyonlar (stabil olarak uygulanırsa) ve görsel olarak hoş bir sonuç isteniyorsa (düşük eğrilik enterpolasyonu) tercih edilmelidir.


Profesör Neumaier, web sitenizdeki bağlantılarda ve cevabınızda topladığınız yöntemlerden, soruda açıklanan uygulama için belirli önerileriniz var mı?
Geoff Oxberry

Sanırım yapmayı öğrendiğim şeyler var ... her zaman olduğu gibi, öğrenmeye ihtiyaç duyan şeylerin miktarı zamanla katlanarak artıyor ve öğrenmeyi başardığım şeylerin miktarı en iyi şekilde doğrusal olarak artıyor. :) Teşekkürler. İlk uygulama için IDW enterpolasyonunu kullanacağım ve dağınık veri enterpolasyonunu okuyacağım (RBF modaya uygun bir seçim gibi görünüyor). :)
tmaric

1
@ GeoffOxberry: Bağlantıları denemeden bağlantıları zaman içinde topladım. Bu yüzden belirli bir tane tavsiye edemem. Ancak nitel öneriler üzerine bir yorum ekledim.
Arnold Neumaier

3

Aşağıda, sonlu hacim ağında bir nokta kümesinden diğerine nasıl enterpolasyon yapacağım hakkında bir örnek vereceğim.

Değişkenlerin düzenlenmesini koordine ettim - bellekte sakladığım veriler hücre merkezlerindeki değerleri temsil ediyor. Alan değişkenlerini ve degradelerini saklıyorum. Degradeler, en küçük kareler problemini çözen çevre değerlerden bulunur (Hanehalkı yansımaları aracılığıyla QR ile).

Düzenlemeniz farklı olabilir ancak ilke aynıdır.

ϕf

ϕnb1+ϕnb1rnb1,f=ϕf

ϕnb2+ϕnb2rnb2,f=ϕf

...

ϕnbn+ϕnbnrnbn,f=ϕf

nbrnbn,ff

Sonra yazarım

φf=1n(Σben=1nφnbben+Σben=1n(φnbbenrnbben,f))

Bu nedenle, bu noktalarda bir dizi alan değerine ve degradeye ihtiyacınız vardır. Hangi çevredeki noktaların enterpolasyonlu noktanıza katkıda bulunacağına ve bu noktalardan enterpolasyon yaptığımız noktaya mesafe vektörlerine karar vermeniz gerekir.

Örneğin: Hücre köşelerinde değerleri temsil eden veri depolanırsa, bu denklemi, sahip olduğunuz duruma bağlı olarak hücre merkezi değerlerini vb. Bulmak için kullanırsınız.

Bu, bu noktada Taylor serisine dayanıyor. Daha doğru bir ifade elde etmek için ikinci türevler de kullanılabilir.


φf1n

1
Bunu kodumda anında yazdım. Burada verilerin uzayda doğrusal olarak değiştiği varsayılmaktadır, bu yüzden Taylor serisinin sadece ilk türevleri dahil edilmiştir. Ağ hakkında herhangi bir varsayım yoktur, herhangi bir ağ için çalışır.
Johntra Volta

1
Ancak, ağırlık ekleyebilirsiniz. Hem ağırlıklı hem de ağırlıksız versiyona sahip olduğumuz en az kare gradyan rekonstrüksiyonu gibi.
Johntra Volta

1n

Daha fazla tartışma için benimle e-posta ile iletişime geçebilirsiniz (kullanıcı profilimde bulabilirsiniz). Sorunu nasıl çözeceğinizi görmek istiyorum.
Johntra Volta
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.