Lingo的基本用法 更新版

2021-08-21 04:13:23 字數 2684 閱讀 2915

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...