Tích phân Monte-Carlo

**Tích phân Monte Carlo** là một phương pháp tìm giá trị số của tích phân, đặc biệt là các tích phân đa chiều có dạng:

:I = \int_{V} f(\vec x)\, d\vec x

trên một miền không gian đa chiều *V* sử dụng một số hữu hạn các lần gọi hàm *f*.

Các phương pháp tích phân Monte-Carlo bao gồm phương pháp cơ bản, phương pháp lấy mẫu có trọng tâm,... Các phương pháp này cũng cho biết ước lượng sai số thống kê của phép tính, tuy rằng ước lượng này có thể không chính xác do việc khảo sát ngẫu nhiên hàm số trên miền không gian đa chiều có thể không cho thấy hết mọi biểu hiện của hàm.

## Tích phân Monte Carlo cơ bản
### Tích phân một chiều
Ở dạng cơ bản nhất, giá trị của tích phân một chiều:
:I = \int_{a}^{b} f(x)\, dx

được dự đoán là tổng:
:E(I) = V  = \frac{V}{N} \sum_{i=1}^N f(x_i)

trong đó
:*V* là thể tích mở rộng của miền tích phân
::V = \int_{a}^{b}\, dx
:*x**i* là các giá trị lấy ngẫu nhiên đều trong khoảng [*a*, *b*].
:*N* là tổng số lần lấy mẫu *x**i*

Sai số của dự đoán được tính bằng căn của phương sai của giá trị trung bình:

\sigma^2 (E(I)) = \frac{V}{N} \sum_{i=1}^N (f(x_i) - )^2

Khi số lần lấy mẫu, *N*, tăng, phương sai giảm theo 1/N, tức là sai số của phép tính giảm theo \frac{1}{\sqrt{N}}.

### Tích phân đa chiều
Phương pháp trên được mở rộng cho tích phân đa chiều:
:\int_V f\, dV \approx V \pm \sqrt{\frac{-^2}{N}}
## Lấy mẫu có trọng tâm
### Tích phân một chiều
Nếu biết hàm cần tích phân *f*(*x*) cư xử như nào, ta có thể chọn được một hàm *g*(*x*) có giá trị biến đổi gần giống |*f*(*x*)| trên miền cần tích phân, ta có thể biến đổi tích phân thành:
:I = \int_{a}^{b} f(x)\, dx = \int_{a}^{b} \frac{f(x)}{g(x)} g(x)\, dx = \int_{a}^{b} \frac{f(x)}{g(x)} \, dG(x)
với:
:g(x) =\frac{dG(x)}{dx}
và *g*(*x*) thỏa mãn điều kiện chuẩn hóa:
:\int_{a}^{b} g(x)\, dx = 1 
Lúc này có thể lấy các điểm *x**i* ngẫu nhiên trong khoảng [*a*, *b*] theo phân bố xác suất *g*(*x*') để tìm giá trị tích phân:
:I \approx \frac{1}{N} \sum_{i=1}^N \frac{f(x_i)}{g(x_i)}

Hàm *g*(*x*) càng giống *f*(*x*) thì phương sai của *f*(*x*)/*g*(*x*) càng nhỏ và sai số của phép tính càng nhỏ.

Một bất lợi của phương pháp này là sai số có thể lớn nếu hàm *g*(*x*) được chọn gần bằng 0 tại những điểm mà *f*(*x*) khác 0. Lúc đó, phương sai của *f*(*x*)/*g*(*x*) có thể lớn đến vô cùng. Lỗi này có thể khó phát hiện khi miền giá trị tại đó *g*(*x*) bằng 0 là rất nhỏ.

## Xem thêm
*Thư viện phần mềm khoa học GNU

## Tham khảo

*W.H. Press, G.R. Farrar, Recursive Stratified Sampling for Multidimensional Monte Carlo Integration, Computers in Physics, v4 (1990), pp190–195. 
*Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T. "Simple Monte Carlo Integration" and "Adaptive and Recursive Monte Carlo Methods." §7.6 and 7.8 in Numerical Recipes in FORTRAN: The Art of Scientific Computing, 2nd ed. Cambridge, England: Cambridge University Press, pp.&nbsp;295–299 and 306-319, 1992. 
*G.P. Lepage, A New Algorithm for Adaptive Multidimensional Integration, Journal of Computational Physics 27, 192-203, (1978) 
*G.P. Lepage, VEGAS: An Adaptive Multi-dimensional Integration Program, Cornell preprint CLNS 80-447, March 1980 
*Ueberhuber, C. W. "Monte Carlo Techniques." §12.4.4 in Numerical Computation 2: Methods, Software, and Analysis. Berlin: Springer-Verlag, pp.&nbsp;124–125 and 132-138, 1997. 
*York Acad. Sci. 86, 844-874, 1960. 
*Weinzierl, S. "Introduction to Monte Carlo Methods." 23 Jun 2000. http://arxiv.org/abs/hep-ph/0006269/.