İki eğrinin özellikleri nasıl karşılaştırılır?


11

İki f (x) ve g (x) eğrisini karşılaştırmam gerekiyor. Aynı x aralığındadır (örneğin -30 ila 30). f (x) bazı keskin tepelere veya düz tepelere ve vadilere sahip olabilir. g (x) aynı tepe ve vadilere sahip olabilir. Öyleyse, bu özelliklerin görsel inceleme olmadan ne kadar iyi uyuştuğuna dair bir ölçü istiyorum. Bu sorunu şu şekilde çözmeye çalıştım.

  1. Her veri noktasını işlevin toplam alanına bölerek her iki işlevi de normalleştirin. Şimdi normalleştirilmiş fonksiyonun alanı 1.0
  2. Her x'de f (x) ve g (x) 'den minimum değeri alın. Bu bana temelde f (x) ve g (x) arasındaki örtüşen alan olan yeni bir işlev verecektir.
  3. Adım 2'nin sonuç fonksiyonunu entegre ettiğimde toplam çakışan alanı 1.0'dan elde ederim

Ancak bu bana zirvelerin ve vadilerin çakışıp çakışmadığını söylemez. Bunun yapılabileceğinden emin değilim ama birisi bir yöntem biliyorsa yardımın için minnettar olurum.

== DÜZENLEME == Açıklama için bir resim ekledim.

Örnek eğriler

İki eğri (siyah ve mavi) arasındaki fark aynı olmayabilir, ancak tamamlayıcı şekillere sahip olacaktır.

Arkaplan: Fonksiyonlar, bir bileşiğin atomik orbitallerinin durumlarının (PDOS) tahmini yoğunluğudur. Yani s, p, d orbitalleri için durumlarım var. Malzemenin sp, pd veya dd hibridizasyonları (orbital karıştırma) olup olmadığını belirlemek istiyorum. Sahip olduğum tek veri PDOS. Eğer s yörüngesinin PDOS'unun (fonksiyon f (x)) p orbitalinin PDOS'unun (enerjiler (x)) aynı enerjilerinde (x değerleri) olduğu tepeler ve vadiler varsa, o malzemede sp karıştırma vardır.



1
Dijital ses arkadaşlarının benzer sorunları olup olmadığını merak ediyorum?
Dan Pichelman

Teşekkür Euphoric, ben de soruyu mathoverflow.net de soracağım
laalee

@ laalee Lütfen sorunuzu Stack Exchange ağındaki birden fazla sitede sormayın. Ayrıca Matematik Taşması Araştırma düzeyinde matematiktir. Matematik Yığın Değişimi Araştırma dışı düzeydedir. İsterseniz bunu Math'a veya başka bir yere taşıyabilirim.
Dünya Mühendisi

Özür dilerim. Mathoverflow'da silmeye çalıştım ama bir yol bulamadım. Silebilirseniz sevinirim. Teşekkürler
laalee

Yanıtlar:


4

Bu, analitik kimya, fizik, spektroskopi vb. Alanlarda yaygın ve sıklıkla zor bir sorundur. Kullanılan yaklaşımlar basit RMSD karşılaştırmasından çok karmaşık yöntemlere kadar değişebilir. Görevin görsel inceleme ile yapılması kolay değilse (insanlar özellik tanıma için zarif bir şekilde geliştirilir), o zaman hesaplamalı olarak yapmak zor olacaktır.

Bir yaklaşım, "taban çizgilerini" kaldırmaya çalışmaktır, böylece fonksiyonlar, tepe veya vadi özellikleri hariç, sıfır değerlidir. Bu en iyi şekilde, düşük dereceli bir polinom kullanılarak eğri uydurma veya daha da iyisi, taban çizgisinin neye benzeyebileceği ve neye benzemesi gerektiğine dair daha uygun bir ilkeli model kullanılarak yapılır. Tepe noktaları çok keskinse, işlevi basitleştirebilir ve düzleştirilmiş işlevi orijinal işlevden çıkarabilirsiniz.

Taban çizgisini kaldırdıktan sonra, normalleştirip kalıntı üretebilir veya RMSD (basit yaklaşımlar) yapabilir veya aradığınız her özelliğe bir gauss (veya uygun olan herhangi bir model) takarak tepe / vadi özelliklerini tespit etmeye çalışabilirsiniz. Tepe noktalarını sığdırabiliyorsanız, tepe konumları ve yarım genişlikleri karşılaştırabilirsiniz.

Python'u biliyorsanız SciPy'ye bir göz atın. İyi şanslar.


Cevabınız için teşekkürler. Ancak bir taban çizgisini nasıl bulacağım konusunda net değilim. Her vakanın önceden tahmin edemediğim farklı bir işlevi olacaktır.
laalee

3

Bu sadece "kafamın üstünden", bu yüzden sorunu tamamen yanlış anlayabilirim, ama belki de işlevlere kök ortalama kare mesafesi (RMSD) uygulayabilirsiniz. Sadece zirvelere ve vadilere ilgi duyuyorsanız, bu zirveleri ve vadiyi çevreleyen alanlara uygulayın (yani, her iki işlevin türevinin sıfır olduğu bazı x +/- bazı epsilon için). Eğer bu aralığın RMSD sıfıra yakınsa, o zaman iyi bir eşleşmeniz var, sanırım.


Bu, şekiller benzer olmasına rağmen sıfır olmayabilir değerler arasındaki farkı dikkate alır.
laalee

3

Anlamadığım için, aradığınız bilgiler işlevin “tableau des varyasyonları” tarafından aktarılır - bunun için ingilizce adını bilmediğim için çok üzgünüm!

Bu tablo farklılaştırılabilir bir f işleviyle ilişkilidir ve f ' nin köklerini bularak ve bu sıfırlar arasındaki her aralıkta f' işaretini belirleyerek yapılandırırsınız .

Dolayısıyla, f ' ve g' nin sıfırları aşağı yukarı çakışırsa ve tezlerin işlevleri kabul ederse, benzer bir profile sahip olurlar.

Programlamaya çalışacağım ilk şey:

  1. Küçük bir ε seçin
  2. Fonksiyonların tanımlandığı aralıkta rastgele çok sayıda N noktası x [i] çizin .

  3. Her düğüm için F [i] = f (x [i] + ε) - f (x [i] - ε) ve G [i] = g (x [i] + ε) - g (x [i] - ε) .

  4. Her düğümde, F [i] ve G [i] ε²'den daha küçükse VEYA her ikisi de aynı işarete sahipse , iki işlevin neredeyse aynı profile sahip olduğu sonucuna varın .

Çalışıyor mu?


Anlayışınız için teşekkür ederiz michipili. Şu anda bir son teslim tarihine uymaya çalışıyorum. Ama bunu mümkün olan en kısa sürede uygulayacağım ve size bildireceğim
laalee

1

Kaba kuvvet: adım olarak bu değerle sıfır olmayan en küçük kayan değeri bulun, tüm etki alanını inceleyin ve değerlerin eşit olup olmadığını kontrol edin?

== DÜZENLE ==

Hmmm ... "Aynı şekil" ile g (x) = c * f (x) demek istiyorsanız, bu çözüm değiştirilmelidir - f (x) / g (x) hesapladığınız her alan öğesi için ve sonuç her nokta için aynıdır (tabii ki g (x) == 0 ise, f (x) == 0 ise bölmeye çalışıp çalışmadığınızı kontrol edersiniz).

"Aynı şekil" demek "yerel optimumlar ve bükülme noktaları aynı ise" ... f, x (f) ve g (x) (etki alanı öğeleri kümeleri olarak) için yerel optimumlar ve bükülme noktalarını bulun ve kümeler eşittir.

Üçüncü seçenek: f (x) = g (x) + c. Etki alanı öğelerinin her birinin aynı f (x) -g (x) farkına sahip olup olmadığını kontrol edin. İlk durumla neredeyse aynı, ancak bölünme yerine fark var.

== BAŞKA BİR DÜZENLE EVET ==

Şey ... Yukarıdaki düzenlemeden ikinci yaklaşım faydalı olabilir. Ayrıca, ilk dervatifin işaretini karşılaştırarak da birleştirebilirsiniz (sembolik değil, ancak df (x) = f (x) - f (x-adımı) olarak hesaplanır). Her iki işlev de tüm etki alanında aynı türev işaretine sahipse, emin olmak için optimaları ve bükme noktalarını kontrol edin. Bu koşulların ihtiyacınız olanı yapmak için yeterli olması gerektiğini söyleyebilirim.


Cevabınız için teşekkürler Filip. Ancak işlevler eşit değerlere sahip olmayabilir, ancak aynı şekle sahip olabilir.
laalee

Bu yorumu düzenleme olarak cevaplamak için taşıyorum. Bunu kontrol et.
Filip Malczak

Cevabınız için teşekkürler Filip. Sorunumu açıklığa kavuşturmak için bir resim ekledim.
laalee

1

bu özelliklerin görsel inceleme olmadan ne kadar iyi uyuştuğu.

Muhtemelen en basit yol Pearson'un korelasyon katsayısını hesaplamaktır . Yani, f (x) 'inizi X ve g (x)' yi Y olarak kullanın. Etkili bir şekilde "g (x) 'yi f (x)' in fonksiyonu olarak çizin ve ne kadar iyi bir düz çizgi oluşturduğunu görün".

Korelasyon katsayısı popülerdir, çünkü hesaplanması kolaydır ve genellikle sadece el sallayarak haklıdır. Bazı kullanımlar için iyi bir başlangıç ​​yaklaşımı olabilir, ancak kesinlikle her derde deva değildir.

Gerçek dünyadaki uygulamalarda daha iyi sonuçlar elde etmek için, verilerde neler olduğunu, yani verileri üreten süreci anlamanız gerekir. Genellikle bir tür arka plan vardır ve ilginç özellikler bu arka planın üstüne biner. Tüm verileri bir kara kutuya atarsanız, çoğunlukla arka planları karşılaştırabilirsiniz: kara kutu, verilerin hangi kısmının ilginç kısım olduğunu bilmez. Bu nedenle, daha iyi sonuçlar almak için, arka planları bir şekilde kaldırmak ve daha sonra geriye kalanları karşılaştırmak iyi bir fikirdir. Çizgileri veya eğrileri veya ortalamaları yerleştirmek ve bunlardan çıkarmak veya bölmek, düşük, bant veya yüksek geçişli filtreleme, verileri doğrusal olmayan bir işlevle beslemek ... adını siz koyun.

Kesinlikle tek bir doğru cevap yok. Yöntemleri denediğiniz kadar farklı sonuç elde edersiniz. Ancak, sonuçların bazıları bazılarından daha iyidir. Teorik akıl yürütme doğru yönde başlamanıza yardımcı olabilir, ancak parametreleri nasıl ayarlayacağınız ve yönteminize nasıl ince ayar yapacağınız, sonuçta sadece bunları deneyerek ve gerçek dünya sonuçlarını karşılaştırarak bulunabilir.

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.