Domanda

Hiya, Ive ha scritto un codice che con successo approssimazione uno, due e tre integrali tridimensionali utilizzando una tecnica di campionamento di Monte-Carlo 'grezzo'. Vorrei ora per migliorare questo utilizzando 'importance sampling', come a quanto pare questo può ridurre la varianza. Ho letto alcune pagine web di questo, ma nessuno sembra particolarmente chiaro. Come faccio a implementare qualcosa di simile? Grazie molto. Jack

È stato utile?

Soluzione

A destra, ho trovato il mio errore. Non stavo usando l'integrale inverso del PDF per calcolare il 'peso' di ogni punto. Per interessato il mio ciclo condizionale chiunque whos leggere come:

for (i = 0; i <= N; i++) {
    X = (double) rand() / (double) RAND_MAX;
   integrand = function(inverse(X)) / PDF(inverse(X));
   sum = sum + integrand;
   sum2 = sum2 + (integrand * integrand);
}
average = sum / N;
average2 = sum2 / N;

Dove PDF è la mia funzione di densità di probabilità, inversa è l'integrale inverso del PDF. e media e average2 rappresentano rispettivamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top