1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Mô phỏng Thống kê bằng Python

Connected

Bài tập

Tích phân một hàm đơn giản

Đây là một bài tập đơn giản giới thiệu khái niệm Tích phân Monte Carlo.

Tại đây, bạn sẽ tính một tích phân đơn giản \( \int_0^1 x e^{x} dx\). Ta biết đáp án chính xác là \(1\), nhưng mô phỏng sẽ cho lời giải xấp xỉ, nên có thể kỳ vọng kết quả gần \(1\). Như đã thấy trong video, quy trình rất đơn giản. Với một hàm một biến \(f(x)\):

  1. Xác định cận trục x \((x_{min}, x_{max})\) và trục y \((\max(f(x)), \min(\min(f(x)), 0))\).
  2. Sinh một số điểm phân bố đều trong hình chữ nhật này.
  3. Lấy diện tích hình chữ nhật (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)) nhân với tỷ lệ điểm nằm dưới đồ thị \(f(x)\).

Hoàn thành xong, bạn sẽ có một khung phương pháp để xử lý tích phân xác định bằng Tích phân Monte Carlo.

Hướng dẫn

100 XP
  • Trong hàm sim_integrate(), sinh các số ngẫu nhiên phân bố đều giữa xmin và xmax và gán cho x.
  • Sinh các số ngẫu nhiên phân bố đều giữa \(\min(\min(f(x)), 0)\) và \(\max(f(x))\) và gán cho y.
  • Trả về tỷ lệ điểm nhỏ hơn \(f(x)\) nhân với diện tích (\((\max(f(x) - \min(f(x))\times(x_{max}-x_{min})\)).
  • Cuối cùng, dùng lambda để định nghĩa func là \(x e^{x}\).