基于黄金分割的修正Powell算法

1.目标函数

function y= TextF(x)
%目标函数
%输入参数x[x1,x2];
%输出参数y
y = x(1)*x(1)+2*x(2)*x(2)-4*x(1)-2*x(1)*x(2);
end</span>

2.修订的Powell算法

function [Matrix,Value] = Powell
%--------------------------------Step1-------------------------------------
%设置初始迭代轮次k=1;迭代精度:Err;初始点;初始搜索方向组;
Err = 0.01;
X0 = [1,1];
Dir = [1,0;
       0,1];
num = 2; 

while(1)
%----------------------------------Step2-----------------------------------
%第一轮:
    %沿着第一个方向进行一维搜索的得到相应的极值
    [X(1,:),JZ(1)] = OneDimensionSearch(X0,Dir(1,:),Err);
    %沿着第2到第num方向进行一维搜索
    for k = 2:num
        dir(k,:) = Dir(k,:);
        [X(k,:),JZ(k)] = OneDimensionSearch(X(k-1,:),dir(k,:),Err);
    end
    %构造新的搜索方向向量 并以X0为起点,沿此方向进行新一轮搜索ÿ
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值