非线性规划中的近似梯度法基础题
题目描述:
考虑非线性规划问题:
minimize f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
subject to x₁² + x₂² ≤ 1, x₁ ≥ 0, x₂ ≥ 0
假设在迭代点 x⁽ᵏ⁾ = (0.5, 0.5) 处,由于函数复杂性无法直接计算精确梯度,需使用近似梯度法(如有限差分法)计算搜索方向。请用中心差分法(步长 h=0.01)计算当前点的近似梯度,并说明如何利用该梯度进行一步迭代。
解题过程:
1. 问题分析
目标函数 f(x) 包含高次项 (x₁-2)⁴ 和非线性项 (x₁-2x₂)²,约束条件为圆域和非负限制。在 x⁽ᵏ⁾=(0.5,0.5) 处,需通过数值方法近似梯度,因为直接求导可能因计算资源或函数复杂性而困难。
2. 近似梯度计算(中心差分法)
中心差分公式为:
∇f(x)ᵢ ≈ [f(x+h⋅eᵢ) - f(x-h⋅eᵢ)] / (2h),其中 eᵢ 为第 i 个单位向量,h=0.01。
-
计算 ∂f/∂x₁ 的近似值:
f(x+h⋅e₁) = f(0.5+0.01, 0.5) = f(0.51, 0.5)
= (0.51-2)⁴ + (0.51-2×0.5)² = (-1.49)⁴ + (0.51-1)² = 4.9280 + 0.2401 = 5.1681
f(x-h⋅e₁) = f(0.5-0.01, 0.5) = f(0.49, 0.5)
= (0.49-2)⁴ + (0.49-1)² = (-1.51)⁴ + (-0.51)² = 5.1980 + 0.2601 = 5.4581
∂f/∂x₁ ≈ (5.1681 - 5.4581) / (2×0.01) = (-0.29) / 0.02 = -14.5 -
计算 ∂f/∂x₂ 的近似值:
f(x+h⋅e₂) = f(0.5, 0.5+0.01) = f(0.5, 0.51)
= (0.5-2)⁴ + (0.5-2×0.51)² = (-1.5)⁴ + (0.5-1.02)² = 5.0625 + 0.2704 = 5.3329
f(x-h⋅e₂) = f(0.5, 0.5-0.01) = f(0.5, 0.49)
= (0.5-2)⁴ + (0.5-0.98)² = 5.0625 + 0.2304 = 5.2929
∂f/∂x₂ ≈ (5.3329 - 5.2929) / 0.02 = 0.04 / 0.02 = 2.0
近似梯度为 ∇f ≈ (-14.5, 2.0)。
3. 迭代方向确定
由于约束存在,需结合可行方向法。当前点 x⁽ᵏ⁾=(0.5,0.5) 位于圆内(0.5²+0.5²=0.5<1)且满足非负约束,因此可用负梯度方向作为搜索方向:
d = -∇f ≈ (14.5, -2.0)
4. 步长选择与迭代更新
需保证新点 x⁽ᵏ⁺¹⁾ = x⁽ᵏ⁾ + αd 满足约束。通过简单试探(如 α=0.01):
x₁⁽ᵏ⁺¹⁾ = 0.5 + 0.01×14.5 = 0.645
x₂⁽ᵏ⁺¹⁾ = 0.5 - 0.01×2.0 = 0.48
检查约束:0.645² + 0.48² ≈ 0.416 + 0.230 = 0.646 < 1,且坐标非负,可行。
5. 结论
使用中心差分法得到近似梯度后,沿负方向移动并选择适当步长,即可完成一步迭代。实际应用中需结合线搜索(如Armijo准则)优化步长,并重复过程直至收敛。