如何使用 SciPy Python 实现 Nelder-Mead 算法?
SciPy 库可用于快速、高效地执行复杂的科学计算。Nelder-Mead 算法也称为单纯形搜索算法。
它被认为是解决参数估计问题和统计问题的最佳算法之一。在函数值不确定或伴随大量噪声的情况下使用此算法非常合适。
此算法也可用于处理统计中经常出现的间断函数。它是一个简单的算法,也易于理解。用于在多维无约束优化的情况下最小化非线性函数的参数。
不建议使用此算法查找最优梯度值,因为它可能需要很长时间。
让我们看一个例子 -
示例
import numpy as np from scipy.optimize import minimize def f(x): return .6*(1 - x[0])**2 scipy.optimize.minimize(f, [2, -1], method="Nelder-Mead")
输出
final_simplex: (array([[ 1. , -1.27109375], [ 1. , -1.27118835], [ 1. , -1.27113762]]), array([0., 0., 0.])) fun: 0.0 message: 'Optimization terminated successfully.' nfev: 147 nit: 69 status: 0 success: True x: array([ 1. , -1.27109375])
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
解释
导入所需的库。
定义一个函数“f”,它以一个值作为参数,并对其执行一些数学计算。
在函数定义之外调用“f”函数以计算值。
将此函数作为参数传递给 SciPy 库“optimize”类中的“minimize”函数。
此输出显示在控制台上。
广告