system of linear equations but with condtions that all variables should be > 0

I have the following system of linear equations
x - 2y - 3z = 5
-5x + y - 4z = 20
-3x -4y + z = 49
I want to solve for x,y, and z but want those to be greater than 0.
Adding conditions for x>=0, y>=0, and z>=0.
It's shown here only as a sample of 3 equations, but I have to deal with 184 equations and 184 variables which need to be greater or equal to 0.
Thanks, Julio Fernandez

댓글 수: 2

Will you always have N linear equations in N unknowns? And the rank() will be N? If so, then if the straightforward use of the mldivide ('\') operator does not give you non-negative solutions then the equations are not solvable under the additional conditions.
That's why I've suggested A\b. Maybe he wants to take the solution, only when his conditions are true.

답변 (2개)

Shashank Prasanna
Shashank Prasanna 2013년 9월 19일
If you'd like to add positive constraints then you can use a solver in the Optimization Toolbox called LSQNONNEG. If you'd like to add more generic constraints you can use LSQLIN
There isn't a way to do this from base MATLAB, unless you code it yourself.
For a system A*x=b the solution is
x=A\b

이 질문은 마감되었습니다.

질문:

2013년 9월 19일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by