用坐标轮换法求目标函数f(x)=x1^2+x2^2-x1x2-10x1-4x2+60的无约束最优值(极小值)给定初始点(0,0),精度0.1
时间: 2024-06-01 09:11:44 浏览: 150
首先,将目标函数改写为矩阵的形式:
$$
f(\mathbf{x}) = \begin{bmatrix} x_1 & x_2 \end{bmatrix} \begin{bmatrix} x_1 & -\frac{1}{2} \\ -\frac{1}{2} & x_2 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} - \begin{bmatrix} 10 & 4 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + 60
$$
可以发现,矩阵 $\begin{bmatrix} x_1 & -\frac{1}{2} \\ -\frac{1}{2} & x_2 \end{bmatrix}$ 为对称矩阵,因此可以使用坐标轮换法来进行优化。具体步骤如下:
1. 初始化 $\mathbf{x}^{(0)} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}$,$k=0$,设精度 $\epsilon=0.1$。
2. 对于每个轮换 $i \in \{1,2\}$,进行如下操作:
1. 计算 $\mathbf{y} = \mathbf{x}^{(k)}$。
2. 计算 $\mathbf{d} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}$,其中 $d_i = -y_i$,$d_j = y_j$($j \neq i$)。
3. 在方向 $\mathbf{d}$ 上进行一维搜索,得到最优步长 $\alpha_i$。
4. 更新 $\mathbf{x}^{(k+1)} = \mathbf{x}^{(k)} + \alpha_i \mathbf{d}$。
5. 如果 $\|\mathbf{x}^{(k+1)} - \mathbf{x}^{(k)}\| < \epsilon$,则跳出循环。
6. 将 $k$ 更新为 $k+1$,继续下一个轮换。
3. 输出最终解 $\mathbf{x}^{(k)}$ 和最小值 $f(\mathbf{x}^{(k)})$。
下面是具体的计算过程:
对于第一个轮换 $i=1$:
$$
\begin{aligned}
\mathbf{y} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \\
\mathbf{d} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \\
d_1 &= -y_1 = 0 \\
d_2 &= y_2 = 0 \\
f(\mathbf{x}^{(k)} + \alpha \mathbf{d}) &= \frac{1}{4} \alpha^2 - 10\alpha + 60 \\
\frac{\partial f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha} &= \frac{1}{2} \alpha - 10 \\
\frac{\partial^2 f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha^2} &= \frac{1}{2} \\
\alpha_1 &= \frac{\partial f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha} \Bigg/ \frac{\partial^2 f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha^2}
= 20 \\
\mathbf{x}^{(k+1)} &= \begin{bmatrix} 20 \\ 0 \end{bmatrix} \\
\|\mathbf{x}^{(k+1)} - \mathbf{x}^{(k)}\| &= 20 \\
\end{aligned}
$$
对于第二个轮换 $i=2$:
$$
\begin{aligned}
\mathbf{y} &= \begin{bmatrix} 20 \\ 0 \end{bmatrix} \\
\mathbf{d} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \\
d_1 &= y_1 = 20 \\
d_2 &= -y_2 = 0 \\
f(\mathbf{x}^{(k)} + \alpha \mathbf{d}) &= -20\alpha + 400 \\
\frac{\partial f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha} &= -20 \\
\frac{\partial^2 f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha^2} &= 0 \\
\alpha_2 &= \frac{\partial f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha} \Bigg/ \frac{\partial^2 f(\mathbf{x}^{(k)} + \alpha \mathbf{d})}{\partial \alpha^2}
= -\infty \\
\end{aligned}
$$
由于 $\alpha_2$ 不存在,第二个轮换结束。最终解为 $\mathbf{x}^{(1)} = \begin{bmatrix} 20 \\ 0 \end{bmatrix}$,最小值为 $f(\mathbf{x}^{(1)}) = -380$。
需要注意的是,当 $f(\mathbf{x})$ 不是凸函数时,坐标轮换法可能会陷入局部最优解。因此,需要使用多个初始点进行优化,以避免陷入局部最优解。另外,坐标轮换法只适用于一些特殊的问题,对于一般的优化问题,需要使用更为通用的优化算法,如牛顿法、拟牛顿法等。
阅读全文