scipy.optimize --- Tìm nghiệm và tối thiểu hóa

Submodule scipy.optimize cung cấp các thủ tục đơn giản để tìm nghiệm và cực tiểu của các hàm vô hướng do người dùng định nghĩa. Do mỗi lần lặp phải gọi lại hàm gọi được Python do người dùng cung cấp, tốc độ tăng so với cài đặt thuần Python ở mức khiêm tốn (thường khoảng 2x).

Các hàm

scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float

Tìm nghiệm của f trong khoảng [a, b] bằng phương pháp chia đôi. f phải đổi dấu trên khoảng.

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

  • a -- điểm đầu trái của khoảng.

  • b -- điểm đầu phải của khoảng.

  • xtol -- dung sai tuyệt đối trên vị trí nghiệm (mặc định xtolerance).

  • maxiter -- số lần chia đôi tối đa (mặc định 100).

Trả về:

vị trí của nghiệm dưới dạng float.

Đưa ra:

ValueError -- nếu f(a) * f(b) > 0.

scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None

Stub cho bài toán khớp đường cong bình phương tối thiểu phi tuyến (Levenberg-Marquardt). Có mặt trong bảng module để tương thích API nhưng hiện là placeholder: nó chấp nhận và kiểm tra tham số nhưng luôn trả về None. Ưu tiên dùng fmin() hoặc thư viện ngoài cho đến khi thủ tục này được cài đặt.

Tham số:
  • f -- hàm mô hình f(x, *params) -> float.

  • xdata -- mảng một chiều các giá trị độc lập.

  • ydata -- mảng một chiều các giá trị phụ thuộc, có cùng độ dài với xdata.

  • p0 -- mảng một chiều các ước tính tham số ban đầu.

scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float

Tìm vị trí cực tiểu cục bộ của hàm vô hướng f bằng phương pháp đơn hình đi xuống (Nelder-Mead).

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

  • x0 -- giá trị đoán ban đầu.

  • xatol -- dung sai tuyệt đối trên vị trí (mặc định xtolerance).

  • fatol -- dung sai tuyệt đối trên giá trị hàm (mặc định xtolerance).

  • maxiter -- số lần lặp tối đa (mặc định 200).

Trả về:

vị trí của cực tiểu dưới dạng float.

scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float

Tìm điểm không của hàm vô hướng thực f bằng phương pháp Newton-Raphson (cát tuyến).

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

  • x0 -- giá trị đoán ban đầu.

  • tol -- dung sai tuyệt đối trên nghiệm (mặc định xtolerance).

  • rtol -- dung sai tương đối trên nghiệm (mặc định rtolerance).

  • maxiter -- số lần lặp tối đa (mặc định 50).

Trả về:

vị trí của nghiệm dưới dạng float.