作业4-FR共轭梯度法

更新时间:2023-12-08 13:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

最优化方法第四次作业

f(x)?4x1?4x2?4x1x2?12x2。题目:利用FR-共轭梯度法求解无约束优化问题min2x?R22初始点x(0)?(?0.5,1)T.

??g0,k?0;d???k?1?,k?0.??gk??k?1d

Tgg?k?1?kkTgk?1gk?1?k?

一、程序

function [x,val,k]=frcg(fun,gfun,x0) %功能:用FR共轭梯度法求解无约束问题min f(x) %输入:x0是初始点,fun,gfun分别是求目标函数和梯度 %输出:x,val分别是近似最优点和最优值,k是迭代次数 maxk=5000; rho=0.6; sigma=0.4; k=0;

epsilon=1e-4; n=length(x0); while(k

g=feval(gfun,x0);%计算梯度

itern=k-(n+1)*floor(k/(n+1)); itern=itern+1; %计算搜索方向 if(itern==1) d=-g; else

beta=(g'*g)/(g0'*g0); d=-g+beta*d0; gd=g'*d; if(gd>=0.0) d=-g; end end

if(norm(d)

while(m<20) %用Armijo搜索求步长

if(feval(fun,x0+rho^m*d)

x0=x0+rho^mk*d; val=feval(fun,x0); g0=g; d0=d; k=k+1; end x=x0;

val=feval(fun,x);

二、程序运行结果 >> x0=[-0.5,1]';

>> [x,val,k]=frcg('fun','gfun',x0) x =

1.0000 2.0000 val =

-12.0000 k =

10

f(x)?4x1?4x2?4x1x2?12x2的极小值点x=[1;2];minf(x)= -12。 即min2x?R22

本文来源:https://www.bwwdw.com/article/0g3t.html

Top