1樓:66的琮委
這是 用蒙特卡洛法(隨機演算法 )去一次次實驗得到答案。
2樓:匿名使用者
第乙個mengte是定義目標函式的m函式;
第二個是呼叫上述mengte函式並計算最優化值,tic toc函式表示了計算時間。
請高手們幫忙如何編寫matlab編寫程式來求整數規劃的題目
3樓:網友
1、求解整數規劃問題並不是matlab的強項,如果不是有要求必需要用matlab,可以考慮使用lingo求解,求解速度快,程式也很簡單:
max=120*x1+560*x2;
x1>=0;
x2>=0;
gin(x1);@gin(x2);
end得到的結果是x1=500,x2=0。
2、用matlab求解整數規劃,官方好像並沒有提供有效的手段(僅有乙個用於求解0-1規劃問題的bintprog函式)。我知道的有兩個第三方函式:
乙個是bnb20,是十幾年前編寫的,現在用的話需要做一些改動。而且對非線性約束的處理似乎有問題,我使用它求解並未得到正確答案。
另乙個是lpsolve,其實是用c語言編的,提供了matlab的呼叫介面而已。由於呼叫動態鏈結庫涉及到32位/64位的問題,配置起來比較麻煩,似乎沒必要用它而不是lingo。
3、就本題而言,由於變數少,問題規模不大,可以採用窮舉法。聽起來窮舉法似乎是一種比較笨的方法,但其實對於一些簡單問題來說卻最為直接有效。
由於x1, x2>=0,又存在乙個等式約束,不難得到,滿足約束的x2最大值為,考慮到整數約束,x2的取值其實只有一共24種可能(0-23);再考慮到等式約束,計算出的x2滿足整數要求的僅有8個數而已。在8個數裡面選乙個最大的,應該不是難事吧?
ezplot('',[0 500 0 24])
hold on
x2 = 0:23;
x1 = ( 300 - 1+ / ;
valid = abs(x1-fix(x1)) = eps;
x1 = x1(valid);
x2 = x2(valid);
z = 120*x1+560*x2;
inx,inx] = max(z);
x1(inx) x2(inx)]
scatter(x1,x2,40,z,'filled')
colorbar
得到結果與用lingo求解一致。
matlab求解非線性規劃問題
4樓:網友
有以下幾個問題:
1)你這是多目標,還是單目標。
2)你的約束為線性約束,不需要mycon1這個函式(而且你也用得不對)。
3)你的fun44(x),x是向量,你的程式裡不能有y,z,應使用x(1),x(2),x(3)表示。
4)ax<=b,那你的a應該是乙個對應約束的矩陣。
**我就不幫你寫了,你再看下幫助檔案應該能懂的。
5樓:文庫精選
內容來自使用者:天使小白很黑。
求高手解答matlab中關於非線性規劃的程式,急用!!!
6樓:網友
程式如下:(lingo)
model:
sets:jh1/1..18/:;
jh2/1..7/:lamta;
jh3/1..6/:;
jj(jh1,jh2):c;
mm(jh1,jh2,jh3):x;
endsets
max=@sum(jh1(i):@sum(jh2(j):@sum(jh3(k):lamta(j)*c(i,j)*x(i,j,k)))
for(jh3(k):
sum(jh1(i):@sum(jh2(j):x(i,j,k)))=7);
for(jh1(i):
sum(jh3(k):@prod(jh2(j):(1-x(i,j,k)))5);
for(jh2(j):
for(jh3(k):
sum(jh1(i):x(i,j,k))<1));
for(jh3(k):
sum(jh1(i):@sum(jh2(j):1-x(i,j,k)))15);
for(mm:x>0);
for(mm:x<1);
sum(jh2:lamta)<1;這裡對lamta約束不知道題目什麼約束,你可以自己添上。
sum(jj:c)<1; 這裡對c約束不知道題目什麼約束,你可以自己添上。
end這個程式的約束比較多,所佔記憶體比較大,已經超過lingo的最大限制,你可以找個好點版本試一試,我只能做這麼多,至於matlab這個問題非常複雜,對非線性規劃也知道的不多!你試一試,有問題可以相互交流!
非線性規劃的lingo或matlab實現問題
7樓:
非線性規劃的演算法很多的,而且也分區域性最優演算法和全域性最優化演算法。大多數的軟體實現的非線性區域性最優演算法一般是內點法,而非凸的或具有整數變數的最優化問題的全域性最優演算法一般是分支定界法。
如何用matlab非線性回歸分析
把y x a兩邊取bai對數,就有log y a log x 如果將log y 看成 du是log x 的函zhi數,那麼它們是dao線性的.這時回是方程的個數是10000個,而未知數答是1個 a 這可以用matlab的矩陣除法求解矛盾方程 用的是最小二乘法 下面是乙個例子,我以a 1.45產生一套...
matlab求解非線性約束方程,求教 如何用matlab解帶約束的非線性方程組
用fmincon函式就可以解決,以下是fmincon的說明,你照葫蘆畫就可以了。這個函式的基本形式為 x fmincon fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options 其中fun為你要求最小值的函式,可以單寫乙個檔案設定函式,如以上給的例子中。1.如果fun中有n...
用MATLAB解多元非線性方程組,求大神
首先定義函式 function f fx x f 1 3 x 1 cos x 2 x 3 0.5 f 2 x 1 2 81 x 2 0.1 2 sin x 3 1.06 f 3 exp x 1 x 2 20 x 3 10 pi 3 3 x fsolve fx,1,1,1 最後求得 x 0.5000 ...