birçok değişkende sayısal entegrasyon


12

Let ve m ( x ) : [ 0 , 1 ] N bu değişkenlerin bir fonksiyonu olsun.x=(x1,x2,,xn)[0,1]nf(x):[0,1]nC

Bu yinelenen integral için özyinelemeli bir plan var mı?

[0,1]ndxif(x)

Eğer ve [ 0 , 1 ] 'i 100 segmente ayırırsam, toplayacağımız 10 20 puanımız olur. Daha akıllı bir yol olmalı.n=10[0,1]1020


Aslında, entegre etmek istediğim fonksiyon Üniter grubun Haar ölçüsüdür .

U(n)f(A) dA=1n![0,2π]nj<k|eiθjeiθk|2f(θ1,,θn) dθ12π  dθn2π

2
Boyutunuz çok büyük değilse, integraliniz için seyrek kareleme yöntemlerini de düşünebilirsiniz.
Paul

@ Paul, bu konuyu bir cevapta daha fazla açıklayabilir misiniz? Muhtemelen yukarı oy kullanacağım
John Mangual

Yanıtlar:


15

Çok değişkenli entegrasyonlar için Monte Carlo yöntemi genellikle iyi bir seçimdir. Hata burada N seçilen eşit dağıtılmış noktaların sayısıdır. Elbette bu, yüksek dereceli yöntemlerin bulunduğu düşük boyutlu (1D ve 2D) alanlar için iyi değildir. Bununla birlikte, bu deterministik yöntemlerin çoğu, daha yüksek boyutlarda çok sayıda nokta almaktadır. Örneğin, 1. dereceden bir 1D şemasıO(O(N)2D veO(K 1O(N)3D olarak. Monte Carlo yönteminin gücü, hata yakınsamasının uzay boyutundan bağımsız olmasıdır. Alanınız 1D veya 100D olsun,O(O(N14). O(N)

Bununla birlikte, olasılıklı olduğu için, standart bir sapma ve hatanızın bir tahminini bulmak için belirli sayıda nokta kullanarak birden çok kez entegre etmeniz gerekir.


1
Entegrasyon için, örneğin Sobel dizilerini kullanarak, yarı Monte-Carlo kullanımı biraz daha iyidir.
Lutz Lehmann

Ah, evet, eşit dağıtılmış noktalar (sahte rasgele) belirtmiştim, ancak ikisi arasında açıkça ayrım yapmadım.
Godric Seer

1
@GodricSeer Sobol sekansları , yüksek boyutlarda bile güzel, eşit aralıklı bir ağ oluşturacak gibi görünüyor . Görünüşe göre aynı soruyu ele alıyor: çok hızlı. Gri kodvetutarsızlık sorungibi görünüyor.
1nΣf(xben)[0,1]nf dx
john mangual

Evet, Sobol dizisi iyi bir nokta dağılımı oluşturacaktır. quasi-Monte-Carlo muhtemelen probleminiz için daha iyi yöntemlerden biridir.
Godric Seer

8

Seyrek ızgara kareleme, daha yüksek boyutlara entegre etmek için alternatif bir yaklaşımdır.

Kuadratür, belirli "optimal" noktalardaki ağırlıklı fonksiyon değerlerinin toplamını değerlendirmeye dayanır. Geleneksel kareleme, daha yüksek boyutlarda bir tensör ürünü ızgara yapısı kullanır, bu da boyut arttıkça işlevi katlanarak artan sayıda noktada değerlendirmeniz gerektiği anlamına gelir.

Seyrek ızgara dörtlüsü hilesi , tensör ürün ızgarasının küçük bir alt kümesini kullanarak aynı sipariş doğruluğunu (asimtotik anlamda) elde edebilmenizdir. Seçtiğiniz seyrek noktalar, istenen toplam dereceye kadar monomialleri doğru bir şekilde bütünleştiren noktalardır . Boyut arttıkça, hesaplama tasarrufları (tensör ürün ızgarasına kıyasla) önemli ölçüde artar.

Bununla birlikte, bu yöntemin farkında olmanız gereken dezavantajları vardır.

  1. Bu yöntem, işleviniz düzgün değilse (veya polinom işlevleriyle başka şekilde iyi bir şekilde yakın değilse) iyi çalışmaz.
  2. Seyrek ızgara dörtlüsünün doğruluk sırası bir tensör ürün ızgarasına eşdeğer olsa da, nispi doğruluk çok daha kötü olabilir. Çünkü seyrek ızgaranın doğruluk sırasının önündeki sabit çok büyük olabilir.
  3. Seyrek ızgaralar nispeten küçük boyutlar için iyi çalışır. Ancak, başka bir yöntem (monte carlo veya varyantları gibi) kullanarak muhtemelen daha iyi olacağınız bir boyut geliyor.

Seyrek ızgaralar hakkında daha fazla bilgi için Burkardt'ın Yüksek Boyutlardaki Seyrek Izgaralarını öneriyorum . Seyrek ızgaralar oluşturmak için kodla ilgileniyorsanız, bu matlab dosyalarını dikkate almak isteyebilirsiniz .

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.