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