数学规划--拟Newton法

DFP方法

1.迭代步骤
在这里插入图片描述

2.matlab代码
在这里插入图片描述

%DFP搜索最优解
clc;
clear;
Q = cell(100,1);
Q{1,1} = [2,0;0,4];
x = cell(100,1);
x{1,1} = [0;0];
H = cell(100,1);
H{1,1} = [1,0;0,1];
g = cell(100,1);
g{1,1} = [-2;0];
p = cell(100,1);
p{1,1} = -g{1,1};
lam = cell(100,1);
lam{1,1} = -(g{1,1}'*p{1,1})/(p{1,1}'*Q{1,1}*p{1,1});
s = cell(100,1);
y = cell(100,1);

for i = 2:11
    x{i,1} = x{i-1,1} + lam{i-1,1}*p{i-1,1};
    tmp = x{i,1};
    x1 = tmp(1);
    x2 = tmp(2);
    Q{i,1} = [24*x1+2-8*x2,-8*x1;-8*x1,4];
    g{i,1} = [8*x1^3+(2-8*x2)*x1-2;4*x2-4*x1^2];
    s{i-1,1} = x{i,1} - x{i-1,1};
    y{i-1,1} = g{i,1} - g{i-1,1};
    H{i,1} = H{i-1} - (H{i-1,1}*y{i-1,1}*y{i-1,1}'*H{i-1,1})/(y{i-1,1}'*H{i-1,1}*y{i-1,1}) + (s{i-1,1}*s{i-1,1}')/(s{i-1,1}'*y{i-1,1});
    p{i,1} = -H{i}*g{i};
    lam{i,1} = -(g{i,1}'*p{i,1})/(p{i,1}'*Q{i,1}*p{i,1});
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值