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
floatvà trả về mộtfloat.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ùngfmin()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
floatvà trả về mộtfloat.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
floatvà trả về mộtfloat.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.