1樓:匿名使用者
lingo的確可以解二次規劃,如果想讓某變數x只能取值0-1的話,用@bin(x)即可
我寫個最簡單的例子
--------------------------------
min x1^2+3*x2-x3+4*x^2
s.t. x1+x2-x3-x4>0
x1*x2=-6
x1>3
x2∈r
x3>=0
x4∈-----------------------------------
lingo程式的寫法(最簡單的寫法)
-----------------------------------
model:
min=x1^2+3*x2-x3-4*x4^2;
x1+x2-x3-x4>0;
x1*x2=-6;
x1>3;
@free(x2);! 感嘆號後面的是說明語句。lingo預設變數均為非負的。free表示該變數無約束範圍。
@bin(x4);!bin表示該變數為0-1變數。
end------------------------------------
執行後即可得到解答。
關於lingo更進一步的用法請參閱相關教程,這裡從略。
2樓:匿名使用者
是整數規劃?
lingo不是解線性規劃的麼?
能把問題說的清楚些麼?
matlab有個最優化工具箱(optimization tools),裡面有個單獨解二次規劃的模組。
二次規劃是np-hard問題,一般來講,變數超過一定尺度(14個)就不能在有限的時間內解決了。
matlab求解二次規劃問題 5
3樓:匿名使用者
題主給出的用matlab求解二次規劃問題,執行結果總是求lambda負無窮大,x,y近於零。分析和執行題主的**,其根本的錯誤是缺少lambda變數的下限值,應該為vlb=[0;0;0];再一個問題沒有利用x+y=7的等式條件,應該可以這樣來補充,aeq=[1,1,0];beq=[7];
糾正上述錯誤,後執行可以得到如下的解。
k1 = 3.0071 %x
k2 = 3.9929 %y
k3 = 0.995 %λ
fval = -13.016
matlab二次規劃問題
4樓:兔子和小強
這個優化目標不是二次型、約束也不是線性約束,無法用quadprog求解,可以考慮用fmincon來解。
新建個mycon.m檔案,裡面的內容是:
function [c, ceq] = mycon(x)
u = [3.6 0.8 28 8.3 8.3 3.9 5.5]';
l = [2.6 0.7 17 7.3 7.3 2.9 5.0]';
% 25個不等式約束
c = [27 - x(1)*x(2)^2*x(3);
397.5 - x(1)*x(2)^2*x(3)^2;
1.93*x(4)^3 - x(2)*x(3)*x(6)^4;
1.93*x(5)^3 - x(2)*x(3)*x(7)^4;
sqrt((745*x(4)/x(2)/x(3))^2 + 16.9e6) - 110*x(6)^3;
sqrt((745*x(5)/x(2)/x(3))^2 + 157.5e6) - 85*x(7)^3;
x(2)*x(3) - 40;
x(1) - 12*x(2);
5*x(2) - x(1);
x - u;
l - x;
1.5*x(6)+1.9 - x(4);
1.1*x(7)+1.9 - x(5)];
% 等式約束
ceq = ;
end呼叫的程式是:
%% 最優化目標函式f
f = @(x)0.7854*x(1)*x(2)^2*(3.3333*x(3)^2+14.
9334*x(3)-43.0934)-1.508*x(1)*(x(6)^2+x(7)^2) + 7.
477*(x(6)^3+x(7)^3)+0.7854*(x(4)*x(6)^2+x(5)*x(7)^2);
x = fmincon(f, ones(7,1), ,,,,,, @mycon, optimset('display', 'off'))
f(x)
解出來的值與你的最終答案基本一樣,除了x(5)=7.7以外。
你所貼的最終答案是錯的,如果x(5) = 7.3,那麼g25約束無法滿足。
5樓:匿名使用者
約束條件非線性,quadprog做不了吧
這些啥意思? g8(x) ----- : g9(x)
急求一份用matlab求解二次規劃問題的**。
6樓:匿名使用者
max f (x1, x2)=x1x2+3sub.to x1+x2-2=0
解:化成標準形式:
sub.to x1+x2=2
在matlab中實現如下:
>>h=[0,-1;-1,0];
>>f=[0;0];
>>aeq=[1 1];
>>b=2;
>>[x,fval,exitflag,output,lambda] = quadprog(h,f,[ ],[ ],aeq,b)
結果為:
x =1.0000
1.0000
fval =
-1.0000
exitflag =
1output =
firstorderopt: 0
iterations: 1
cgiterations: 1
algorithm: [1x58 char]lambda =
eqlin: 1.0000
ineqlin: [ ]
lower: [ ]
upper: [ ]
7樓:雨飛龍在天
matlab函式庫有二次規劃函式quadprog
可以直接呼叫來求解二次規劃問題,在matlab可以用help+quadprog來檢視該函式的用法。
根據你的問題的引數,呼叫的格式不同。
請大神幫忙用matlab解一下二次規劃問題,謝謝
8樓:我行我素
可這樣:
f=@(x)-702.5*x(1)*x(2)-750*x(1)*x(4)-625*x(2)*x(3)-350*x(2)*x(4);
a=[700,450,0,0;0,0,762.5,525];b=[200;150];
aeq=[1,1,0,0;0,0,1,1];beq=[1;1];lb=zeros(4,1);[x,f]=fmincon(f,ones(4,1)*0.5,a,b,aeq,beq,lb)
結果是:
x =0.1392
0.8608
0.0000
1.0000
f =-489.8553
也就是,x1=0.1392,x2=0.8608,y1=0,y2=1,maxf=489.8553
matlab求解二次規劃問題sedumi與quadprog結果不同
9樓:匿名使用者
不同的工具箱,結果是不同的,其中有很多取捨。你就用sedumi吧,比matlab自帶的好一些
用matlab求解凸二次規劃問題
10樓:無與a侖比
凸二次規劃。也可以用fmincon函式,你寫了你的**,還沒寫你的問題~
二次規劃與非線性規劃的區別,二次規劃與非線性規劃的區別
二次規劃肯定是非線性規劃!反之就不對了。你把線性規劃的定義弄出來一看 包含與被包含的關係。二次規劃是非線性的,非線性包含所有非線性的規劃。非線性規劃與線性規劃有什麼區別嗎?非線性規劃是具有非線性約束條件或目標函式的數學規劃,是運籌學的一個重要分支。非線性規劃是20世紀50年代才開始形成的一門新興學科...
如何用MATLAB求解0 1整數規劃
用lingo,好用,專門做優化的,比matlab好用,matlab得到的可能不是全域性最優解。如何用matlab求解0 1規劃問題 20 你是數學建模的吧,我也在愁這個問題。matlab程式設計 0 1規劃問題 向高手求程式 建立數學模型。設xi 1表示ai被選中,xi 0表示ai沒被選中。則數學模...
求解以下一元二次方程的題目,求解一元二次方程有4種解法例題
1.x 2 6.25 x 2 6.25 x 2.52.x x 3 2 9,x 3 x 2 3x 18 0 x 6 舍負 3.100 2x 80 2x 48004x 2 360x 3200 0,0 邊長10 1.3.14x 2 6.25 x 2 6.25 3.14 1.99 x 1.41 2.x x ...