SciPy 教程

浏览7031
更新时间2025-08-14

SciPy 中的优化器

优化器是 SciPy 中定义的一组过程,用于求函数的最小值或方程的根。

优化函数

本质上,机器学习中的所有算法都不过是一个复杂的方程,需要借助给定的数据进行最小化。

方程的根

NumPy 能够求多项式和线性方程的根,但无法求非线性方程的根,如下所示:

x + cos(x)

为此,您可以使用 SciPy 的 optimize.root 函数。

此函数需要两个必需的参数:

fun - 表示方程的函数。

x0 - 对根的初始猜测。

该函数返回一个包含有关解决方案的信息的对象。

实际的解决方案在返回对象的属性 x 下给出:

实例

求方程 x + cos(x) 的根:

from scipy.optimize import root
from math import cos

def eqn(x):
  return x + cos(x)

myroot = root(eqn, 0)

print(myroot.x)

注意:返回的对象包含有关解决方案的更多信息。

实例

打印有关解决方案的所有信息(不仅仅是根 x):

print(myroot)

最小化函数

在此上下文中,函数代表一条曲线,曲线有高点和低点。

高点称为最大值。

低点称为最小值。

整条曲线中的最高点称为全局最大值,而其余的点称为局部最大值。

整个曲线的最低点称为全局最小值,而其余点称为局部最小值。

查找最小值

我们可以使用 scipy.optimize.minimize() 函数来最小化函数。

minimize() 函数采用以下参数:

fun - 表示方程的函数。

x0 - 对根的初始猜测。

method - 要使用的方法的名称。合法值:

  • 'CG'
  • 'BFGS'
  • 'Newton-CG'
  • 'L-BFGS-B'
  • 'TNC'
  • 'COBYLA'
  • 'SLSQP'

callback - 每次优化迭代后调用的函数。

options - 定义额外参数的字典:

{
     "disp": boolean - 打印详细描述
     "gtol": number - 误差的容差
  }

实例

使用 BFGS 最小化函数 x^2 + x + 2:

from scipy.optimize import minimize

def eqn(x):
  return x**2 + x + 2

mymin = minimize(eqn, 0, method='BFGS')

print(mymin)

相关视频

更多

免费

phpStudy极速入门视频教程
初级phpStudy极速入门视频教程

54.6万次学习

收藏

免费

phpStudy V8 视频教程
初级phpStudy V8 视频教程

38.8万次学习

收藏

免费

小皮面板使用视频教程
初级小皮面板使用视频教程

21.6万次学习

收藏

免费

好课诞生记
初级好课诞生记

7.1万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

65万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.8万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.2万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.4万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.3万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.4万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载