Matlab求解二次規劃問題,Matlab求解二次規劃問題

2021-03-04 04:45:41 字數 5429 閱讀 9659

1樓:匿名使用者

題主給出的用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求解二次規劃問題的**。

2樓:匿名使用者

樓上正解,不過用doc+quadprog或者helpwin+quarprog介面更好。

以下是help+quadprog得到的用法,英文不懂的查字典…

採納吧~少年~

我最近在研究matlab的平行計算~哦吼吼

quadprog quadratic programming.

x=quadprog(h,f,a,b) attempts to solve the quadratic programming problem:

min 0.5*x'*h*x + f'*x subject to: a*x <= b

xx=quadprog(h,f,a,b,aeq,beq) solves the problem above while additionally

satisfying the equality constraints aeq*x = beq.

x=quadprog(h,f,a,b,aeq,beq,lb,ub) defines a set of lower and upper

bounds on the design variables, x, so that the solution is in the

range lb <= x <= ub. use empty matrices for lb and ub

if no bounds exist. set lb(i) = -inf if x(i) is unbounded below;

set ub(i) = inf if x(i) is unbounded above.

x=quadprog(h,f,a,b,aeq,beq,lb,ub,x0) sets the starting point to x0.

x=quadprog(h,f,a,b,aeq,beq,lb,ub,x0,options) minimizes with the default

optimization parameters replaced by values in the structure options, an

argument created with the optimset function. see optimset for details.

used options are display, diagnostics, tolx, tolfun, hes**ult, largescale,

maxiter, precondbandwidth, typicalx, tolpcg, and maxpcgiter. currently,

only 'final' and 'off' are valid values for the parameter display ('iter'

is not available).

x=quadprog(hinfo,f,a,b,aeq,beq,lb,ub,x0,options,p1,p2,...) passes the

problem-dependent parameters p1,p2,... directly to the hmfun function

when optimset('hes**ult',hmfun) is set. hmfun is provided by the user.

pass empty matrices for a, b, aeq, beq, lb, ub, xo, options, to use the

default values.

[x,fval]=quadprog(h,f,a,b) returns the value of the objective function at x:

fval = 0.5*x'*h*x + f'*x.

[x,fval,exitflag] = quadprog(h,f,a,b) returns an exitflag that describes the

exit condition of quadprog. possible values of exitflag and the corresponding

exit conditions are

1 quadprog converged with a solution x.

3 change in objective function value **aller than the specified tolerance.

4 local minimizer found.

0 maximum number of iterations exceeded.

-2 no feasible point found.

-3 problem is unbounded.

-4 current search direction is not a direction of descent; no further

progress can be made.

-7 magnitude of search direction became too **all; no further progress can

be made.

[x,fval,exitflag,output] = quadprog(h,f,a,b) returns a structure

output with the number of iterations taken in output.iterations,

the type of algorithm used in output.algorithm, the number of conjugate

gradient iterations (if used) in output.cgiterations, a measure of first

order optimality (large-scale method only) in ouput.firstorderopt, and the

exit message in output.message.

[x,fval,exitflag,output,lambda]=quadprog(h,f,a,b) returns the set of

lagrangian multipliers lambda, at the solution: lambda.ineqlin for the

linear inequalities a, lambda.eqlin for the linear equalities aeq,

lambda.lower for lb, and lambda.upper for ub.

3樓:匿名使用者

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: [ ]

4樓:雨飛龍在天

matlab函式庫有二次規劃函式quadprog

可以直接呼叫來求解二次規劃問題,在matlab可以用help+quadprog來檢視該函式的用法。

根據你的問題的引數,呼叫的格式不同。

matlab二次規劃問題

5樓:兔子和小強

這個優化目標不是二次型、約束也不是線性約束,無法用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約束無法滿足。

matlab怎麼求解二元二次偏微分方程

乙個方程兩個未知數,解不出的 另外,方程式是否寫成 dx dt 2 dy dt 2 x y,這是導數平方 或者 d 2x dt 2 d 2y dt 2 x y,這是二次導數 理工科學生最主要需要掌握的程式語言有哪幾種?大哥,學這麼多什麼用,一語言種類懂的再多,還不如乙個精深一們語言的人,就好比你說自...

線性代數二次型問題求解,線性代數二次型化為規範型問題如何解決?

你要好好看答案 答案中說f大於等於0 等於0的情況就是方程組只有零解的時候才成立 非0解帶入方程 x的平方全是大於0的 實對稱矩陣正定二次型要求,當且僅當x 0時,f 0。這是正定的一種說法,這裡的二次型正定等價於 這些方程組只有零解。所以它這裡利用了這個結論。線性代數 二次型化為規範型問題 如何解...

數學二次函式問題,二次函式數學問題

解 1 把a m點的座標代入解析式得 c 1b 2 2a 解析式可表示為y ax 2a 2 x 1因為 2a 2 2a 1 所以a 1 2拋物線的解析式為 y 1 2x x 1 2 因為拋物線y ax bx c開口方下,所以a 0又因為拋物線的對稱軸在y軸的左側,所以 2a 2 2a 0解之,a 1...