牛顿法代码python
时间: 2023-06-23 21:52:43 浏览: 51
好的,这里给出一个使用牛顿法求解多元函数最小值的Python代码:
```python
import numpy as np
from scipy.optimize import newton
def f(x):
x1, x2 = x
return x1**2 + x2**2 - 2*x1 - 6*x2 + 6
def df(x):
x1, x2 = x
return np.array([2*x1 - 2, 2*x2 - 6])
def ddf(x):
return np.array([[2, 0], [0, 2]])
x0 = np.array([0, 0]) # 初始值
x_min = newton(f, x0, fprime=df, fprime2=ddf)
print(x_min)
```
其中,`f`是目标函数,`df`是目标函数的梯度,`ddf`是目标函数的海森矩阵,`x0`是初始值,`x_min`是最小值。
需要注意的是,牛顿法求解的最小值可能是局部最小值,而不是全局最小值。因此,在使用牛顿法求解时,需要对初始值进行合理选择,或者使用其他更加鲁棒的优化方法,如拟牛顿法、共轭梯度法等。