约束优化问题--乘子法

文章详细介绍了乘子法在处理约束优化问题中的应用,包括惩罚函数法的局限性,Hestenes乘子法和Rockafellar乘子法的原理。Hestenes乘子法通过结合Lagrange函数和惩罚项来处理等式约束,而Rockafellar乘子法扩展到处理不等式约束。文章提供了两种方法的迭代过程和终止条件,并通过实例展示了乘子法的运用。
摘要由CSDN通过智能技术生成

乘子法

惩罚函数法再分析

主要缺点: 当惩罚因子 M M M增大, 无约束问题的目标函数 F ( x , M ) F(\boldsymbol{x},M) F(x,M)的Hesse矩阵越来越病态, 使得无约束优化方法的计算难以进行. 下面分析 M M M必须无限增大的原因.

考虑等式约束优化问题
min ⁡ f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , p . \begin{align*} & \min f(\boldsymbol{x})\\ & s.t. h_i(\boldsymbol{x})=0,i=1,2,...,p. \end{align*} minf(x)s.t.hi(x)=0,i=1,2,...,p.
引入罚函数
F ( x , M ) = f ( x ) + ∑ i = 1 p [ h i ( x ) ] 2 , F(\boldsymbol{x},M)=f(\boldsymbol{x})+\sum_{i=1}^p[h_i(\boldsymbol{x})]^2, F(x,M)=f(x)+i=1p[hi(x)]2,
x ∗ \boldsymbol{x}^* x是问题的最优解, 则 h i ( x ∗ ) = 0 , i = 1 , 2 , . . . , p h_i(\boldsymbol{x}^*)=0,i=1,2,...,p hi(x)=0,i=1,2,...,p. 于是有
∇ x F ( x ∗ , M ) = ∇ f ( x ∗ ) + 2 M ∑ i = 1 p h i ( x ∗ ) ∇ h i ( x ∗ ) = ∇ f ( x ∗ ) . \nabla_xF(\boldsymbol{x}^*,M)=\nabla f(\boldsymbol{x}^*)+2M\sum_{i=1}^ph_i(\boldsymbol{x}^*)\nabla h_i(\boldsymbol{x}^*)=\nabla f(\boldsymbol{x}^*). xF(x,M)=f(x)+2Mi=1phi(x)hi(x)=f(x).
另一方面, 考虑上述约束问题的 L a g r a n g e Lagrange Lagrange函数
L ( x , μ ) = f ( x ) + ∑ i = 1 p μ i h i ( x ) , L(\boldsymbol{x},\mu)=f(\boldsymbol{x})+\sum_{i=1}^p\mu_ih_i(\boldsymbol{x}), L(x,μ)=f(x)+i=1pμihi(x),
由KKT条件有
∇ x L ( x ∗ , μ ∗ ) = ∇ f ( x ∗ ) + ∑ i = 1 p μ i ∇ h i ( x ∗ ) = 0. \nabla_xL(\boldsymbol{x}^*,\mu^*)=\nabla f(\boldsymbol{x}^*)+\sum_{i=1}^p \mu_i\nabla h_i(\boldsymbol{x}^*)=0. xL(x,μ)=f(x)+i=1pμihi(x)=0.
则可知在通常情况下, ∇ f ( x ∗ ) ≠ 0 \nabla f(\boldsymbol{x}^*)\ne 0 f(x)=0. 只有当 x ∗ \boldsymbol{x}^* x f ( x ) f(\boldsymbol{x}) f(x)无约束问题稳定点时, ∇ f ( x ∗ ) = 0 \nabla f(\boldsymbol{x}^*)= 0 f(x)=0才成立. 因此, 找不到一个有限的 M M M, 使得 ∇ x F ( x ∗ , M ) = 0 \nabla_xF(\boldsymbol{x}^*,M)=0 xF(x,M)=0成立, 只能期望 lim ⁡ M → + ∞ ∇ x F ( x ∗ , M ) = 0 \lim_{M\rightarrow+\infty}\nabla_xF(\boldsymbol{x}^*,M)=0 limM+xF(x,M)=0.

以上分析过程启发我们将 L a g r a n g e Lagrange Lagrange函数与惩罚项相结合, 构造增广 L a g r a n g e Lagrange Lagrange函数, 也就是接下来要介绍的乘子法.

Hestenes乘子法

Hestenes首先引入增广 L a g r a n g e Lagrange Lagrange函数
φ ( x , μ ) = f ( x ) + ∑ i = 1 p μ i h i ( x ) + c 2 ∑ i = 1 p [ h i ( x ) ] 2 = : L ( x , μ ) + c 2 ∑ i = 1 p [ h i ( x ) ] 2 . \begin{align*} \varphi(\boldsymbol x,\boldsymbol{\mu})& =f(\boldsymbol x)+\sum_{i=1}^p\mu_ih_i(x)+\frac{c}{2}\sum_{i=1}^p[h_i(x)]^2\\ & =:L(\boldsymbol x,\boldsymbol \mu)+\frac{c}{2}\sum_{i=1}^p[h_i(x)]^2. \end{align*} φ(x,μ)=f(x)+i=1pμihi(x)+2ci=1p[hi(x)]2=:L(x,μ)+2ci=1p[hi(x)]2.
其中 μ = [ μ 1 , . . . , μ p ] \boldsymbol \mu=[\mu_1,...,\mu_p] μ=[μ1,...,μp] L a g r a n g e Lagrange Lagrange乘子, 罚因子被改写为 c 2 \frac{c}{2} 2c.

由最优性一阶必要条件可知, ∃ μ ∗ , s . t . ( x ∗ , μ ∗ ) \exists \boldsymbol \mu^*,s.t. (\boldsymbol x^*,\boldsymbol \mu^*) μ,s.t.(x,μ) L ( x , μ ) L(\boldsymbol x,\boldsymbol \mu) L(x,μ)的稳定点, 即 ∇ x L ( x ∗ , μ ∗ ) = 0 \nabla_xL(\boldsymbol x^*,\boldsymbol \mu^*)=0 xL(x,μ)=0. 又因为附加项 c 2 ∑ i = 1 p [ h i ( x ) ] 2 \frac{c}{2}\sum_{i=1}^p[h_i(x)]^2 2ci=1p[hi(x)]2 x ∗ x^* x梯度为0, 因此有
∇ x φ ( x ∗ , μ ∗ ) = 0. \nabla_x\varphi(\boldsymbol x^*,\boldsymbol \mu^*)=0. xφ(x,μ)=0.
说明 x ∗ x^* x φ ( x ∗ , μ ∗ ) \varphi(\boldsymbol x^*,\boldsymbol \mu^*) φ(x,μ)稳定点. 则问题进一步转化为, 对某个 μ ∗ \boldsymbol \mu^* μ, 求 φ ( x ∗ , μ ∗ ) \varphi(\boldsymbol x^*,\boldsymbol \mu^*) φ(x,μ)的无约束极小点.

求解思路: 首先给定一个足够大的正数 c c c, 在迭代过程中逐步调整 μ ( k ) \boldsymbol \mu^{(k)} μ(k).

假设已经求得 μ ( k ) \boldsymbol \mu^{(k)} μ(k), 求解 min ⁡ φ ( x , μ ( k ) ) \min\varphi(\boldsymbol x,\boldsymbol \mu^{(k)}) minφ(x,μ(k))得最优解 x ( k ) \boldsymbol x^{(k)} x(k), 则有
∇ x φ ( x ( k ) , μ ( k ) ) = ∇ f ( x ( k ) ) + ∑ i = 1 p μ i ( k ) ∇ h i ( x ( k ) ) + c ∑ i = 1 p h i ( x ( k ) ) ∇ h i ( x ( k ) ) = 0. \nabla_x\varphi(\boldsymbol x^{(k)},\boldsymbol \mu^{(k)})=\nabla f(\boldsymbol x^{(k)})+\sum_{i=1}^p\mu_i^{(k)} \nabla h_i(\boldsymbol x^{(k)})+c\sum_{i=1}^p h_i(\boldsymbol x^{(k)})\nabla h_i(\boldsymbol x^{(k)})=0. xφ(x(k),μ(k))=f(x(k))+i=1pμi(k)hi(x(k))+ci=1phi(x(k))hi(x(k))=0.

∇ f ( x ( k ) ) + ∑ i = 1 p ( μ i ( k ) + c h i ( x ( k ) ) ∇ h i ( x ( k ) ) = 0. \nabla f(\boldsymbol x^{(k)})+\sum_{i=1}^p(\mu_i^{(k)} +ch_i(\boldsymbol x^{(k)})\nabla h_i(\boldsymbol x^{(k)})=0. f(x(k))+i=1p(μi(k)+chi(x(k))hi(x(k))=0.
将其与 ∇ L ( x ( k ) , μ ( k ) ) \nabla L(\boldsymbol x^{(k)},\boldsymbol \mu^{(k)}) L(x(k),μ(k))比较可得
μ i ( k + 1 ) = μ i ( k ) + c h i ( x ( k ) ) , i = 1 , . . . , p . \mu_i^{(k+1)}=\mu_i^{(k)}+ch_i(\boldsymbol x^{(k)}), i=1,...,p. μi(k+1)=μi(k)+chi(x(k)),i=1,...,p.
迭代终止条件?

**Theorem ** 设 x ( k ) \boldsymbol x^{(k)} x(k) min ⁡ φ ( x , μ ( k ) ) \min\varphi(\boldsymbol x,\boldsymbol \mu^{(k)}) minφ(x,μ(k))的最优解, 则 x ( k ) \boldsymbol x^{(k)} x(k)是原约束优化问题的最优解 ⇔ h i ( x ( k ) ) = 0 , i = 1 , . . . , p . \Leftrightarrow h_i(\boldsymbol x^{(k)})=0,i=1,...,p. hi(x(k))=0,i=1,...,p.

因此, 迭代终止条件可取为: 给定计算精度 ε > 0 , \varepsilon>0, ε>0, x ( k ) \boldsymbol x^{(k)} x(k)满足 ∥ h ( x ( k ) ) ∥ < ε \|h(\boldsymbol x^{(k)})\|<\varepsilon h(x(k))<ε, 则停止迭代, 输出最优解 x ( k ) \boldsymbol x^{(k)} x(k). 此外, 若迭代过程中, μ ( k ) \boldsymbol \mu^{(k)} μ(k)收敛太慢, 可适当增大因子 c c c.

算法流程

步骤1 给定初始点 x ( 0 ) x^{(0)} x(0), 初始乘子向量 μ ( 1 ) \boldsymbol \mu^{(1)} μ(1)(可取 μ ( 1 ) = 0 \boldsymbol \mu^{(1)}=\boldsymbol 0 μ(1)=0), ε > 0 , c > 0 , 0 < r < 1 , α > 1 \varepsilon>0,c>0,0<r<1,\alpha>1 ε>0,c>0,0<r<1,α>1, 令 k = 1 k=1 k=1;

步骤2 x ( k − 1 ) \boldsymbol x^{(k-1)} x(k1)为初始点, 求解 min ⁡ φ ( x , μ ( k ) ) \min\varphi(\boldsymbol x,\boldsymbol \mu^{(k)}) minφ(x,μ(k)), 得 x ( k ) \boldsymbol x^{(k)} x(k);

步骤3 ∥ h ( x ( k ) ) ∥ < ε \|h(\boldsymbol x^{(k)})\|<\varepsilon h(x(k))<ε, 迭代终止, x ( k ) \boldsymbol x^{(k)} x(k)为最优解; 否则, 计算 β = ∥ h ( x ( k ) ) ∥ ∥ x ( k − 1 ) ∥ \beta=\frac{\|h(\boldsymbol x^{(k)})\|}{\|\boldsymbol x^{(k-1)}\|} β=x(k1)h(x(k)), 若 β > r \beta> r β>r, 则 c = α c c=\alpha c c=αc;

步骤4 μ i ( k + 1 ) = μ i ( k − 1 ) + c h i ( x ( k ) ) , i = 1 , . . . , p + 1 \mu_i^{(k+1)}=\mu_i^{(k-1)}+ch_i(\boldsymbol x^{(k)}), i=1,...,p+1 μi(k+1)=μi(k1)+chi(x(k)),i=1,...,p+1, 令 k = k + 1 k=k+1 k=k+1, 返回步骤1.

Rockafellar乘子法

Rockafellar将乘子法推广到不等式约束的优化问题
min ⁡ f ( x ) s . t . g i ( x ) ≥ 0 , i = 1 , . . . , p . \begin{align*} & \min f(x)\\ & s.t. g_i(x)\ge 0,i=1,...,p. \end{align*} minf(x)s.t.gi(x)0,i=1,...,p.

通过引入松弛变量 z i ( i = 1 , . . . , p ) z_i(i=1,...,p) zi(i=1,...,p), 将不等式约束转化为等式约束
g i ( x ) − z i 2 = 0 , i = 1 , . . . , p . g_i(x)-z_i^2=0,i=1,...,p. gi(x)zi2=0,i=1,...,p.
考虑其对应的增广 L a g r a n g e Lagrange Lagrange函数
Φ ( x , z , μ ) = f ( x ) + ∑ i = 1 p μ i [ g i ( x ) − z i 2 ] + c 2 ∑ i = 1 p [ g i ( x ) − z i 2 ] 2 . \Phi(\boldsymbol x,\boldsymbol z,\boldsymbol \mu)=f(\boldsymbol x)+\sum_{i=1}^p\mu_i[g_i(\boldsymbol x)-z_i^2]+\frac{c}{2}\sum_{i=1}^p[g_i(\boldsymbol x)-z_i^2]^2. Φ(x,z,μ)=f(x)+i=1pμi[gi(x)zi2]+2ci=1p[gi(x)zi2]2.
Φ ( x , z , μ ) \Phi(\boldsymbol x,\boldsymbol z,\boldsymbol \mu) Φ(x,z,μ)关于 z \boldsymbol z z求极小,
φ ( x , μ ) = min ⁡ z Φ ( x , z , μ ) , ∇ z Φ ( x , z , μ ) = 0 , \varphi(\boldsymbol x,\boldsymbol \mu)=\min_{\boldsymbol z}\Phi(\boldsymbol x,\boldsymbol z,\boldsymbol \mu),\nabla_{\boldsymbol z}\Phi(\boldsymbol x,\boldsymbol z,\boldsymbol \mu)=0, φ(x,μ)=zminΦ(x,z,μ),zΦ(x,z,μ)=0,

z i [ c z i 2 − ( μ i + c g i ( x ) ) ] = 0 , i = 1 , . . . , p . z_i[cz_i^2-(\mu_i+cg_i(\boldsymbol x))]=0,i=1,...,p. zi[czi2(μi+cgi(x))]=0,i=1,...,p.
μ i + c g i ( x ) ≤ 0 \mu_i+cg_i(\boldsymbol x)\le 0 μi+cgi(x)0, 则 z i 2 = 0 z_i^2=0 zi2=0; 若 μ i + c g i ( x ) > 0 \mu_i+cg_i(\boldsymbol x)> 0 μi+cgi(x)>0, 则 z i 2 = 1 c ( μ i + c g i ( x ) ) z_i^2=\frac{1}{c}(\mu_i+cg_i(x)) zi2=c1(μi+cgi(x)), 即
g i ( x ) − z i 2 = { g i ( x ) , μ i + c g i ( x ) ≤ 0 , − μ i c , μ i + c g i ( x ) > 0. g_i(\boldsymbol x)-z_i^2= \begin{cases} g_i(\boldsymbol x),\mu_i+cg_i(\boldsymbol x)\le 0,\\ -\frac{\mu_i}{c},\mu_i+cg_i(\boldsymbol x)> 0. \end{cases} gi(x)zi2={gi(x),μi+cgi(x)0,cμi,μi+cgi(x)>0.
μ i + c g i ( x ) ≤ 0 \mu_i+cg_i(\boldsymbol x)\le 0 μi+cgi(x)0时,
μ i [ g i ( x ) − z i 2 ] + c 2 [ g i ( x ) − z i 2 ] 2 = μ i g i ( x ) + c 2 [ g i ( x ) ] 2 = 1 2 c [ ( μ i + c g i ( x ) ) 2 − μ i 2 ] , \mu_i[g_i(\boldsymbol x)-z_i^2]+\frac{c}{2}[g_i(\boldsymbol x)-z_i^2]^2=\mu_ig_i(\boldsymbol x)+\frac{c}{2}[g_i(\boldsymbol x)]^2=\frac{1}{2c}[(\mu_i+cg_i(\boldsymbol x))^2-\mu_i^2], μi[gi(x)zi2]+2c[gi(x)zi2]2=μigi(x)+2c[gi(x)]2=2c1[(μi+cgi(x))2μi2],
μ i + c g i ( x ) > 0 \mu_i+cg_i(\boldsymbol x)> 0 μi+cgi(x)>0时,
μ i [ g i ( x ) − z i 2 ] + c 2 [ g i ( x ) − z i 2 ] 2 = − μ i 2 c + c 2 ( − μ i c ) 2 = − 1 2 c μ i 2 . \mu_i[g_i(\boldsymbol x)-z_i^2]+\frac{c}{2}[g_i(\boldsymbol x)-z_i^2]^2=-\frac{\mu_i^2}{c}+\frac{c}{2}(-\frac{\mu_i}{c})^2=-\frac{1}{2c}\mu_i^2. μi[gi(x)zi2]+2c[gi(x)zi2]2=cμi2+2c(cμi)2=2c1μi2.

φ ( x , μ ) = f ( x ) + 1 2 c ∑ i = 1 p { [ min ⁡ ( 0 , μ i + c g i ( x ) ) ] 2 − μ i 2 } . \varphi(\boldsymbol x,\boldsymbol \mu)=f(\boldsymbol x)+\frac{1}{2c}\sum_{i=1}^p\{[\min(0,\mu_i+cg_i(\boldsymbol x))]^2-\mu_i^2\}. φ(x,μ)=f(x)+2c1i=1p{[min(0,μi+cgi(x))]2μi2}.
可得乘子迭代公式
μ i ( k + 1 ) = min ⁡ { 0 , μ i ( k ) + c g i ( x ( k ) ) } , \mu_i^{(k+1)}=\min\{0,\mu_i^{(k)}+cg_i(\boldsymbol x^{(k)})\}, μi(k+1)=min{0,μi(k)+cgi(x(k))},
迭代终止准则
( ∑ i = 1 p [ min ⁡ ( g i ( x ) , − μ i c ) ] 2 ) 1 2 < ε . (\sum_{i=1}^p[\min(g_i(\boldsymbol x),-\frac{\mu_i}{c})]^2)^{\frac{1}{2}}<\varepsilon. (i=1p[min(gi(x),cμi)]2)21<ε.

应用举例

例1 等式约束问题

求解
min ⁡ f ( x 1 , x 2 ) = x 1 2 + x 2 2 s . t . x 1 + x 2 − 2 = 0. \begin{align*} & \min f(x_1,x_2)=x_1^2+x_2^2\\ & s.t. x_1+x_2-2=0. \end{align*} minf(x1,x2)=x12+x22s.t.x1+x22=0.
易知其最优解为 ( 1 , 1 ) T (1,1)^T (1,1)T.

: 增广 L a g r a n g e Lagrange Lagrange函数为
φ ( x 1 , x 2 , μ , c ) = x 1 2 + x 2 2 + μ ( x 1 + x 2 − 2 ) + c 2 ( x 1 + x 2 − 2 ) 2 . \varphi(x_1,x_2,\mu,c)=x_1^2+x_2^2+\mu(x_1+x_2-2)+\frac{c}{2}(x_1+x_2-2)^2. φ(x1,x2,μ,c)=x12+x22+μ(x1+x22)+2c(x1+x22)2.
∂ φ ∂ x 1 = ∂ φ ∂ x 2 = 0 \frac{\partial \varphi}{\partial x_1}=\frac{\partial \varphi}{\partial x_2}=0 x1φ=x2φ=0, 得
x 1 = x 2 = 2 c − μ 2 c + 2 . x_1=x_2=\frac{2c-\mu}{2c+2}. x1=x2=2c+22cμ.
则有
μ ( k + 1 ) = 1 c + 1 μ ( k ) − 2 c c + 1 . \mu^{(k+1)}=\frac{1}{c+1}\mu^{(k)}-\frac{2c}{c+1}. μ(k+1)=c+11μ(k)c+12c.
c = 10 , c=10, c=10, μ ( k + 1 ) = 1 11 μ ( k ) − 20 11 \mu^{(k+1)}=\frac{1}{11}\mu^{(k)}-\frac{20}{11} μ(k+1)=111μ(k)1120. 设 μ ( k ) → μ ∗ \mu^{(k)}\rightarrow \mu^* μ(k)μ, 可得
μ ∗ = 1 11 μ ∗ − 20 11 ⇒ u ∗ = − 2. \mu^*=\frac{1}{11}\mu^{*}-\frac{20}{11} \Rightarrow u^*=-2. μ=111μ1120u=2.
则原问题最优解 x ∗ = ( 1 , 1 ) T . \boldsymbol x^*=(1,1)^T. x=(1,1)T.

例2 不等式约束优化问题

求解
min ⁡ f ( x ) = x 1 2 + x 2 2 s . t . x 1 − 1 ≥ 0. \begin{align*} & \min f(\boldsymbol x)=x_1^2+x_2^2\\ & s.t. x_1-1\ge 0. \end{align*} minf(x)=x12+x22s.t.x110.
易知最优解为 ( 1 , 0 ) T . (1,0)^T. (1,0)T.

: 增广 L a g r a n g e Lagrange Lagrange函数为
φ ( x 1 , x 2 , μ , c ) = x 1 2 + x 2 2 + 1 2 c { [ min ⁡ ( 0 , μ + c ( x 1 − 1 ) ) ] 2 − μ 2 } = { x 1 2 + x 2 2 + μ ( x 1 − 1 ) + c 2 ( x 1 − 1 ) 2 , x 1 ≤ 1 − μ c , x 1 2 + x 2 2 − μ 2 2 c , x 1 > 1 − μ c . \varphi(x_1,x_2,\mu,c)=x_1^2+x_2^2+\frac{1}{2c}\{[\min (0,\mu+c(x_1-1))]^2-\mu^2\}\\= \begin{cases} & x_1^2+x_2^2+\mu(x_1-1)+\frac{c}{2}(x_1-1)^2, x_1\le 1-\frac{\mu}{c},\\ & x_1^2+x_2^2-\frac{\mu^2}{2c},x_1> 1-\frac{\mu}{c}. \end{cases} φ(x1,x2,μ,c)=x12+x22+2c1{[min(0,μ+c(x11))]2μ2}={x12+x22+μ(x11)+2c(x11)2,x11cμ,x12+x222cμ2,x1>1cμ.

∂ φ ∂ x 1 = { 2 x 1 + μ + c ( x 1 − 1 ) , x 1 ≤ 1 − μ c 2 x 1 , x 1 > 1 − μ c , ∂ φ ∂ x 2 = 2 x 2 . \frac{\partial \varphi}{\partial x_1}= \begin{cases} 2x_1+\mu+c(x_1-1),x_1\le 1-\frac{\mu}{c}\\ 2x_1,x_1> 1-\frac{\mu}{c} \end{cases} , \frac{\partial \varphi}{\partial x_2}=2x_2. x1φ={2x1+μ+c(x11),x11cμ2x1,x1>1cμ,x2φ=2x2.

∇ φ ( x , μ ) = 0 \nabla\varphi(\boldsymbol x,\boldsymbol \mu)=0 φ(x,μ)=0, 得极小点
x 1 = c − μ c + 2 , x 2 = 0. x_1=\frac{c-\mu}{c+2},x_2=0. x1=c+2cμ,x2=0.
c = 4 , c=4, c=4,
x ( k ) = ( 4 − μ ( k ) 6 , 0 ) T , μ ( k + 1 ) = min ⁡ { 0 , μ ( k ) + 4 ( x 1 ( k ) − 1 ) } = μ ( k ) − 4 3 . \begin{align*} & \boldsymbol x^{(k)}=(\frac{4-\mu^{(k)}}{6},0)^T,\\ & \mu^{(k+1)}=\min\{0,\mu^{(k)}+4(x_1^{(k)}-1)\}=\frac{\mu^{(k)}-4}{3}. \end{align*} x(k)=(64μ(k),0)T,μ(k+1)=min{0,μ(k)+4(x1(k)1)}=3μ(k)4.
k → + ∞ , μ ( k ) → − 2 , x ( k ) → ( 1 , 0 ) T = x ∗ k\rightarrow+\infty, \mu^{(k)}\rightarrow -2, \boldsymbol x^{(k)}\rightarrow (1,0)^T=x^* k+,μ(k)2,x(k)(1,0)T=x.

Code

以例1中的等式约束问题为练习, 给出简易MATLAB代码, 可以看出数值结果与理论相符.

% 等式约束的乘子法
function multph
global c miu
x0=[2,1]';
x1=x0;
miu=0;
eps=10^(-4);
c=10;
r=0.4;
a=2;
k=1;
while norm(h(x0))>=eps
    x1=fminsearch('phi',x0);
    beta=norm(h(x1))/norm(h(x0));
    x0=x1;
    if beta>r
        c=a*c;
    end
    miu=miu+c*h(x1);
    k=k+1;
end
format long
disp('最优解')
disp(x1)
disp('乘子')
disp(miu)
disp('迭代次数')
disp(k)
disp('终止条件')
disp(h(x0))
end
function r=h(x)
% 等式约束对应函数
r=x(1)+x(2)-2;
end
function r=phi(x)
global miu c
r=x(1)^2+x(2)^2+miu*(x(1)+x(2)-2)+c/2*(x(1)+x(2)-2)^2;
end
最优解
   1.000053801333254
   0.999968661617259

乘子
  -1.999646326786757

迭代次数
     6

终止条件
     2.246295051211433e-05
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值