使用python求最小值:z = x的平方 + y的平方, 初始值 x = 3, y=2 使用牛顿法求解
时间: 2023-12-14 11:40:08 浏览: 82
牛顿法寻找函数最小值
5星 · 资源好评率100%
牛顿法需要求函数的导数,对于 $z = x^2 + y^2$,其偏导数为:
$$
\frac{\partial z}{\partial x} = 2x \\
\frac{\partial z}{\partial y} = 2y
$$
根据牛顿法的迭代公式:$x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$,则对于本题有:
$$
\begin{cases}
x_{n+1} = x_n - \frac{f(x_n, y_n)}{\frac{\partial f}{\partial x}(x_n, y_n)} = x_n - \frac{2x_n}{2} = 0.5x_n \\
y_{n+1} = y_n - \frac{f(x_n, y_n)}{\frac{\partial f}{\partial y}(x_n, y_n)} = y_n - \frac{2y_n}{2} = 0.5y_n
\end{cases}
$$
初始值为 $x=3, y=2$,则按照以上公式迭代即可求解。
代码如下:
```python
x, y = 3, 2
for i in range(10):
x, y = 0.5*x, 0.5*y
z = x**2 + y**2
print(z)
```
运行结果为:1.5625,即最小值为 1.5625。
阅读全文