• 大小: 65KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Matlab
  • 标签: Matlab  

资源简介

最优化方法中的黄金分割法是一个比较重要的方法,即0.618法!该资源是在matlab中编程实现了该方法。

资源截图

代码片段和文件信息

% 程序:用黄金分割法求解单峰函数的极小值算法
% 设计:肖逢
interval_left=0;                % 初始搜索区间左边界点
interval_right=5;               % 初始搜索区间右边界点
cycle_times=0;                  % 迭代次数
precision = 0.001;              % 算法精度参数
right_interval_flag=0;          % 右侧区间标志,1=选右侧区间,0=选左侧区间
interval_length = interval_right - interval_left;                   % 计算搜索区间长度
insert_point_left = interval_left + 0.382*interval_length;          % 计算黄金分割法的左插入点 
insert_point_right = interval_left + 0.618*interval_length;         % 计算黄金分割法的右插入点
% 开始迭代
while interval_length>precision  
    value_left = cos(insert_point_left);                            % 计算左插入点的函数值
    value_right = cos(insert_point_right);                          % 计算右插入点的函数值    
    if value_left>value_right
        right_interval_flag=1;                                      % 选择右侧区间
        interval_left = insert_point_left;                          % 压缩区间后,更新左边界点
        insert_point_left = insert_point_right;                     % 下次迭代运算左插入点
    else
        right_interval_flag=0;                                      % 选择左侧区间
        interval_right = insert_point_right;                        % 压缩区间后,更新右边界点
        insert_point_right = insert_point_left;                     % 下次迭代运算右插入点
    end    
    interval_length = interval_right - interval_left;               % 计算区间长度
    cycle_times=cycle_times+1;                                      % 迭代计数
    
    if right_interval_flag==1
        insert_point_right = interval_left + 0.618*interval_length; % 右区间,则计算下次迭代运算的右插入点
    else
        insert_point_left = interval_left + 0.382*interval_length;  % 左区间,则计算下次迭代运算的左插入点
    end
end
x = 0.5 * (interval_right + interval_left)                          % 黄金分割算法搜索到的极小值点
y = cos(x)                                                          % 极小值点处函数值

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-12-28 18:12  0.618法(肖逢-122081915)\
     文件        2081  2012-11-13 22:16  0.618法(肖逢-122081915)\golden_mean.m
     文件       65536  2012-11-13 22:12  0.618法(肖逢-122081915)\黄金分割法在求解单峰函数的极小值中的应用(肖逢).doc
     文件       57344  2012-11-13 22:12  0.618法(肖逢-122081915)\黄金分割法在求解单峰函数的极小值中的应用-流程图.vsd

评论

共有 条评论