Solving overdeterminated linear equation system with specified conditions

5 vues (au cours des 30 derniers jours)
Dear fellows! I´m new in the world of matlab and i´d like to solve the following overdeterminated system of linear equations with lsqr-method.
A*p=b
where A is a (5x3) matrix, p=[p1;p2;p3] and b is vector with 5 given vector elements.
without any conditions i could solve the system with p=A\b or p=lsqr(A,b).
BUT following conditions have to be achivied for solving the problem
1. p1;p2;p3 are always >=0
2. p1+p2+p3=sum(p)=1
Does sombody can help me to set the conditions for the solving process?
best regards Thomas

Réponse acceptée

Seth DeLand
Seth DeLand le 12 Mar 2012
Hi Thomas, If you have the Optimization Toolbox, LSQLIN can solve constrained least-squares problems: http://www.mathworks.com/help/toolbox/optim/ug/lsqlin.html
You can use the A and b arguments to enforce that p1; p2; p3 >= 0 and the Aeq and beq arguments to enforce that p1+p2+p3 = 1.
  1 commentaire
Thomas
Thomas le 14 Mar 2012
Thank you for your answer.
Did i define the constraints correct for following settings?
(C(5x3)matrix, d(5x1)vector) and C*x=d)
where
lb=zeros(3,1); %x1,x2,x3>=0
Aeq=ones(1,3);beq=1; %x1+x2+x3=1
[x,resnorm,residual,exitflag,output]=lsqlin(C,d,[],[],Aeq,beq,lb);
best regards
Thomas

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by