h5網(wǎng)站開發(fā)教程企業(yè)網(wǎng)站管理系統(tǒng)怎么操作
1.基本運(yùn)算符
1.1算數(shù)運(yùn)算符
1.2邏輯運(yùn)算
#not# | 否定操作數(shù)的邏輯值,一元運(yùn)算符 |
#eq# | 若兩運(yùn)算數(shù)相等,則為true,否則為false |
#ne# | 若兩運(yùn)算數(shù)不相等,則為true,否則為false |
#gt# | 若左邊運(yùn)算數(shù)嚴(yán)格大于右邊,則為true,否則為false |
#ge# | 若左邊運(yùn)算數(shù)大于或等于右邊,則為true,否則為false |
#lt# | 若左邊運(yùn)算數(shù)嚴(yán)格小于右邊,則為true,否則為false |
#le# | 若左邊運(yùn)算數(shù)小于或等于右邊,則為true,否則為false |
#and# | 僅當(dāng)兩個(gè)參數(shù)都為true時(shí)為true,否則為false |
#or# | 僅當(dāng)兩個(gè)參數(shù)都為false時(shí)為true,否則為false |
1.3關(guān)系運(yùn)算符
>=,<=,=。不嚴(yán)格區(qū)分大于和大于等于、小于和小于等于。
2.函數(shù)
注意事項(xiàng):
- Lingo中模型以”MODEL:“開始,以”EDN“結(jié)束
- 每一行后面都有一個(gè)分號”;“
- 所有符號需要在英文下輸入
- min=函數(shù),max=函數(shù),表示求函數(shù)的最小,最大值;
- Lingo不區(qū)分大小寫,變量名需要以字母開頭
- 求解模型是假定所有變量均為非負(fù),若要解除需要用函數(shù)@free(x)
- 若要整數(shù)規(guī)劃需要聲明@gin(
)
- 若要0-1規(guī)劃,需要將變量設(shè)置為@bin(
)
3.集合
sets: !定義集合;
類名1/1..6/:a;
類名2/1..3/:b;
endsetsdata: !賦初值;
a=1,2,3,4,5,6;
b(1)=5
enddata
其中類名是相當(dāng)于我們C語言中的結(jié)構(gòu)體變量類型(自己定義),如上類名1和類名2是兩個(gè)不同的類(一個(gè)類表示1行6列的矩陣,另一個(gè)表示一行3列矩陣),后面的a,b為變量名,a、b均是個(gè)矩陣,
需要在data中賦初值(可以不賦值),可以進(jìn)行()訪問,如b(1)。
4.循環(huán)與求和
4.1for循環(huán)
例子:?? ?i=1,2,3,4,5的表示:
sets:
gc/1..5/:a,x;
endsetsdata:
a=1,2,3,4,5;
enddatamax=s;
@for(gc(i):s=a(i)*x(i));
上面的@for()是一個(gè)循環(huán)語句,第一個(gè)dc(i):表示在哪個(gè)類中循環(huán),循環(huán)幾次,i將前面與后面連接起來。
4.2.sum
例子:
@sum(gc(i):x(i))=5000;
5.創(chuàng)建二維數(shù)據(jù)
sets:
row/1..6/:a;
col/1..5/:b;
Cooperation(row,col):c;!c是6行5列的矩陣。;
Cooperation(col,row):d !d是5行6列的矩陣;
coo(col,row):f !前面的名字可以自己取;
Cooperation(2,3):e ! 報(bào)錯,必須用類型名來定義;
endsets
6.實(shí)戰(zhàn)(使用講解)
其實(shí)lingo更像是一個(gè)數(shù)學(xué)語言翻譯軟件,lingo的基本組成單位不是語句,而是“等式與不等式”,每個(gè)不等式之間沒有關(guān)聯(lián),所以一定要方程組有解才能運(yùn)行出結(jié)果
6.1先看一下簡單解方程
操作步驟如下:
點(diǎn)擊紅色的“標(biāo)靶”后會出現(xiàn)如下窗口:
再點(diǎn)擊Close
上面就出來x1和x2的值了。
6.2解線性規(guī)劃
- 一個(gè)線性規(guī)劃中只含有一個(gè)目標(biāo)函數(shù)
- 求目標(biāo)函數(shù)最大值最小值用max=...或min=...來表示