共轭梯度法的算法介绍 共轭梯度法的简介

\u5171\u8f6d\u68af\u5ea6\u6cd5\u7684\u4ecb\u7ecd

\u5171\u8f6d\u68af\u5ea6\u6cd5\uff08Conjugate Gradient\uff09\u662f\u4ecb\u4e8e\u6700\u901f\u4e0b\u964d\u6cd5\u4e0e\u725b\u987f\u6cd5\u4e4b\u95f4\u7684\u4e00\u4e2a\u65b9\u6cd5\uff0c\u5b83\u4ec5\u9700\u5229\u7528\u4e00\u9636\u5bfc\u6570\u4fe1\u606f\uff0c\u4f46\u514b\u670d\u4e86\u6700\u901f\u4e0b\u964d\u6cd5\u6536\u655b\u6162\u7684\u7f3a\u70b9\uff0c\u53c8\u907f\u514d\u4e86\u725b\u987f\u6cd5\u9700\u8981\u5b58\u50a8\u548c\u8ba1\u7b97Hesse\u77e9\u9635\u5e76\u6c42\u9006\u7684\u7f3a\u70b9\uff0c\u5171\u8f6d\u68af\u5ea6\u6cd5\u4e0d\u4ec5\u662f\u89e3\u51b3\u5927\u578b\u7ebf\u6027\u65b9\u7a0b\u7ec4\u6700\u6709\u7528\u7684\u65b9\u6cd5\u4e4b\u4e00\uff0c\u4e5f\u662f\u89e3\u5927\u578b\u975e\u7ebf\u6027\u6700\u4f18\u5316\u6700\u6709\u6548\u7684\u7b97\u6cd5\u4e4b\u4e00\u3002 \u5728\u5404\u79cd\u4f18\u5316\u7b97\u6cd5\u4e2d\uff0c\u5171\u8f6d\u68af\u5ea6\u6cd5\u662f\u975e\u5e38\u91cd\u8981\u7684\u4e00\u79cd\u3002\u5176\u4f18\u70b9\u662f\u6240\u9700\u5b58\u50a8\u91cf\u5c0f\uff0c\u5177\u6709\u6b65\u6536\u655b\u6027\uff0c\u7a33\u5b9a\u6027\u9ad8\uff0c\u800c\u4e14\u4e0d\u9700\u8981\u4efb\u4f55\u5916\u6765\u53c2\u6570\u3002

\u5171\u8f6d\u68af\u5ea6\u6cd5\u6700\u65e9\u662f\u7531Hestenes\u548cStiefle\u63d0\u51fa\u6765\u5728\u8fd9\u4e2a\u57fa\u7840\u4e0a\uff0cFletcher\u548cReeves \uff081964\uff09\u9996\u5148\u63d0\u51fa\u4e86\u89e3\u975e\u7ebf\u6027\u6700\u4f18\u5316\u95ee\u9898\u7684\u5171\u8f6d\u68af\u5ea6\u6cd5\u3002\u7531\u4e8e\u5171\u8f6d\u68af\u5ea6\u6cd5\u4e0d\u9700\u8981\u77e9\u9635\u5b58\u50a8\uff0c\u4e14\u6709\u8f83\u5feb\u7684\u6536\u655b\u901f\u5ea6\u548c\u4e8c\u6b21\u7ec8\u6b62\u6027\u7b49\u4f18\u70b9\uff0c\u73b0\u5728\u5171\u8f6d\u68af\u5ea6\u6cd5\u5df2\u7ecf\u5e7f\u6cdb\u5730\u5e94\u7528\u4e8e\u5b9e\u9645\u95ee\u9898\u4e2d\u3002\u5171\u8f6d\u68af\u5ea6\u6cd5\u662f\u4e00\u4e2a\u5178\u578b\u7684\u5171\u8f6d\u65b9\u5411\u6cd5\uff0c\u5b83\u7684\u6bcf\u4e00\u4e2a\u641c\u7d22\u65b9\u5411\u662f\u4e92\u76f8\u5171\u8f6d\u7684\uff0c\u800c\u8fd9\u4e9b\u641c\u7d22\u65b9\u5411d\u4ec5\u4ec5\u662f\u8d1f\u68af\u5ea6\u65b9\u5411\u4e0e\u4e0a\u4e00\u6b21\u8fed\u4ee3\u7684\u641c\u7d22\u65b9\u5411\u7684\u7ec4\u5408\uff0c\u56e0\u6b64\uff0c\u5b58\u50a8\u91cf\u5c11\uff0c\u8ba1\u7b97\u65b9\u4fbf

又称共轭斜量法,是解线性代数方程组和非线性方程组的一种数值方法,例如对线性代数方程组 Ax=ƒ, (1)式中A为n阶矩阵,x和ƒ为n维列向量,当A对称正定时,可以证明求(1)的解X*和求二次泛函
的极小值问题是等价的。此处(x,у)表示向量x和у的内积。由此,给定了初始向量x(0),按某一方向去求(2)式取极小值的点x(1),就得到下一个迭代值x(2),再由x(2)出发,求x(3)等等,这样来逼近x*。若取求极小值的方向为F在 x(k=1,2,…)处的负梯度方向就是所谓最速下降法,然而理论和实际计算表明这个方法的收敛速度较慢,共轭梯度法则是在 x(k-1)处的梯度方向r(k-1)和这一步的修正方向p(k-1)所构成的二维平面内,寻找使F减小最快的方向作为下一步的修正方向p(k),即求极小值的方向p(其第一步仍取负梯度方向)。计算公式为
再逐次计算(k=1,2,…)。可以证明当i≠j时,
从而平p(1),p(2)形成一共轭向量组;r(0),r(1),…形成一正交向量组。后者说明若没有舍入误差的话,至多 n次迭代就可得到(1)的精确解。然而在实际计算中,一般都有舍入误差,所以r(0),r(1),…并不真正互相正交,而尣(0)尣(1),…等也只是逐步逼近(1)的真解,故一般将共轭梯度法作为迭代法来使用。
近来在解方程组(1)时,常将共轭梯度法同其他一些迭代法结合作用。特别是对病态方程组这种方法往往能收到比较显著的效果。其方法是选取一对称正定矩阵B并进行三角分解,得B=LLT。将方程组(1)化为 hу=b, (3)
此处y=lTx,b=l-1ƒ,h=l-1Al-T,而
再对(3)用共轭梯度法,计算公式为
k=0,1,2,…)适当选取B,当B很接近A时,h的条件数较之A大大减小,从而可使共轭梯度法的收敛速度大为加快,由一些迭代法的矩阵分裂A=M -N,可选取M 为这里的B,例如对称超松弛迭代(SSOR),强隐式迭代(SIP)等,这类方法常称为广义共轭梯度法或预条件共轭梯度法,它也可用于解代数特征值问题。



  • 鍏辫江姊害娉鐩搁偦涓ゆ鎼滅储鏂瑰悜姝d氦鍚?
    绛旓細姝d氦銆傚叡杞搴︽硶鏄竴绉嶇敤浜庢眰瑙f棤绾︽潫浼樺寲闂鐨勮凯浠绠楁硶锛屽洜涓鍏辫江姊害娉曠殑杩唬鍏紡涓紝涓嬩竴娆$殑鎼滅储鏂瑰悜鏄笂涓娆℃悳绱㈡柟鍚戠殑璐熸搴︽柟鍚戜笌褰撳墠鐐圭殑姊害鏂瑰悜鐨勭嚎鎬х粍鍚堬紝鐢变簬杩欎釜绾挎х粍鍚堜腑锛岀郴鏁版槸姝d氦鐨勶紝鍥犳鐩搁偦涓ゆ鐨勬悳绱㈡柟鍚戜篃鏄浜ょ殑銆
  • 璇烽棶鏈変汉鐭ラ亾鍏辫江姊害娉曠殑FR,PRP,HS涓変釜绠楁硶鐨凪atlab绋嬪簭鍚?
    绛旓細鍏辫江姊害娉 FR G涓哄绉版瀹氱煩闃碉紝X鏄垵濮嬬偣锛宔涓虹簿搴 a鏄簿纭嚎鎼滅储姝ラ暱 function [m2,a,d,X,g1,f1] = conjgrad(G,b,c,X,e)n=length(G);if n==2 format long e %rat syms x1 x2 f=1/2*[x1,x2]*G*[x1;x2]+b'*[x1;x2]+c;g=[diff(f,x1);diff(f,x2)];g1...
  • 楂樼瓑鏁板涓湁鍝簺鏈浼樺寲绠楁硶?
    绛旓細鐗涢】娉曪紙Newton's Method锛夛細鐗涢】娉曟槸涓绉嶅熀浜庝簩闃跺鏁扮殑鏈浼樺寲绠楁硶銆傚畠鍒╃敤鐩爣鍑芥暟鐨勪竴闃跺拰浜岄樁瀵兼暟淇℃伅锛岄氳繃杩唬閫艰繎鏈浼樿В銆傜墰椤挎硶鏀舵暃閫熷害蹇紝浣嗚绠楀鏉傚害杈冮珮銆鍏辫江姊害娉锛圕onjugate Gradient Method锛夛細鍏辫江姊害娉曟槸涓绉嶆眰瑙g嚎鎬ф柟绋嬬粍鐨勮凯浠f柟娉曪紝鐗瑰埆閫傜敤浜庣█鐤忕煩闃点傚畠閫氳繃鏋勯犱竴缁勫叡杞柟鍚戯紝...
  • 鏈浼樺寲鏂规硶涓,浠涔堟槸绠楁硶鐨勪簩娆$粓姝㈡,鏈濂借兘涓句釜渚嬪瓙璇存槑涓涓畻娉曠殑...
    绛旓細鑻ョ敤鏌愮鏂规硶姹傝В浜屾姝e畾鍑芥暟鐨勮鍒掗棶棰樻椂锛岀粡杩囨湁闄愯疆缁忚繃鏈夐檺杞凯浠e彲浠ヨ揪鍒版渶浼樿В锛岀О杩欑鏂规硶鍏锋湁浜屾缁堟鎬х殑鏂规硶銆鍏辫江姊害娉鏄竴绫诲叿鏈変簩娆$粓姝㈡х殑鏂规硶銆
  • XGBoost涓嶨BDT(涓)-鍑犵鏈浼樺寲鏂规硶瀵规瘮
    绛旓細鎷熺墰椤挎硶鍜屾搴︿笅闄嶆硶涓鏍峰彧瑕佹眰姣忎竴姝ヨ凯浠f椂鐭ラ亾鐩爣鍑芥暟鐨勬搴,鍙﹀锛屽洜涓烘嫙鐗涢】娉曚笉闇瑕佷簩闃跺鏁扮殑淇℃伅锛屾墍浠ユ湁鏃舵瘮鐗涢】娉曟洿涓烘湁鏁堛傚父鐢ㄧ殑鎷熺墰椤挎硶鏈塂FP绠楁硶鍜孊FGS绠楁硶.姝ゅ涓嶅啀璧樿堪.涓嬮潰琛ュ厖鎷熺墰椤娉曠殑鎬濊矾(鎽樿嚜[3]):鍏辫江姊害娉鏄竴绉嶇敤浜庤В鍐虫棤绾︽潫鍑镐簩娆¤鍒掗棶棰樼殑鏂规硶.鍚彂寮忔柟娉曟寚浜哄湪瑙e喅...
  • 椴嶅▉灏鏂规硶鏄粈涔?
    绛旓細椴嶅▉灏旀柟娉曟槸涓绉嶇敤浜庢眰瑙i潪绾挎т紭鍖栭棶棰樼殑杩唬绠楁硶锛屽畠缁撳悎浜鍏辫江姊害娉鍜岀墰椤挎硶鐨勪紭鐐癸紝鑳藉鍦ㄤ繚璇佹敹鏁涢熷害鐨勫悓鏃讹紝鍑忓皯璁$畻閲忓苟閬垮厤鐭╅樀瀛樺偍鐨勯棶棰樸傞矋濞佸皵鏂规硶鐨鏍稿績鎬濇兂鏄埄鐢ㄥ叡杞柟鍚戠殑鎬ц川锛岄氳繃杩唬閫愭閫艰繎鏈浼樿В銆傚湪姣忔杩唬涓紝瀹冩牴鎹綋鍓嶇偣鐨勬搴︿俊鎭紝纭畾涓涓叡杞柟鍚戯紝鐒跺悗娌跨潃杩欎釜鏂瑰悜杩涜鎼滅储锛...
  • 鍙嶉棶棰樼殑璁$畻鏂规硶鐩綍
    绛旓細3. 鏁板间紭鍖栧伐鍏 - 3.1 鏈闄涓嬮檷娉锛浠嬬粛鍩烘湰浼樺寲绠楁硶銆 - 3.2 鍏辫江姊害娉锛氬寘鎷鏉′欢澶勭悊鍜岄潪绾挎G鏂规硶銆 - 3.3 鐗涢】娉曪細璁茶В淇′换鍖哄煙鍏ㄧ悆鍖栫殑鐗涢】鏂规硶鍜孊FGS鏂规硶銆 - 3.4 涓嶇簿纭嚎鎼滅储锛氳璁轰紭鍖栬繃绋嬩腑濡備綍澶勭悊鎼滅储绮惧害闂銆4. 缁熻浼拌鐞嗚 - 4.1 瀹氫箟鍜岀鍙凤細浠嬬粛...
  • 楂樼瓑鏁板绠楁硶鏈変粈涔?
    绛旓細姊害涓嬮檷娉曪紙Gradient descent锛夛細涓绉嶆眰瑙f棤绾︽潫浼樺寲闂鐨勮凯浠绠楁硶锛岄氳繃娌跨潃璐熸搴︽柟鍚戞洿鏂板弬鏁板兼潵閫愭閫艰繎鏈浼樿В銆傛搴︿笅闄嶆硶鍦ㄦ満鍣ㄥ涔犲拰娣卞害瀛︿範涓叿鏈夊箍娉涘簲鐢ㄣ鍏辫江姊害娉锛圕onjugate gradient method锛夛細涓绉嶆眰瑙g嚎鎬ф柟绋嬬粍鐨勮凯浠g畻娉曪紝閫氳繃鏋勯犲叡杞柟鍚戞潵鍔犻熸敹鏁涖傚叡杞搴︽硶閫傜敤浜庣█鐤忓绉版瀹氱煩闃电殑...
  • 闈炵嚎鎬ф渶浼樺寲鐨勪笉鍚绠楁硶鍚勯傜敤浜庝粈涔堟儏鍐
    绛旓細1 鏃犵害鏉熼潪绾挎ф渶浼樺寲闂甯哥敤绠楁硶锛氭搴︽硶锛堟渶閫涓嬮檷娉锛夈鍏辫江姊害娉銆佸彉灏哄害娉曞拰姝ラ暱鍔犻熸硶.鍏朵腑,鍓嶄笁涓鐢ㄥ埌鍑芥暟鐨勪竴闃跺鏁版垨浜岄樁瀵兼暟,閫傜敤浜庡嚱鏁拌〃杈惧紡瀵兼暟瀛樺湪涓旀眰瀵肩畝鍗曠殑鎯呭喌,鑰屾闀垮姞閫熸硶鍒欑浉鍙,閫傜敤浜庡嚱鏁拌〃杈剧ず澶嶆潅,鐢氳嚦鏃犺В鏋愯〃杈惧紡,鎴栧鏁颁笉瀛樺湪鎯呭喌.2 绾︽潫闈炵嚎鎬ф渶浼樺寲闂甯哥敤绠楁硶锛氭寜...
  • 闈炵嚎鎬т紭鍖栬绠鏂规硶鍐呭绠浠
    绛旓細鏈功璇︾粏鍦版帰璁ㄤ簡闈炵嚎鎬т紭鍖栫殑鏍稿績璁$畻绛栫暐鍙婂叾鐞嗚鍩虹銆傞鍏堬紝瀹冩兜鐩栦簡鍩虹鐨勪竴缁翠紭鍖栨柟娉曪紝杩欎负鐞嗚В鏇村鏉傞棶棰樼殑浼樺寲杩囩▼鎻愪緵浜嗗叆闂ㄧ骇鐨勭煡璇嗐傛帴鐫锛屾垜浠繁鍏ュ墫鏋愪簡姊害娉曞拰鍏辫江姊害娉锛岃繖涓ょ鏂规硶鍦ㄦ眰瑙d紭鍖栭棶棰樹腑鎵紨鐫閲嶈瑙掕壊锛屽挨鍏跺湪澶勭悊鍑芥暟杩炵画鍙井鐨勬儏鍐点傛嫙鐗涢】娉曞拰鐩存帴鏂规硶鏄悗缁珷鑺傜殑浜偣锛屽畠浠...
  • 扩展阅读:预处理共轭梯度法 ... 共轭矩阵计算公式 ... 最速下降法和牛顿法区别 ... 数学建模优化算法 ... 共轭复数计算公式 ... 共轭梯度法最多迭代几次 ... 算法介绍怎么写 ... 共轭梯度算法流程图并解释 ... 1+i与1-i是共轭复数吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网