非线性规划中的牛顿法基础题
字数 2783 2025-10-26 09:00:43

非线性规划中的牛顿法基础题

题目描述
考虑一个无约束非线性规划问题:
最小化函数 \(f(x) = x_1^4 + 2x_2^2 - x_1x_2 + 3x_1\),其中 \(x = [x_1, x_2]^T\)
使用牛顿法找到该函数的局部极小值点,初始点设为 \(x^{(0)} = [1, 1]^T\),迭代两次(即计算 \(x^{(1)}\)\(x^{(2)}\)),并分析结果。


解题过程

牛顿法通过迭代公式 \(x^{(k+1)} = x^{(k)} - [H_f(x^{(k)})]^{-1} \nabla f(x^{(k)})\) 寻找极小值,其中 \(\nabla f\) 是梯度,\(H_f\) 是Hessian矩阵(二阶导数矩阵)。以下是详细步骤:

  1. 计算梯度 \(\nabla f(x)\)
    \(f(x)\) 求偏导:

\[ \frac{\partial f}{\partial x_1} = 4x_1^3 - x_2 + 3, \quad \frac{\partial f}{\partial x_2} = 4x_2 - x_1. \]

梯度向量为:

\[ \nabla f(x) = \begin{bmatrix} 4x_1^3 - x_2 + 3 \\ 4x_2 - x_1 \end{bmatrix}. \]

  1. 计算Hessian矩阵 \(H_f(x)\)
    求二阶偏导:

\[ \frac{\partial^2 f}{\partial x_1^2} = 12x_1^2, \quad \frac{\partial^2 f}{\partial x_1 \partial x_2} = -1, \quad \frac{\partial^2 f}{\partial x_2^2} = 4. \]

Hessian矩阵为:

\[ H_f(x) = \begin{bmatrix} 12x_1^2 & -1 \\ -1 & 4 \end{bmatrix}. \]

  1. 第一次迭代(k=0)
    • 初始点 \(x^{(0)} = [1, 1]^T\)
    • 梯度:

\[ \nabla f(x^{(0)}) = \begin{bmatrix} 4(1)^3 - 1 + 3 \\ 4(1) - 1 \end{bmatrix} = \begin{bmatrix} 6 \\ 3 \end{bmatrix}. \]

  • Hessian矩阵:

\[ H_f(x^{(0)}) = \begin{bmatrix} 12(1)^2 & -1 \\ -1 & 4 \end{bmatrix} = \begin{bmatrix} 12 & -1 \\ -1 & 4 \end{bmatrix}. \]

  • 求逆矩阵:

\[ H_f^{-1} = \frac{1}{(12)(4) - (-1)(-1)} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix} = \frac{1}{47} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix}. \]

  • 更新点:

\[ x^{(1)} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} - \frac{1}{47} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix} \begin{bmatrix} 6 \\ 3 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} - \frac{1}{47} \begin{bmatrix} 27 \\ 42 \end{bmatrix} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix}. \]

  1. 第二次迭代(k=1)
    • 当前点 \(x^{(1)} \approx [0.4255, 0.1064]^T\)
    • 梯度:

\[ \nabla f(x^{(1)}) \approx \begin{bmatrix} 4(0.4255)^3 - 0.1064 + 3 \\ 4(0.1064) - 0.4255 \end{bmatrix} \approx \begin{bmatrix} 3.008 \\ 0.0001 \end{bmatrix}. \]

  • Hessian矩阵:

\[ H_f(x^{(1)}) \approx \begin{bmatrix} 12(0.4255)^2 & -1 \\ -1 & 4 \end{bmatrix} \approx \begin{bmatrix} 2.173 & -1 \\ -1 & 4 \end{bmatrix}. \]

  • 求逆矩阵:

\[ H_f^{-1} \approx \frac{1}{(2.173)(4) - (-1)(-1)} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix} \approx \frac{1}{7.692} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix}. \]

  • 更新点:

\[ x^{(2)} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix} - \frac{1}{7.692} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix} \begin{bmatrix} 3.008 \\ 0.0001 \end{bmatrix} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix} - \begin{bmatrix} 1.564 \\ 0.391 \end{bmatrix} \approx \begin{bmatrix} -1.1385 \\ -0.2846 \end{bmatrix}. \]

  1. 结果分析
    • 两次迭代后,点从 \([1,1]\) 移动到 \([-1.1385, -0.2846]\)
    • 梯度在 \(x^{(1)}\) 的第二个分量接近零,但第一次迭代后Hessian矩阵的条件数较大(约7.69),导致第二次迭代步长过大,可能发散。
    • 牛顿法需Hessian矩阵正定才能保证收敛,此处初始点选择可能导致问题。实际应用中常引入步长因子或改用拟牛顿法。
非线性规划中的牛顿法基础题 题目描述 考虑一个无约束非线性规划问题: 最小化函数 \( f(x) = x_ 1^4 + 2x_ 2^2 - x_ 1x_ 2 + 3x_ 1 \),其中 \( x = [ x_ 1, x_ 2 ]^T \)。 使用牛顿法找到该函数的局部极小值点,初始点设为 \( x^{(0)} = [ 1, 1 ]^T \),迭代两次(即计算 \( x^{(1)} \) 和 \( x^{(2)} \)),并分析结果。 解题过程 牛顿法通过迭代公式 \( x^{(k+1)} = x^{(k)} - [ H_ f(x^{(k)})]^{-1} \nabla f(x^{(k)}) \) 寻找极小值,其中 \( \nabla f \) 是梯度,\( H_ f \) 是Hessian矩阵(二阶导数矩阵)。以下是详细步骤: 计算梯度 \( \nabla f(x) \) 对 \( f(x) \) 求偏导: \[ \frac{\partial f}{\partial x_ 1} = 4x_ 1^3 - x_ 2 + 3, \quad \frac{\partial f}{\partial x_ 2} = 4x_ 2 - x_ 1. \] 梯度向量为: \[ \nabla f(x) = \begin{bmatrix} 4x_ 1^3 - x_ 2 + 3 \\ 4x_ 2 - x_ 1 \end{bmatrix}. \] 计算Hessian矩阵 \( H_ f(x) \) 求二阶偏导: \[ \frac{\partial^2 f}{\partial x_ 1^2} = 12x_ 1^2, \quad \frac{\partial^2 f}{\partial x_ 1 \partial x_ 2} = -1, \quad \frac{\partial^2 f}{\partial x_ 2^2} = 4. \] Hessian矩阵为: \[ H_ f(x) = \begin{bmatrix} 12x_ 1^2 & -1 \\ -1 & 4 \end{bmatrix}. \] 第一次迭代(k=0) 初始点 \( x^{(0)} = [ 1, 1 ]^T \)。 梯度: \[ \nabla f(x^{(0)}) = \begin{bmatrix} 4(1)^3 - 1 + 3 \\ 4(1) - 1 \end{bmatrix} = \begin{bmatrix} 6 \\ 3 \end{bmatrix}. \] Hessian矩阵: \[ H_ f(x^{(0)}) = \begin{bmatrix} 12(1)^2 & -1 \\ -1 & 4 \end{bmatrix} = \begin{bmatrix} 12 & -1 \\ -1 & 4 \end{bmatrix}. \] 求逆矩阵: \[ H_ f^{-1} = \frac{1}{(12)(4) - (-1)(-1)} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix} = \frac{1}{47} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix}. \] 更新点: \[ x^{(1)} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} - \frac{1}{47} \begin{bmatrix} 4 & 1 \\ 1 & 12 \end{bmatrix} \begin{bmatrix} 6 \\ 3 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} - \frac{1}{47} \begin{bmatrix} 27 \\ 42 \end{bmatrix} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix}. \] 第二次迭代(k=1) 当前点 \( x^{(1)} \approx [ 0.4255, 0.1064 ]^T \)。 梯度: \[ \nabla f(x^{(1)}) \approx \begin{bmatrix} 4(0.4255)^3 - 0.1064 + 3 \\ 4(0.1064) - 0.4255 \end{bmatrix} \approx \begin{bmatrix} 3.008 \\ 0.0001 \end{bmatrix}. \] Hessian矩阵: \[ H_ f(x^{(1)}) \approx \begin{bmatrix} 12(0.4255)^2 & -1 \\ -1 & 4 \end{bmatrix} \approx \begin{bmatrix} 2.173 & -1 \\ -1 & 4 \end{bmatrix}. \] 求逆矩阵: \[ H_ f^{-1} \approx \frac{1}{(2.173)(4) - (-1)(-1)} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix} \approx \frac{1}{7.692} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix}. \] 更新点: \[ x^{(2)} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix} - \frac{1}{7.692} \begin{bmatrix} 4 & 1 \\ 1 & 2.173 \end{bmatrix} \begin{bmatrix} 3.008 \\ 0.0001 \end{bmatrix} \approx \begin{bmatrix} 0.4255 \\ 0.1064 \end{bmatrix} - \begin{bmatrix} 1.564 \\ 0.391 \end{bmatrix} \approx \begin{bmatrix} -1.1385 \\ -0.2846 \end{bmatrix}. \] 结果分析 两次迭代后,点从 \( [ 1,1] \) 移动到 \( [ -1.1385, -0.2846 ] \)。 梯度在 \( x^{(1)} \) 的第二个分量接近零,但第一次迭代后Hessian矩阵的条件数较大(约7.69),导致第二次迭代步长过大,可能发散。 牛顿法需Hessian矩阵正定才能保证收敛,此处初始点选择可能导致问题。实际应用中常引入步长因子或改用拟牛顿法。