YALMIP安裝與使用整理
安裝
1.下載後的檔案壓縮包解壓後如下:
YALMIP-master
2.將其剪下至matlab常用工具包的根目錄途徑,(我的matlabR2020a):C:\Program Files\Polyspace\R2020a\toolbox\YALMIP-master
3.在matlab軟體中新增路徑:–主頁\設定路徑
直接選擇新增幷包含子資料夾
直接貼上安裝的路徑
C:\Program Files\Polyspace\R2020a\toolbox\YALMIP-master
4.點選儲存!!!
ps:如果matlab安裝位置不同記得選擇好自己安裝matlab的正確位置喲!
5.測試安裝是否成功.
在matlab執行視窗輸入‘yalmiptest’命令或者‘which sdpvar’
也可以採用官網所說的安裝方式。但是也得注意解壓的位置!
Yalmip使用
1. 建立決策變數:
>> x = sdpvar(m, n [, option]):建立m*n的連續型決策變數矩陣,option是對矩陣的一些引數指定。
相應的,如果要建立整型或二值型決策變數,matlab語句分別為:
>> x = intvar(m, n, [option])
>> x = binvar(m, n, [option])
2. 新增約束:
>> F = set(constraint [, tag]):建立一個以constraint指定的約束,可選引數tag可以給該約束指定一個字串標記。重要的是constraint的表達也非常簡單,例如如果有 x1 + x2 + x3 <= 3 的約束,直接寫:
>> x = sdpvar(3, 1);
>> F = set(x(1) + x(2) + x(3) <= 3, 'cost bound1');
如果要繼續新增約束也非常簡單,支援用+直接相連:
>> F = F + set(constraint1 [, tag1]);
>> F = F + set(constraint2 [, tag2]);……
例如,如果繼續限制 x 只能取[0, 1]之間的值,則:
>> F = F + set(0 <= x <= 1, ‘upper and lower bound’);
一句話就搞定了,是不是非常簡單。!
3. 引數配置
這個比較簡單,語句如下:
>> ops = sdpsettings(option1, value1, option2, value2, ……)
例如語句
>> ops = sdpsettings('solver', 'lpsolve', 'verbose', 2);
'solver' 引數指定程式用lpsolve求解器(如果已經安裝,否則會報錯),如果不指定 ‘solver’ 引數,他會根據決策變數型別自動挑選已安裝的、最適合的求解器;'verbose' 指定顯示冗餘度(冗餘度越大,你就可以看到越詳細的求解過程資訊)。
4. 求解
這個也只有一句話:
>> result = solvesdp(F, f, ops) 求解一個數學規劃(最小化)問題,該問題的目標函式由 f 指定,約束由 F 指定,ops指定求解引數,最後的結果儲存在result結構體中。
還是以前面那個問題作為例子,如果用yalmip的話,只需要如下簡單幾句:
>> x = sdpvar(3, 1);
>> f = [4 2 1] * x;
>> F = set(2*x(1) + x(2) <= 1);
>> F = F + set(x(1) + 2 * x(3) <= 2);
>> F = F + set(x(1) + x(2) + x(3) == 1);
>> F = F + set(0 <= x(1) <= 1) + set(0 <= x(2) <= 1) + set(0 <= x(3) <= 2);
>> ops = sdpsettings('solver', 'lpsolve', 'verbose', 2);
>> result = solvesdp(F, -f, ops);
如果你想用 cplex 求解器求解,只需要將以上的‘solver’引數的‘lpsolve’改成‘cplex’,其他任何地方都不需要做改動。
除此以外,yalmip還支援幾乎所有其他的求解演算法,在matlab下輸入yalmiptest命令可以得到所有支援的演算法以及它們的安裝狀態
相關文章
- nacos安裝與使用
- Nginx安裝與使用Nginx
- Redis 安裝與使用Redis
- MONGDB 安裝與使用
- curl 安裝與使用
- Presto安裝與使用REST
- DRF安裝與使用
- MITMF安裝與使用MIT
- PostgresSQL安裝與使用SQL
- PDNN安裝與使用DNN
- RAR安裝與使用
- Sourcetree安裝與使用
- statspack安裝與使用
- Samba安裝與使用Samba
- Docker安裝與使用Docker
- 整理了cacti安裝和plugin安裝Plugin
- Go 安裝與使用 mqttGoMQQT
- kafka的安裝與使用Kafka
- Zabbix Agent 安裝與使用
- golint 安裝與使用Go
- nvm的安裝與使用
- Kylin安裝與使用
- cocoapods安裝與使用
- protocol buffer 安裝與使用Protocol
- MySQLdb的安裝與使用MySql
- CocoaPods 安裝與使用
- OCLint 安裝與使用
- 線上git安裝與使用Git
- DrissionPage的安裝與使用
- Supervisor 安裝與使用
- Jenkins安裝與使用Jenkins
- PySpark與GraphFrames的安裝與使用Spark
- perl安裝異常整理
- Memcached安裝與使用例項
- Homebrew 換源安裝與使用
- Linux 安裝Nginx與使用LinuxNginx
- sqoop 安裝與配置使用OOP
- Anaconda的安裝與使用