用Matlab求解凸二次規劃問題

2021-04-17 17:19:12 字數 4156 閱讀 5941

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...