解释如何使用SciPy Python实现Nelder-Mead算法?

解释如何使用SciPy Python实现Nelder-Mead算法?

SciPy库可用于快速、高效地执行复杂的科学计算。Nelder-Mead算法也称为简单搜索算法。

它被认为是可以用于解决参数估计问题和统计问题的最佳算法之一。适用于在函数值不确定或与之相关的噪声很大的情况下使用该算法。

该算法也可以用于处理在统计学中经常出现的不连续函数。它是一种简单的算法,也很容易理解。用于在多维无约束优化的情况下将非线性函数的参数最小化。

建议不要使用该算法来查找最优梯度值,因为这可能需要很长一段时间。

让我们看一个例子−

更多Python相关文章,请阅读:Python 教程

示例

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")
Python

输出

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])
Python

解释

  • 导入所需的库。

  • 定义一个函数” f “,该函数以一个值为参数,对其进行数学计算。

  • 在函数定义外调用’ f ‘函数以计算结果。

  • 将此函数作为参数传递给“scipy”库的“optimize”类中的“最小化”函数。

  • 在控制台上显示此输出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册