lingo是用來求解線性和非線性優化問題的簡易工具。lingo免費版可以支援30個未知數,lingo破解版可以支援幾萬個未知數、幾萬個約束條件。lingo中變數不區分大小寫,以字母開頭不超過32個字元
算術運算子是針對數值進行操作的。
lingo提供了5種二元運算子:^乘方 ﹡乘 /除 ﹢加 ﹣減
lingo唯一的一元算術運算子是取反函式「﹣」。
運算子的優先順序由高到底為:
運算子級別(由高到低)
-(取反)1^
2*和/
3+和-4
運算子的運算次序為從左到右按優先順序高低來執行。運算的次序可以用圓括號「()」來改變。
標準數學函式函式
用途@abs(x)
返回x的絕對值
@sin(x)
返回x的正弦值,x採用弧度制
@cos(x)
返回x的余弦值
@tan(x)
返回x的正切值
@exp(x)
返回常數e的x次方
@log(x)
返回x的自然對數
@lgm(x)
返回x的gamma函式的自然對數
@sign(x)
如果x<0返回-1;否則,返回1
@floor(x)
返回x的整數部分。當x>=0時,返
最大最小函式函式
用途@smax(x1,x2,…,xn)
返回x1,x2,…,xn中的最大值
@max()
一般對集迴圈函式取集裡面的最大值
@smin(x1,x2,…,xn)
返回x1,x2,…,xn中的最小值
@min()
一般對集迴圈函式取集裡面的最小值
邊界限定函式函式
用途@bin(x)
限制x為0或1
@bnd(l,x,u)
限制l≤x≤u
@free(x)
取消對變數x的預設下界為0的限制,即x可以取任意實數
@gin(x)
限制x為整數
輔助函式
@if(logical_condition,true_result,false_result)
#@if函式將評價乙個邏輯表示式logical_condition,如果為真,返回true_ result,否則返回false_result
在預設情況下,lingo規定變數是非負的,也就是說下界為0,上界為+∞。@free取消了預設的下界為0的限制,使變數也可以取負值。@bnd用於設定乙個變數的上下界,它也可以取消預設下界為0的約束。
例子:求f=x1^2+3*x2-x1*x2+e^x3
在 x1+x2>=350;
x1+x3<50;
2*x1+x2+x3<=600;
x1只能取0或1;x2為整數的條件下的最小值。
min=x1^2+3
*x2-x1*x2+@exp(x3);
x1+x2>=350;
x1+x3<50;
2*x1+x2+x3<=600;
@bin(x1);@gin(x2);
邏輯運算子
運算子解釋優先順序(由高到低)
not否定該運算元的邏輯值,#not#是乙個一元運算子
1#eq#
若兩個運算數相等,則為true;否則為flase
2#ne#
若兩個運算子不相等,則為true;否則為flase
2#gt#
若左邊的運算子嚴格大於右邊的運算子,則為true;否則為flase
2#ge#
若左邊的運算子大於或等於右邊的運算子,則為true;否則為flase
2#lt#
若左邊的運算子嚴格小於右邊的運算子,則為true;否則為flase
2#le#
若左邊的運算子小於或等於右邊的運算子,則為true;否則為flase
2#and#
僅當兩個引數都為true時,結果為true;否則為flase
3#or#
僅當兩個引數都為false時,結果為false;否則為true3
模型求解狀態
@status()
返回lingo求解模型結束後的狀態:
返回值狀態
0global optimum(全域性最優)
1infeasible(不可行)
2unbounded(無界)
3undetermined(不確定)
4feasible(可行)
5infeasible or unbounded(通常需要關閉「預處理」選項後重新求解模型,以確定模型究竟是不可行還是無界)
6local optimum(區域性最優)
7locally infeasible(區域性不可行,儘管可行解可能存在,但是lingo並沒有找到乙個)
8cutoff(目標函式的截斷值被達到)
9numeric error(求解器因在某約束中遇到無定義的算術運算而停止)
通常,如果返回值不是0、4或6時,那麼解將不可信,幾乎不能用。該函式僅被用在模型的資料部分來輸出資料。
MAC npm更新版本
執行下面的命令,檢視npm可更新的版本 npm g outdated輸入一下命令,更新對應的版本 sudo npm g install npm 4.4 4在這裡安裝可能會報錯 去這個路徑下面把.npm.delete這個資料夾刪除掉,重新安裝即可,這個時候也可能會遇到下面的錯誤 bash usr lo...
node更新版本
node有乙個模組叫n 這名字可夠短的。是專門用來管理node.js的版本的。首先安裝n模組 1 npminstall g n 第二步 公升級node.js到最新穩定版 1 n stable 是不是很簡單?n後面也可以跟隨版本號比如 1 n v0.10.26 或?1 n 0.10.26 就這麼簡單,...
TensorFlow更新版本
tensorflow不同版本使用的函式可能有較大差異,網上的很多教程使用的都是老版本的,但還是毅然將tensorflow更新到最新版本。執行乙個tensorflow程式,會有社會初始化資訊 後面加上tensorflow的版本 這裡cpu版本和gpu版本的區別 如下面的命令安裝1.2 cpu版本 su...