| 24小時熱門版塊排行榜 |
| 2 | 1/1 | 返回列表 |
| 查看: 902 | 回復: 1 | ||
[求助]
有關非負矩陣的MATLAB程序優(yōu)化
|
|
親們:我編了一個有關非負矩陣分解算法的MATLAB程序,但是與別人的實驗結果相比,迭代次數和時間比原始數據差很多,但是我不會優(yōu)化程序,麻煩大神們給指導指導,非常感謝 function [W,iter_W,gradW]=QRPBB(V,Winit,H,maxiter,tol) W=Winit; alpha_max=1.0e+20; alpha_min=1.0e-20; M=5; row=0.25; gama=1.0e-4; HHt=H*H'; VHt=V*H'; L=norm(HHt); delta0=-sum(sum(H.*(W'*V))); dQd0=sum(sum((H.*(W'*W*H)))); f0=delta0+0.5*dQd0; for k=1:maxiter; gradW=W*HHt-VHt;%計算W的梯度; projgrad = norm(gradW(gradW<0 | W>0),'fro');%W的投影范數; if projgrad<tol;%終止條件的判斷; break; end if k==1; alpha=1;%初始alpha end Z=max(0,W-gradW/L);%由構造的嚴格凸二次函數求出的封閉解; gradZ=Z*HHt-VHt; Zn=max(0,Z-alpha*gradZ);%為定義方向而定義的一個中間變量; D=Zn-Z;%迭代方向; delta=sum(sum(D.*gradZ)); dQd=sum(sum((H.*(Z'*Z*H)))); %搜步長 if k==1; func(k)=f0 ; else func(k)=fn; end jj=min(k-1,M-1); fmax=max(func(k-jj:k)); m=0;maxm=20;mk=0; while (m<maxm); fn=func(k)+row^m*delta+0.5*row^(2*m)*dQd; if(fn<=fmax+gama*row^m*delta),%判斷目標函數下降; mk=m;%滿足使的目標函數下降的最小正整數; break; end m=m+1; end lamda=row^mk;%更新lamda用于產生新的迭代點W; %迭代格式 W=Z+lamda*D; %BB步更新方向D; s=D; y=D*HHt; b=sum(sum(s.*s)); c=sum(sum(s.*y)); alphaBB=b/c; if (c<=0), alpha=alpha_max; else alpha=min(alpha_max,max(alpha_min,alphaBB)); end iter_W=k; end if k==maxiter, fprintf('Max k in QRPBB\n'); end 測試問題 clear clc l= 100; n = 200; r =15; % V = rand(;l,n); Winit= rand(l,r); Hinit= rand(r,n); V = abs(rand(l,r))*abs(rand(r,n)); tol=1.e-7; maxtime=1000; maxiter=5000;%最大迭代次數 tic [W,iter_W,gradW]=QRPBB(V,Winit,H,maxiter,tol); toc 希望可以教教我具體怎樣優(yōu)化一個程序,才能使得它的迭代次數和時間降低,謝謝。 |

木蟲 (小有名氣)
| 2 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 資源與環(huán)境 調劑申請(333分) +5 | holy J 2026-03-21 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 考研調劑 +3 | 呼呼?~+123456 2026-03-21 | 3/150 |
|
|
[考研] 311求調劑 +7 | 26研0 2026-03-15 | 7/350 |
|
|
[基金申請] 山東省面上項目限額評審 +3 | 石瑞0426 2026-03-19 | 3/150 |
|
|
[考研] 307求調劑 +3 | 余意卿 2026-03-18 | 3/150 |
|
|
[考研] 一志愿重慶大學085700資源與環(huán)境總分308求調劑 +7 | 墨墨漠 2026-03-20 | 7/350 |
|
|
[考研] 材料學學碩080502 337求調劑-一志愿華中科技大學 +4 | 順順順mr 2026-03-18 | 5/250 |
|
|
[考研] 301求調劑 +10 | yy要上岸呀 2026-03-17 | 10/500 |
|
|
[考研] 一志愿中國石油大學(華東) 本科齊魯工業(yè)大學 +3 | 石能偉 2026-03-17 | 3/150 |
|
|
[考研] 一志愿南京理工大學085701資源與環(huán)境302分求調劑 +4 | 葵梓衛(wèi)隊 2026-03-18 | 6/300 |
|
|
[考研] 一志愿蘇州大學材料求調劑,總分315(英一) +5 | sbdksD 2026-03-19 | 5/250 |
|
|
[考研] 求調劑 +3 | 暗涌afhb 2026-03-16 | 3/150 |
|
|
[考研] 286求調劑 +6 | lemonzzn 2026-03-16 | 10/500 |
|
|
[考研] 0703化學調劑 +5 | pupcoco 2026-03-17 | 8/400 |
|
|
[考研] 考研求調劑 +3 | 橘頌. 2026-03-17 | 4/200 |
|
|
[考博] 26申博 +4 | 八6八68 2026-03-16 | 4/200 |
|
|
[考研] 一志愿,福州大學材料專碩339分求調劑 +3 | 木子momo青爭 2026-03-15 | 3/150 |
|
|
[考研] 283求調劑 +3 | 聽風就是雨; 2026-03-16 | 3/150 |
|
|
[考研] [導師推薦]西南科技大學國防/材料導師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|
|
[考研] 327求調劑 +6 | 拾光任染 2026-03-15 | 11/550 |
|