作者: chungyuandye (養花種魚數月亮賞星星) 看板: Mathematica
標題: Re: [問題] 如何利用Compile加速Maximize?
時間: Sat Aug 6 07:11:16 2011
※ 引述《narwhalgary (獨角鯨葛瑞)》之銘言:
: For[i=1,i<201,i++,
: cn[i]= Maximize[f(i,r),r][[2,1,2]]; ← 希望能加速的程式碼 不知如何Compile
: ......
: ]
: 煩請大大們解答 萬分感激
Maximize這些Mathematica的內建函數基本上都已經Compile過了∼
你要的可能是快速的將這200的最佳化問題計算完,不過既然都要計算,
把[[2,1,2]]的部份先保留起來
以下用平行運算
f[i_, r_] := a*i*r^2 - 2 b r + c
cn[i_Integer] := Minimize[f[i, r], r]
DistributeDefinitions[cn, f, Range[200]];
myans=ParallelMap[cn, Range[200]]
myans[[All, 2, 1, 2]]
另外,Mathematica最佳化的指令可以看查一下這個help
ConstrainedOptimizationIntroduction
如果問題沒有要求解析解,NMaximize 或 NMinimize倒是不錯的選擇!
--
養花種魚數月亮賞星星
http://chungyuandye.twbbs.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.134