第一范文网 - 专业文章范例文档资料分享平台

最速下降法求解无约束最优化问题

来源:用户分享 时间:2025/9/3 14:10:47 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

最速下降法求解无约束最优化问题

1 理论基础

已知问题模型为

minf?x? nx?R 算法:

1) 选取初始点x0与f0?f?x0?,初始化k?0

2) 验证迭代中止条件:?xk?eps且?f?xk??eps或k?lim

若是?xk?eps且?f?xk??eps,则输出解xk及迭代次数k 若是k?lim,则输出error信息 注:其中eps?10?10,lim?1000 3) 计算xk点搜索方向:dk???f?xk?

计算xk点迭代步长:?k?argmin?f?xk??dk??

??0更新点列:xk?1?xk??kdk,k?k?1 转第2步

2 MATLAB程序

2.1 函数说明

文件名称:Opt_Steepest.m

function [xo, fo] = Opt_Steepest(f, grad, x0, TolX, TolFun, dist0, MaxIter)

% 用最速下降法求最优化解 % 输入: % f——函数名 % grad——梯度函数 % x0——解的初值 % TolX——变量的误差阈值 % TolFun——函数的误差阈值 % dist0——初始步长 % MaxIter——最大迭代次数 % 输出:

% xo——最小值的点 % fo——最小的函数值

%% 判断输入的变量数,设定一些变量为默认值 if nargin < 7

MaxIter = 1000; %最大迭代次数默认为100 end

if nargin < 6

dist0 = 10; %初始步长默认为10 end

if nargin < 5

TolFun = 1e-10; %函数值误差为1e-8

end

if nargin < 4

TolX = 1e-5; %自变量距离误差 end

%% 第一步,求解的初值的函数值 x = x0;

fx0 = feval(f, x0); fx = fx0; dist = dist0;

kmax1 = 25; % 线性搜索法确定步长的最大搜索次数 warning = 0; %% 迭代计算求最优解 for k = 1 : MaxIter g = feval(grad, x);

g = g/norm(g); % 求在x处的梯度方向 %线性搜索方法确定步长

dist = dist*2; % 令步长为原步长的二倍 fx1 = feval(f, x-dist*2*g); for k1 = 1 : kmax1 fx2 = fx1;

fx1 = feval(f, x-dist*g);

if fx0 > fx1+TolFun && fx1 < fx2 - TolFun % fx0 > fx1 < fx2,

den = 4*fx1 - 2*fx0 - 2*fx2; num = den - fx0 + fx2; % 二次逼近法 dist = dist*num/den; x = x - dist*g;

fx = feval(f,x); % 确定下一点 break; else

dist = dist/2; end end

if k1 >= kmax1

warning = warning + 1; %无法确定最优步长 else

warning = 0; end

if warning >= 2 || (norm(x - x0) < TolX && abs(fx - fx0) < TolFun) break; end x0 = x; fx0 = fx; end xo = x;

搜索更多关于: 最速下降法求解无约束最优化问题 的文档
最速下降法求解无约束最优化问题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c45ivt09f6y83uyx977ax_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top