2013-01-23 36 views
2

我以前從未使用過並行計算。這就是爲什麼我的問題可能很愚蠢。我有一個優化程序,用於最小平方函數「bla」並行計算工具箱fminsearch

[email protected](p)bla(m1,m2,m3,p,m2,m3); 
pstart=0.2; 
[pbest,likemodelvalue]=fminsearch(d,pstart,options) 

但是它非常慢。我可以使用fminseach進行並行編程,對於每個「p」值嗎?

+2

也許你可以用不同的分發MATLAB工人域嘗試。那麼全球分鐘將是分佈結果中的最小分數。 – Acorbe

回答

2

優化工具箱有一些並行計算工具,您還需要購買並行計算工具箱。這些功能在這裏描述:http://www.mathworks.com/help/optim/ug/using-parallel-computing-with-fmincon-fgoalattain-and-fminimax.html。我不確定這是不是你想要的。如果你想找到的pbset多個不同值的pstart不同的值,你可以做這樣的事情(再次使用並行計算工具箱)

matlabpool open local % launch local workers 
pstart = 0:0.2:10; 
for ii = 1:numel(pstart) 
    [pbest(ii), likemodelvalue(ii)] = fminsearch(d, pstart(ii), options); 
end 
+0

非常感謝您的回覆。我想找到使我的矩陣最小化的「p」。而fminsearch試圖通過「p」的許多值來做到這一點,從「pstart」開始。是否有可能,matlab不是一個接一個地尋找這個「p」值,而是同時尋找? – user1018331