---
source_url: https://docs.dolphindb.cn/zh/funcs/f/fmin.html
fetched_at: 2026-05-19T09:21:56Z
category: funcs
title: fmin
sha1: 8f8e65bd25069ed6683994bb81dfb51fb95cef92
---

# fmin

## 语法

`fmin(func, X0, [xtol=0.0001],
[ftol=0.0001], [maxIter], [maxFun])`

## 详情

使用 Nelder-Mead 单纯形算法找到目标函数的最小值。

注意：该算法只使用函数值，不使用一阶导数或二阶导数。

注：

- DolphinDB `fmin` 与 [scipy.optimize.fmin](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin.html)
  功能相同。二者的主要差异在返回结果形式：DolphinDB `fmin` 返回包含
  xopt、fopt、iterations、fcalls 和 warnFlag
  的字典；`scipy.optimize.fmin` 默认只返回 xopt，设置 *full\_output*=True 时返回完整优化信息。
- [numpy.fmin](https://numpy.org/doc/stable/reference/generated/numpy.fmin.html)
  与前二者完全不同，它不是优化函数，而是逐元素返回两个数组中的较小值。

## 参数

**func** 函数名，表示需要最小化的目标函数。注意：函数返回值须是数值标量类型。

**X0** 数值类型的标量或向量，表示使目标函数最小化的参数的初始猜测。

**xtol** 可选参数，正数值标量，表示在迭代过程中 `xopt` 之间可接受的收敛的绝对误差。默认值为 0.0001。

**ftol** 可选参数，正数值标量，表示在迭代过程中 `func(xopt)` 的绝对误差可接受的收敛标准。默认值为
0.0001。

**maxIter** 可选参数，非负整数标量，表示执行的最大迭代次数。

**maxFun** 可选参数，非负整数标量，表示最大目标函数调用次数。

## **返回值**

返回一个字典，包含以下成员：

- xopt：浮点数向量，使目标函数最小化的参数值。
- fopt：浮点数标量，目标函数最小值。fopt=func(xopt)。
- iterations：整数标量，优化过程中执行的总迭代数。
- fcalls：整数标量，优化过程中目标函数的调用次数。
- warnFlag：整数标量，有三个可能值：

  - 0：表示成功执行算法全过程。
  - 1：表示已达最大目标函数调用次数，算法停止执行。
  - 2：表示已达最大迭代次数，算法停止执行。

## 例子

下例中自定义一个 f(x) 函数，使用 Nelder-Mead 单纯形算法找到其最小值。

```dolphindb
def f(x) {return x*x}
fmin(f, 1)
/* Ouput:
xopt->[-8.881784197001252E-16]
fopt->7.888609052210119E-31
iterations->17
fcalls->34
warnFlag->0
*/
```
