日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四章 共轭梯度法

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章 共轭梯度法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容來自馬昌鳳編著的《最優化方法及其Matlab程序設計》,文章僅為個人的學習筆記,感興趣的朋友詳見原書。

共軛梯度法是介于最速下降法與牛頓法之間的一種無約束優化算法,具有超線性收斂速度,算法結構簡單。同時,與前一章的最速下降法類似,共軛梯度法只用了目標函數及其梯度值,避免了求二階導數,從而降低了計算和儲存量。

共軛方向法

共軛的定義

設G是n階對稱正定矩陣,若n維向量組d1,d2,...,dm(m<=n)d_1,d_2,...,d_m(m<=n)d1?,d2?,...,dm?(m<=n)滿足:
diTGdj=0,i≠jd_i^T G d_j=0, i≠jdiT?Gdj?=0,i?=j
則稱d1,d2,...,dmd_1,d_2,...,d_md1?,d2?,...,dm?為G共軛的。

對稱正定矩陣GGG的共軛向量組必然是線性無關的

算法

共軛梯度法

算法

程序

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<maxk)g=feval(gfun,x0); %計算梯度itern=k-(n+1)*floor(k/(n+1));itern=itern+1;%計算搜索方向if(itern==1) d=-g; elsebeta=(g'*g)/(g0'*g0);d=-g+beta*d0; gd=g'*d;if(gd>=0.0)d=-g; endendif(norm(g)<epsilon), break; end %檢驗終止條件m=0; mk=0;while(m<20) %Armijo搜索if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d)mk=m; break;endm=m+1;endx0=x0+rho^mk*d;val=feval(fun,x0);g0=g; d0=d; k=k+1; end x=x0; val=feval(fun,x);

示例1

示例2

總結

以上是生活随笔為你收集整理的第四章 共轭梯度法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。