資源描述:
《數(shù)學(xué)建模講座優(yōu)化建模與LINGO優(yōu)化軟件課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)學(xué)建模講座優(yōu)化建模與LINGO優(yōu)化軟件例1minf(x1,x2)=-2x1-6x2+x12-2x1x2+2x22s.t.x1+x2≤2-x1+2x2≤2x1≥0,x2≥0Lingo基礎(chǔ)Lingo程序MIN=-2*X1-6*X2+X1*X1-2*X1*X2+2*X1*X1;X1+X2<=2;-X1+2*X2<=2;Lingo基礎(chǔ)計算結(jié)果Objectivevalue:-9.777778X1=0.6666667X2=1.333333Lingo基礎(chǔ)例2x1+x2=0s.t.1.5+x1x2-x1-x20-x1x2–100Lingo基礎(chǔ)Lingo程序min=@exp(x1)*(4*x1
2、*x1+2*x2*x2+4*x1*x2+2*x2+1);x1+x2=0;1.5+x1*x2-x1-x2<=0;-x1*x2-10<=0;@free(x1);@free(x2);Lingo基礎(chǔ)計算結(jié)果Objectivevalue:5.276848X1=1.224745X2=-1.224745這是局部最優(yōu)值Lingo基礎(chǔ)Lingo菜單中Options,選GlobalSolver,在UseGlobalSolver中打鉤,再次計算。Objectivevalue:1.156627X1=-3.162278X2=3.162278Lingo基礎(chǔ)例三Lingo基礎(chǔ)例三中,x,y,e是一維數(shù)組,長
3、度為2,a,b,d也是一維數(shù)組,長度為6,c是二維數(shù)組(6×2矩陣)Lingo中如何定義它們?Lingo基礎(chǔ)Lingo程序example3_2sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;enddataLingo基礎(chǔ)init:x,y=5,1,2,7;endinitmin=@sum(link(i,j):c(i,j)*(
4、(x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):@sum(supply(j):c(i,j))=d(i););@for(supply(i):@sum(demand(j):c(j,i))<=e(i););@for(supply:@bnd(0.5,X,8.75);@bnd(0.75,Y,7.75););ENDLingo基礎(chǔ)計算結(jié)果為Objectivevalue:89.88349模型的集部分LINGO有兩種類型的集:原始集(primitive set)和派生集(derivedset)。一個原始集是由一些最基本的對象組成的。一個派生集
5、是用一個或多個其它集來定義的,也就是說,它的成員來自于其它已存在的集。定義一個原始集,用下面的語法:setname[/member_list/][:attribute_list];注意:用“[]”表示該部分內(nèi)容可選。Member_list是集成員列表。如果集成員放在集定義中,那么對它們可采取顯式羅列和隱式羅列兩種方式。如果集成員不放在集定義中,那么可以在隨后的數(shù)據(jù)部分定義它們模型的數(shù)據(jù)部分數(shù)據(jù)部分以關(guān)鍵字“data:”開始,以關(guān)鍵字“enddata”結(jié)束。在這里,可以指定集成員、集的屬性。數(shù)據(jù)部分的未知數(shù)值有時只想為一個集的部分成員的某個屬性指定值,而讓其余成員的該屬性保持未知
6、,以便讓LINGO去求出它們的最優(yōu)值。在數(shù)據(jù)聲明中輸入兩個相連的逗號表示該位置對應(yīng)的集成員的屬性值未知。兩個逗號間可以有空格數(shù)據(jù)部分的未知數(shù)值sets:years/1..5/:capacity;endsetsdata:capacity=,34,20,,;enddata屬性capacity的第2個和第3個值分別為34和20,其余的未知模型的初始部分一個初始部分以“init:”開始,以“endinit”結(jié)束。初始部分的初始聲明規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)聲明規(guī)則相同。模型的初始部分init:x,y=5,1,2,7;endinitLINGO函數(shù)基本運算符數(shù)學(xué)函數(shù)金融函數(shù)概率函數(shù)變量界定函數(shù)集
7、操作函數(shù)集循環(huán)函數(shù)數(shù)據(jù)輸入輸出函數(shù)輔助函數(shù)算術(shù)運算符^ 乘方﹡ 乘/ 除﹢ 加﹣ 減邏輯運算符#not##eq##ne##gt##ge##lt##le# #and# #or#關(guān)系運算符LINGO有三種關(guān)系運算符:“=”、“<=”和“>=”。LINGO并不支持嚴格小于和嚴格大于關(guān)系運算符。然而,如果需要嚴格小于和嚴格大于關(guān)系,比如讓A嚴格小于B:A