python 求多自变量函数最小值
时间: 2023-10-19 10:23:44 浏览: 87
求多自变量函数的最小值可以使用数学优化方法,比如梯度下降、共轭梯度、牛顿法、拟牛顿法等。其中,梯度下降是最简单的数学优化方法之一。
下面给出一个使用梯度下降算法求解多自变量函数最小值的示例代码:
```python
import numpy as np
def f(x):
# 定义要求解的多自变量函数
return (x[0] - 1)**2 + (x[1] - 2.5)**2
def df(x):
# 定义多自变量函数的梯度
return np.array([2*(x[0] - 1), 2*(x[1] - 2.5)])
def gradient_descent(f, df, x0, alpha=0.1, eps=1e-6, max_iters=1000):
# 梯度下降算法
x = x0
for i in range(max_iters):
gradient = df(x)
if np.linalg.norm(gradient) < eps:
break
x = x - alpha * gradient
return x, f(x)
# 初始值
x0 = np.array([0, 0])
# 梯度下降求解最小值
x_min, f_min = gradient_descent(f, df, x0)
print("最小值点为:", x_min)
print("最小值为:", f_min)
```
在上述代码中,`f` 函数为要求解的多自变量函数,`df` 函数为 `f` 函数的梯度函数,`x0` 为初始值,`alpha` 为学习率,`eps` 为精度,`max_iters` 为最大迭代次数。`gradient_descent` 函数为使用梯度下降算法求解最小值的函数,其中,通过迭代更新 `x` 值,直到梯度的范数小于精度 `eps` 或者达到最大迭代次数 `max_iters`。
在运行上述代码后,会输出最小值点和最小值。
阅读全文