拟牛顿法的
matlab
实现(转)
2011-03-16 15:07:04|
分类:|标签:|字号大中小订阅牛顿法成功的关键是利用了
Hesse
矩阵提供的曲率信息,但计算
Hesse
矩阵工作量大,并且有的目标函数的
Hesse
矩阵很难计算,甚至不好求出。针对这一问题,拟牛顿法比牛顿法更为有效。这类算法仅利用目标函数值和一阶导数的信息,构造出目标函数的曲率近似,使方法具有类似牛顿法的收敛速度快的优点。
函数名:
quasi_Newton(f,x0,error),
参数:f:待求梯度函数
x0:
初始点 error
:允许误差
主程序:
function A=quasi_Newton(f,x0,error)
[a,b]=size(x0);
G0=eye(b);
initial_gradient=gradient_my(f,x0,b);
norm0=0;
norm0=initial_gradient*initial_gradient';
syms step_zzh;
A=[x0]; ...
附件列表