1樓:蝦兵蟹將
瀉藥最近參加我們學校的建模校賽,賽後有一點經驗比較符合你這個問題,就是在處理大規模優化問題的時候如果不改進演算法,不應用二分法,智慧型演算法之類的優化的話,推薦使用matlab,而且不能使用現成的函式,必須自己編函式檔案。因為在處理優化問題的時候,lingo一般使用的方法通俗講挨個找,非常浪費時間,而matlab現成函式由於自身會考慮非常多的情況,也非常浪費時間。
在這次校賽我們要處理32000多個資料,拿lingo編好,沒用優化演算法,算了15個鐘頭沒出結果(說實話,由於我是建模,不太了解優化演算法,而且程式設計的也不給力,但不用擔心,最後我們改進方法最後還是完成了賽題),賽後問另乙個隊咋做的,他們就是拿matlab自己編的函式檔案,一起處理32000個資料,30min就出結果了。
之後就有了這條經驗。。。。。
要是小規模優化問題,推薦lingo。
2樓:曲伽西
新版的MATLAB也提供了更具可讀性的問題描述方法:c=[2
15134;
104145
;9141613;
78119
];prob
=optimproblem
('ObjectiveSense'
,'min');x
=optimvar
('x',4
,4,'Type'
,'integer'
,'LowerBound',0
,'UpperBound',1
);prob
.Objective
=sum
(sum(c
.*x));prob
.Constraints
.cond1
=sum(x
,1)==
1;prob
.Constraints
.cond2
=sum(x
,2)==
1;% prob.showproblem
sol=
prob
.solve
;sol.x
輸出結果:LP:
Optimal
objective
value
is28.000000
.Optimal
solution
found
.Intlinprog
stopped
atthe
root
node
because
theobjective
value
iswithin
agap
tolerance
ofthe
optimal
value
,options
.AbsoluteGapTolerance=0(the
default
value
).The
intcon
variables
areinteger
within
tolerance
,options
.IntegerTolerance
=1e-05
(the
default
value
).ans=0
0010
1001
0000
010如果是老版本的話可以用 YALMIP, 這個東西就是專門用來在MATLAB中定義優化問題,並且提供不同求解器的介面方便呼叫。也就是說只需要定義一次問題就可以呼叫不同的求解器(當然也包括 MATLAB本身的求解器),這是他整數規劃的例子:
Integer programming
支援的不同規劃也挺多的:
YALMIP
支援的求解器更是不少啦~
Solvers
而且YALMIP本身是完全免費的
Mathematica 和 MATLAB 都有什麼不同?做數學分析哪個比較專業?
HyperGroups 即然是數學分析相關 那肯定就是Mathematica了。因為Mathematica還擅長排版啊,無論是手工代替草稿紙進行 數學分析 還是機器推符號進行 數學分析 還是數形結合進行數學的分析 都很擅長啊 完了還能把文件轉換成Latex進行網上交流知乎上傳MarkDown功能又瞎...
matlab在AMD上相容嗎?
迅工 相容啊,就是速度問題哈 我來說說說筆記本,僅限筆記本聊兩句,個人感受,變數控制能力有限,供參考 例如用matlab官方程式,field2 檔案測試下拯救者R7000 r7 4800H版本 我幾年前的遊戲本,巨集碁的 i5 4210H 2核四執行緒 DDR3記憶體,sata協議的固態硬碟,測試m...
和 Python 相比,Matlab 能否成為深入學習資料探勘的工具
追日少年明仔 資料探勘包括資料獲取以及資料分析。如果能用matlab寫個爬蟲,我覺得還是可以的。但是matlab收費,python普遍不收費吧。 大德魯伊 這學期做自然語言處理,用python,快捷方便,matlab我一直不會用,不過畢竟數學計算能力比較好。不過還是推薦py做,萬能的語言,而且比較實...