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 件のコメント

Walter Roberson
Walter Roberson 2013 年 9 月 19 日
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.
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 9 月 19 日
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 日

1 投票

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.
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 9 月 19 日
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