scipy.integrate --- Tích phân số

Submodule scipy.integrate cung cấp các thủ tục tích phân số cho các hàm một biến thực. Các thuật toán không được chuyển từ scipy.integrate của CPython mà được suy ra từ cài đặt tham chiếu tại https://www.genivia.com/qthsh.html.

Tích phân số hoạt động tốt nhất khi bật toán học float64. Với toán học float32 các thủ tục vẫn hoạt động nhưng với độ chính xác thấp hơn. Dung sai lỗi cần thiết có thể được chỉ định qua tham số từ khóa eps; mặc định là giá trị etolerance tại thời điểm biên dịch (1e-14 với fp64, 1e-8 với fp32). Số phức không được hỗ trợ.

Các hàm

scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]

Tích phân f từ a đến b sử dụng cầu phương thích nghi Gauss-Kronrod (G10, K21). Đây là bộ tích phân đa năng được khuyến nghị.

Tham số:
  • f -- hàm gọi được nhận một float và trả về một float.

  • a -- giới hạn tích phân dưới.

  • b -- giới hạn tích phân trên.

  • order -- bậc tích phân (mặc định 5).

  • eps -- dung sai lỗi (mặc định etolerance).

Trả về:

tuple 2 phần tử (result, error) gồm các float cho giá trị của tích phân và ước tính sai số.

scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Tích phân f từ a đến b sử dụng phương pháp Romberg, công thức Newton-Cotes tính toán bị tích phân tại các điểm cách đều nhau. Phù hợp nhất với các bị tích phân có đạo hàm liên tục. Lưu ý rằng scipy.integrate.romberg đã bị loại bỏ trong CPython kể từ SciPy 1.12.0; ưu tiên dùng quad() cho mã mới.

Tham số:
  • f -- hàm gọi được nhận một float và trả về một float.

  • a -- giới hạn tích phân dưới.

  • b -- giới hạn tích phân trên.

  • steps -- số bước (mặc định 100).

  • eps -- dung sai lỗi (mặc định etolerance).

Trả về:

giá trị của tích phân dưới dạng float.

scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float

Tích phân f từ a đến b sử dụng quy tắc Simpson thích nghi. Khác với scipy.integrate.simpson của CPython, hàm này nhận một hàm gọi được và tự chọn khoảng cách mẫu thay vì nhận mảng các giá trị hàm được tính sẵn.

Tham số:
  • f -- hàm gọi được nhận một float và trả về một float.

  • a -- giới hạn tích phân dưới.

  • b -- giới hạn tích phân trên.

  • steps -- số bước (mặc định 100).

  • eps -- dung sai lỗi (mặc định etolerance).

Trả về:

giá trị của tích phân dưới dạng float.

scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]

Tích phân f từ a đến b sử dụng họ cầu phương Tanh-Sinh, Sinh-Sinh và Exp-Sinh (mũ kép). Đây là thủ tục nên dùng khi bị tích phân có điểm kỳ dị hoặc đạo hàm vô hạn tại các điểm đầu mút, và là thủ tục duy nhất trong submodule này chấp nhận giới hạn tích phân vô hạn (ví dụ: -np.inf, np.inf).

Tham số:
  • f -- hàm gọi được nhận một float và trả về một float.

  • a -- giới hạn tích phân dưới; có thể là -np.inf.

  • b -- giới hạn tích phân trên; có thể là np.inf.

  • levels -- số mức tinh chỉnh (mặc định 6).

  • eps -- dung sai lỗi (mặc định etolerance).

Trả về:

tuple 2 phần tử (result, error) gồm các float cho giá trị của tích phân và ước tính sai số.