Calcul d'intégrales avec la méthode de Monte-Carlo

Version sans commentaires, utilisable avec profit seulement avec les commentaires faits au cours MAT1681 et après avoir assisté à sa construction pas à pas.

montecarlo[f_,domaine_List,valeurs_List,n_]:= Module[{a,b,c,d,rectangle,tir,abs, ord,choix,rapport},
    a = domaine[[1]]; b = domaine[[2]]; c = valeurs[[1]]; d = valeurs[[2]];
    rectangle = (b - a) (d-c);
    tir = Table[{Random[Real,{a,b}],Random[Real,{c,d}]},{n}];
    abs = Table[tir[[k,1]],{k,1,n}];
    ord = Table[tir[[k,2]],{k,1,n}];
    choix = Length[Select[f[abs] - ord,# >= 0 &]];
    rapport = choix/n rectangle //N
    ]

Exemple : Calcul approximatif de la valeur de l'intégrale de sin(x^2) de 0 à 1, avec un tir de 10000 points dans la cible [0,1] x [0,1] :
montecarlo[Sin[#^2]&,{0,1},{0,1},10000]

Retour à ma page personnelle



©jmt : création le 010201 - dernière modification le 051104