原非線性規劃式子:
**展示如下:
model:!程式設計開始;
title:life;!標題;
sets:!集合段;
row/1..4/:b;
col/1..5/:c1,c2,x;
link(row,col):a;
endsets
data:!資料段;
c1=1,1,3,4,2;!對應目標函式中的x的平方;
c2=-8,-2,-3,-1,-2;!對應目標函式中的x的一次方;
!約束條件係數;
a=1 1 1 1 1
1 2 2 1 6
2 1 6 0 0
0 0 1 1 5;
b=400,800,200,200;
enddata
max = @sum(col:(c1*x^2+c2*x));!計算段;
@for(row(i):@sum(col(j):a(i,j)* x(j))<=b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));
end提醒一下上面有幾個小函式,
首先是lingo中所有函式都要加上@
然後@for是迴圈,@sum是求和,@gin是限制整數;@bnd是限制變數x在[0,99]中
[整理版]lingo中的函式 - 豆丁網 (docin.com)
然後還有個小問題就是我的lingo**裡加了中文注釋,我個人是不推薦在自己使用lingo的時候加上中文的,
因為部分版本的lingo中加中文會導致關鍵字顯示不正確,比如這樣(sets和col變成綠色的了,雖然好像不影響使用,但我個人總感覺不太舒服)
然後我最後再附上沒有中文的lingo**,以及執行結果
**:model:
title:life;
sets:
row/1..4/:b;
col/1..5/:c1,c2,x;
link(row,col):a;
endsets
data:
c1=1,1,3,4,2;
c2=-8,-2,-3,-1,-2;
a=1 1 1 1 1
1 2 2 1 6
2 1 6 0 0
0 0 1 1 5;
b=400,800,200,200;
enddata
max = @sum(col:(c1*x^2+c2*x));
@for(row(i):@sum(col(j):a(i,j)* x(j))<=b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));
end然後這是結果:
最優解:
各變數值:
老規矩,做一名深情的單身程式設計師
(ps:我不主動找你, 不是因為你不重要了, 而是我知道我不重要了 。)
數學建模 非線性規劃
2014年4月17日 規劃方法是建模中的常用手段。那麼顯然要人有我優了,非線性規劃就是乙個不錯的加分點。下面介紹幾種常用的非線性規劃技巧 這裡要說一下無約束法,規劃問題的困難在於求解,特別是約束比較奇怪的。於是在比賽中把有約束的規劃問題轉換成無約束的規劃問題就成了乙個大大的加分點。另外dfp之類的包...
數學建模 非線性規劃
如果目標函式或約束條件中包含非線性函式,則稱這種規劃問題為非線性規劃問題,簡寫為np。二次規劃是非線性規劃中的特例,由於二次規劃有通用的解法,所以單獨討論,而其他的非線性規劃問題沒有通用的解法。在matlab中,非線性規劃的數學模型可以寫為下面的形式 mi nf x st.ax b aeq x be...
數學建模 非線性優化模型
定義 如果目標函式或約束條件中至少有乙個是非線性函式時的最優化問題就叫做非線性規劃問題。一般形式 min f x gi x 0 i 1,2,m hj x 0 j 1,2,m 其中 x x1 x2 xn t en f gi,hj 是定義在 en 上的實值函式。其他情況 求目標函式的最大值或約束條件為小...