优化算法及线性规划问题的MATLAB实现
1. 拟牛顿法求解Wood函数最小值
1.1 Wood函数及问题描述
Wood函数表达式如下:
[
f(x) = 100(x_2 - x_1^2)^2 + (1 - x_1)^2 + 90(x_4 - x_3^2)^2 + (1 - x_3)^2 + 10.1((x_2 - 1)^2 + (x_4 - 1)^2) + 19.8(x_2 - 1)(x_4 - 1)
]
我们使用Davidon–Fletcher–Powell (DFP)方法来寻找该函数的最小值。初始点设定为([-3, -1, -3, -1]),初始步长(\alpha_0 = 2),停止准则设为(1\times10^{-6}),最大函数评估次数为1000。
1.2 函数梯度计算
函数的梯度为:
[
\nabla f(x) =
\begin{bmatrix}
400x_1(x_1^2 - x_2) + 2(x_1 - 1) \
200(x_2 - x_1^2) + 20.2(x_2 - 1) + 19.8(x_4 - 1) \
360x_3(x_3^2 - x_4) + 2(x_3 - 1) \
180(x_4 - x_3^2) + 20.2(x_4 - 1) + 19.8(x_2 - 1)
\end{bmatrix}
]
1.3 MATLAB代码实现
fun = @(x) 100*(x(2)-x(1)^2)^2+(1-
超级会员免费看
订阅专栏 解锁全文
3645

被折叠的 条评论
为什么被折叠?



