資源簡介
應用該代碼進行優化時,首先應將matlab的路徑設置至該文件夾的子目錄下,然后輸入初值,輸入函數,點擊回車,即可求解

代碼片段和文件信息
function?[xvalk]=frcg(fungfunx0)
%?功能:?用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(gfunx0);??%計算梯度
????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(g) ????m=0;?mk=0;
????while(m<20)???%Armijo搜索
????????if(feval(funx0+rho^m*d) ????????????mk=m;?break;
????????end
????????m=m+1;
????end
????x0=x0+rho^mk*d;
????val=feval(funx0);
????g0=g;??d0=d;?
????k=k+1;
end
x=x0;
val=feval(funx);?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????914??2009-09-22?05:34??共軛梯度法\frcg.m
?????文件?????????52??2009-08-30?04:40??共軛梯度法\fun.m
?????文件?????????81??2009-08-30?04:54??共軛梯度法\gfun.m
?????目錄??????????0??2012-06-23?13:54??共軛梯度法
-----------?---------??----------?-----??----
?????????????????1047????????????????????4
- 上一篇:圖像歸一化
- 下一篇:J2000toWGS84
評論
共有 條評論