Kuhn-tucker conditions matlab
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am solving a maximisation problem subject the the restriction that xi<=delta*TR(x1,x2) for i=1,2. There are two lagrangians associated with my problem:
L1=U1(x1,x2)+lambda1*(delta*TR(x1,x2)-x1)
L2=U2(x1,x2)+lambda2*(delta*TR(x1,x2)-x2)
I need to solve for the vector (x1,x2)
I am investigating two cases:
Case 1: The restriction is binding in both lagrangians i.e. xi=delta*TR(x1,x2) for i=1,2. The Kuhn-Tucker conditions for this require that lambda1>0 and lambda2>0. Thus, I have four FOCS's:
(i) dL1/dx1
(ii) dL1/dlambda1
(iii) dL2/dx2
(iv) dL2/dlambda2
I used FSOLVE with a system of 4 equations and got the result that I was looking for. So this case works fine.
Case (ii)
The restriction xi<=delta*TR(x1,x2) is only binding in the first lagrangian (L1). The Kuhn-Tucker conditions for this require that lambda1>0 and lambda2=0.
My question is: How do I incorporate lambda1>0 and lambda2=0 into my system of equations? Do i need to drop one of the first order conditions? Or do I need to drop the lambda2(delta*TR(x1,x2)-x2) term in the second lagrangian?
I realise that this is more of a maths question than Matlab question, but I would greatly appreciate any help!
Thanks, Kai
0 Kommentare
Akzeptierte Antwort
Matt J
am 20 Apr. 2014
Bearbeitet: Matt J
am 20 Apr. 2014
You can use LSQNONLIN, which is very similar to FSOLVE, but allows you to incorporate bounds like lambda1>=0.
On the other hand, even if this is homework, if you are allowed to use solvers like FSOLVE, I wonder why you wouldn't be allowed to just use FMINCON to solve the whole problem for you, instead of manually attacking the KKT conditions.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!