Hướng dẫn minimize function python - giảm thiểu hàm python

scipy.optimize.minimize_scalar (vui, khung = không, giới hạn = none, args = (), phương thức = 'brent', tol = noneminimize_scalar(fun, bracket=None, bounds=None, args=(), method='brent', tol=None, options=None)[source]#

Giảm thiểu chức năng vô hướng của một biến.

Tham sốFuncallablefuncallable

Hàm mục tiêu. Hàm vô hướng, phải trả về vô hướng.

Chuẩn bị khung, tùy chọnsequence, optional

Đối với các phương pháp 'Brent' và 'Golden', bracket định nghĩa khoảng thời gian khung và có thể có ba mục (a, b, c) để a < b < cfun(b) < fun(a), fun(c) hoặc hai mục ac được coi là khoảng thời gian bắt đầu cho tìm kiếm khung xuống dốc (xem bracket) ; Nó không phải lúc nào cũng có nghĩa là giải pháp thu được sẽ thỏa mãn

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
0.

giới hạn, tùy chọnsequence, optional

Đối với phương pháp ‘giới hạn, giới hạn là bắt buộc và phải có hai mục tương ứng với giới hạn tối ưu hóa.

Argstuple, tùy chọntuple, optional

Các đối số bổ sung được chuyển đến hàm mục tiêu.

Phương thức hoặc có thể gọi, tùy chọnstr or callable, optional

Loại giải quyết. Nên là một trong số:

  • Brent

  • Giới hạn

  • Vàng

  • Tùy chỉnh - một đối tượng có thể gọi (được thêm vào phiên bản 0.14.0), xem bên dưới

Xem phần ‘Ghi chú để biết chi tiết của mỗi người giải.

Tolfloat, tùy chọnfloat, optional

Dung nạp để chấm dứt. Để kiểm soát chi tiết, sử dụng các tùy chọn dành riêng cho người giải quyết.

Tùy chọndict, tùy chọndict, optional

Một từ điển của các tùy chọn giải quyết.

Maxiterintint

Số lần lặp tối đa để thực hiện.

Disterboolbool

Đặt thành đúng để in các tin nhắn hội tụ.

Xem

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
1 để biết các tùy chọn dành riêng cho người giải quyết.

ReturnSresOptimizeresultresOptimizeResult

Kết quả tối ưu hóa được biểu thị dưới dạng đối tượng

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
2. Các thuộc tính quan trọng là:
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
3 Mảng giải pháp,
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
4 Cờ Boolean cho biết nếu trình tối ưu hóa thoát ra thành công và
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
5 mô tả nguyên nhân của việc chấm dứt. Xem
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
2 để biết mô tả các thuộc tính khác.

Xem thêm

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
7

Giao diện với các thuật toán tối thiểu hóa cho các chức năng đa biến vô hướng

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
1

Các tùy chọn bổ sung được chấp nhận bởi các người giải quyết

Ghi chú

Phần này mô tả các bộ giải có sẵn có thể được chọn bởi tham số ‘Phương thức. Phương pháp mặc định là Brent.

Phương pháp Brent sử dụng thuật toán Brent, để tìm mức tối thiểu cục bộ. Thuật toán sử dụng phép nội suy parabol nghịch đảo khi có thể tăng tốc độ hội tụ của phương pháp phần vàng.Brent uses Brent’s algorithm to find a local minimum. The algorithm uses inverse parabolic interpolation when possible to speed up convergence of the golden section method.

Phương pháp Golden sử dụng kỹ thuật tìm kiếm phần vàng. Nó sử dụng tương tự của phương pháp chia đôi để giảm khoảng thời gian được đặt. Nó thường tốt hơn để sử dụng phương pháp Brent.Golden uses the golden section search technique. It uses analog of the bisection method to decrease the bracketed interval. It is usually preferable to use the Brent method.

Phương pháp giới hạn có thể thực hiện giảm thiểu giới hạn. Nó sử dụng phương pháp Brent để tìm mức tối thiểu cục bộ trong khoảng X1 Bounded can perform bounded minimization. It uses the Brent method to find a local minimum in the interval x1 < xopt < x2.

Tùy chỉnh tùy chỉnh

Nó có thể hữu ích khi chuyển một phương thức tối thiểu hóa tùy chỉnh, ví dụ khi sử dụng một số frontend thư viện để giảm thiểu_scalar. Bạn chỉ có thể chuyển một cuộc gọi có thể gọi là tham số

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
9.

Các cuộc gọi có thể gọi được gọi là

>>> res = minimize_scalar(f, bounds=(-3, -1), method='bounded')
>>> res.x
-2.0000002026
0 trong đó
>>> res = minimize_scalar(f, bounds=(-3, -1), method='bounded')
>>> res.x
-2.0000002026
1 tương ứng với bất kỳ tham số nào khác được truyền đến
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
7 (chẳng hạn như bracket, TOL, v.v.), ngoại trừ các tùy chọn Dict, có nội dung của nó cũng được chuyển làm tham số phương thức theo cặp. Phương pháp sẽ trả về một đối tượng
>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
2.

Phương thức được cung cấp có thể gọi phải có khả năng chấp nhận (và có thể bỏ qua) các tham số tùy ý; Tập hợp các tham số được chấp nhận bởi

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403
7 có thể mở rộng trong các phiên bản trong tương lai và sau đó các tham số này sẽ được chuyển sang phương thức. Bạn có thể tìm thấy một ví dụ trong hướng dẫn scipy.optimize.

Mới trong phiên bản 0.11.0.

Ví dụ

Xem xét vấn đề giảm thiểu chức năng sau.

>>> def f(x):
...     return (x - 2) * x * (x + 2)**2

Sử dụng phương pháp Brent, chúng tôi tìm thấy mức tối thiểu cục bộ như:

>>> from scipy.optimize import minimize_scalar
>>> res = minimize_scalar(f)
>>> res.x
1.28077640403

Sử dụng phương thức giới hạn, chúng tôi tìm thấy tối thiểu cục bộ với giới hạn được chỉ định như:

>>> res = minimize_scalar(f, bounds=(-3, -1), method='bounded')
>>> res.x
-2.0000002026