




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CG程序代碼function x,y = cg(A,b,x0)%算法 % r0 = A*x0-b;p0 = -r0;k = 0;r = r0;p = p0;x = x0;while r=0alpha = -r'*p/(p'*A*p);x = x+alpha*p;rold = r;r = rold+alpha*A*p;beta = r'*r/(rold'*rold);p = -r+beta*p; plot(k,norm(p),'.-');hold onk = k+1;end y.funcount = k;y.fval = x'*A*x/2-
2、b'*x;CG-FR程序代碼function x,y = cg_FR(fun,dfun,x0)%CGJ算法 %error = 10A-5;f0 = feval(fun,x0);df0 = feval(dfun,x0);p0 = -df0;f = f0;df = df0;p = p0;x = x0;k = 0;while (norm(df)>error)&&(k<1000)f = feval(fun,x);%alpha,funcNk,exitflag = lines(fun,0.01,0.15,0.85,6,f,df'*p,x,p);% 用線搜索找下降
3、距離 if exitflag = -1disp('Break!');break;endx = x+alpha*p;dfold = df;df = feval(dfun,x);beta = df'*df/(dfold'*dfold);p = -df+beta*p;plot(k,norm(df),'.-');hold onk = k+1;endy.funcount = k;y.fval = feval(fun,x);y.error = norm(df);BFGS程序代碼function x,output = bfgs(fun,dfun,x0,vara
4、rgin)%優化課程 BFGS算法程序 % epsi = 1.0e-6;k = 0; funcN = 0; rho = 0.01;l = 0.15; u = 0.85;x = x0;f = feval(fun,x,varargin:);funcN = funcN + 1;n = length(x0);H = eye(n);g = feval(dfun,x,varargin:); while norm(g)>epsi && k<=1000 itercon = true;d = -H*g;alpha_0 = 1;gd = g'*d;alpha,funcNk,ex
5、itflag = lines(fun,rho,l,u,alpha_0,f,gd,x,d,varargin:); funcN = funcN + funcNk;if exitflag = -1 itercon = false; restart = true; H = eye(n); gold = g;endif itercon s = alpha*d;x = x + s; f = feval(fun,x,varargin:); funcN = funcN + 1; gold = g;g = feval(dfun,x,varargin:);y = g - gold; hy = H*y; sy =
6、s'*y; yhy = y'*hy;if sy<0.2*yhytheta = 0.8*yhy/(yhy-sy); s = theta*s + (1 - theta)*hy; sy = 0.2*yhy;endv = sqrt(yhy)*(s/sy - hy/yhy);H = H + s*s'/sy - hy*hy'/yhy + v*v' endk = k + 1;end output.fval = f; output.iteration = k; output.funcount = funcN; output.gnorm = norm(g);Newt
7、on-CG 程序代碼function x,output = newton_cg(fun,dfun,ddfun,x0)%優%化 7.1 算法程序 % n = length(x0);x = x0;k = 1;d(1,1:n) = zeros(1,n); %循環開始,直至滿足條件結束%while (n orm(feval(dfu n,x)>=10A-5) &&(k<20000)epsi(k) = min(0.5,sqrt(norm(feval(dfun,x)*norm(feval(dfun,x); z(1,1:n) = zeros(1,n);B = feval(ddfun
8、,x);r(1,1:n) = feval(dfun,x)'d(1,1:n) = -r(1,1:n);p = zeros(1,n)'for j=1:k%尋找最優下降方向 %if d(j,1:n)*B*d(j,1:n)'<=0if j=1p = -r(k,1:n)' break;elsep = z(j,1:n)'break;endendalpha = r(j,1:n)*r(j,1:n)'/(d(j,1:n)*B*d(j,1:n)');z(j+1,1:n) = z(j,1:n) + alpha*d(j,1:n);r(j+1,1:n) =
9、r(j,1:n) + alpha*(B*d(j,1:n)')'if norm(r(j+1,1:n)<epsi(k)p = z(j+1,1:n)'break;endbeta = r(j+1,1:n)*r(j+1,1:n)'/(r(j,1:n)*r(j,1:n)');d(j+1,1:n) = -r(j+1,1:n) + beta*d(j,1:n);end %方向找尋結束 % %獲得新的迭代點 %gd = -d(1,1:n)*d(1,1:n)'alpha1,funcNk,exitflag = lines(fun,0.01,0.15,0.85,1,
10、feval(fun,x),gd,x,d(1,1:n)');x = x + alpha1*p; k = k + 1;endoutput.fval = feval(fun,x);output.funcount = k;CG- Steihaug程序代碼function x,output = cg_steihaug(fun,dfun,ddfun,x0)%優%化 7.2 算法程序 % %參數初始化 %n = length(x0);x = x0;k = 1;d(1,1:n) = zeros(1,n);%開始循環,直至滿足條件%while (n orm(feval(dfu n,x)>=10A-
11、5) &&(k<2000)epsi(k) = min(0.5,sqrt(norm(feval(dfun,x)*norm(feval(dfun,x);z(1,1:n) = zeros(1,n);B = feval(ddfun,x);r(1,1:n) = feval(dfun,x)'d(1,1:n) = -r(1,1:n);delta(k) = 1;%p = 0,0'%開%始搜索最優下降方向%此%算法利用信賴域法尋找方向%if norm(r(1,1:n)<epsi(k)p = z(1,1:n)'break;endfor j=1:kif d(j,1
12、:n)*B*d(j,1:n)'<=0%delta(k)s,val,posdef,count,lambda = trustM(r(k,1:n)',B,delta(k);p = s;break;endalpha = r(j,1:n)*r(j,1:n)'/(d(j,1:n)*B*d(j,1:n)');z(j+1,1:n) = z(j,1:n) + alpha*d(j,1:n);if(norm(z(j+1,1:n)>=delta(k)%tao =(-4*z(j,1: n)*d(j,1: n)'+sqrt(2*z(j,1: n)*d(j,1: n)'F2-4*(z(j,1: n)*z(j,1: n)'-delta(k)A2)/(2*d(j,1: n)*d(j,1:n)');p = z(j,1:n)' + tao*d(j,1:n)'break;endr(j+1,1:n) = r(j,1:n) + alpha*(B*d(j,1:n)')'if norm(r(j+1,1:n)<epsi(k)p = z(j+1,1:n)'break 八endbefa H rji一5)*0+1 V-S7(r015)*A1 m)-)八dq+1 i m) nA+l iS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司接送員工車管理制度
- 律師為公司制作管理制度
- 旅投公司財務管理制度
- 公司質量控制點管理制度
- 統編版語文九年級下冊第四單元練習題(含答案)
- 多學科融入小學音樂教學的策略
- 胃脘痛的辯證治療講課件
- 抗真菌類藥講課件
- 2024北京育才學校高一3月月考數學試題及答案
- 2025年企業可持續發展報告:SDGs視角下的綠色金融創新實踐
- 間歇性胃管插管護理
- 小學科學新教科版一年級下冊全冊教案(共13課)(2025春詳細版)
- 自發性氣胸PBL護理教學查房
- 鋼塔施工方案
- (完整版)高考英語詞匯3500詞(精校版)
- 2025年金華國企義烏市建投集團招聘筆試參考題庫含答案解析
- 道路白改黑施工方案及工藝
- 中高檔竹工藝品項目可行性研究報告建議書
- 【MOOC】《中國哲學》(北京師范大學) 章節作業中國大學慕課答案
- 醫院常見消毒劑的使用
- 國開電大《流通概論》形考任務
評論
0/150
提交評論