资源简介
拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。本程序是拟牛顿法-bfgs算法的matlab代码。
代码片段和文件信息
function [xvalk]=bfgs(fungfunx0)
%功能:用BFGS算法求解无约束问题:min f(x)
% 输入:x0是初始点,fungfun分别是目标函数及其梯度;
%varargin是输入可变参数变量,简单调用bfgs时可以忽略它,
% 但是其他程序循环调用时将会发挥重要作用
%输出:xval分别是近似最优点和最优值,k是迭代次数。
syms x1 x2;
maxk=500; %给出最大迭代次数
rho=0.55; sigma=0.4; epsilon=1e-5; %给出一些常数参数及精度误差
k=0; n=length(x0);
Bk=eye(n); %Bk=feval(‘Hesse‘x0);
while(k gk=feval(gfunx0); %计算精度
if(norm(gk) break;
end
相关资源
-
MATLAB机械臂简单控制仿真Simuli
nk篇 - 高斯过程回归GPR MATLAB
- 二维稳态导热微分方程的数值求解m
- RNN-LSTM 卷积神经网络使用 Matlab 实现
-
matlab开发-mssamultiob
jectivesalpswarmalg - matlab开发-使用与旋转匹配的模板查找
- matlab开发-Vasicek
- matlab开发-直流到全桥逆变器
- matlab开发-使用xFoiland ParseCGeometric参数
- matlab开发-如何模拟6到10个输入状态空
- matlab开发-mtype340
- matlab开发-rafaelaeroXFOILinterface
-
matlab开发-单相三电平去阻尼Pwmba
s - matlab开发-scatter3sph
- matlab开发-TraCI4Matlab
- matlab开发-calcpsnr
- matlab开发-最大相关系数
- matlab开发-三个27电平转换器,带有单
- matlab开发-第二代Voldkalmanderfiltering
- matlab开发-DynaSimDynaSim
- matlab开发-spy2m
- matlab开发-landmask
- matlab开发-经济调度通用算法解决方案
- matlab开发-图片加密和解密
- matlab开发-分子通讯粘着剂
- matlab开发-FloodFill3D
- matlab开发-IEEE754二进制表示
- matlab开发-kmvcreditriskmodel违约风险概率
- matlab开发-17电平模块多电平转换器
- matlab开发-Xfoilformatlab
评论
共有 条评论