1樓:無與a侖比
凸二次規劃。也可以用fmincon函式,你寫了你的**,還沒寫你的問題~
急求一份用matlab求解二次規劃問題的**。
2樓:匿名使用者
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: [ ]
3樓:雨飛龍在天
matlab函式庫有二次規劃函式quadprog
可以直接呼叫來求解二次規劃問題,在matlab可以用help+quadprog來檢視該函式的用法。
根據你的問題的引數,呼叫的格式不同。
matlab求解二次規劃問題 5
4樓:匿名使用者
題主給出的用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求解,目標與約束裡含有二次,的凸規劃問題,真心謝謝
5樓:匿名使用者
請把具體的問題貼出來,這樣好幫助你解決問題。一般來說,凸規劃問題可以用fmincon函式來解決。fmincon函式用於求解具有目標函式和約束函式的最優化問題。
請大神幫忙用matlab解一下二次規劃問題,謝謝
6樓:我行我素
可這樣:
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 求解二次規劃
7樓:匿名使用者
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更進一步的用法請參閱相關教程,這裡從略。
8樓:匿名使用者
是整數規劃?
lingo不是解線性規劃的麼?
能把問題說的清楚些麼?
matlab有個最優化工具箱(optimization tools),裡面有個單獨解二次規劃的模組。
二次規劃是np-hard問題,一般來講,變數超過一定尺度(14個)就不能在有限的時間內解決了。
matlab二次規劃問題
9樓:兔子和小強
這個優化目標不是二次型、約束也不是線性約束,無法用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約束無法滿足。
10樓:匿名使用者
約束條件非線性,quadprog做不了吧
這些啥意思? g8(x) ----- : g9(x)
matlab求解二次規劃問題sedumi與quadprog結果不同
11樓:匿名使用者
不同的工具箱,結果是不同的,其中有很多取捨。你就用sedumi吧,比matlab自帶的好一些
二次多目標規劃問題怎麼用matlab解決
matlab解二次規劃,matlab解二次規劃
沒有源 如何說明問題啊。貼一下你的m檔案和錯誤提示,這個光靠看是無法回答的 matlab求解二次規劃問題 5 題主給出的用matlab求解二次規劃問題,執行結果總是求lambda負無窮大,x,y近於零。分析和執行題主的 其根本的錯誤是缺少lambda變數的下限值,應該為vlb 0 0 0 再一個問題...
用MATLAB求解線性規劃問題怎麼程式設計
基本是利用linprog函式,簡單給你介紹一下這個函式 首先將線性規劃問題化為標準型 min z cx s.t.a1x b1 a2x b2 v1 x v2 然後利用指令 x,fv,ef,out,lambda linprog c,a1,b1,a2,b2,v1,v2,x0,opt 即可。不需要設定的部分...
求助用Matlab求解非線性規劃的問題,不勝感激
1.把 x,fval fmincon fun x0,a,b,aeq,beq,vlb,vub,mycon 改為 x,fval fmincon fun x0,a,b,aeq,beq,vlb,vub 我不是太清楚你為什麼要加mycon沒用吧。2.目標函式加負號 因專為fmincon是求最小值 functi...