Math 1b Practical — Nonnegative solutions
January 10, 2011
We may ask whether a (nonhomogeneous) system of linear equations with real coeﬃ-
cients has a solution in
nonnegative
real numbers. This question is part of the subject of
linear programming
and has many applications.
The system of equations (1) on the Frst page of the handout on “Basic solutions;
pivot operations”, though it has many solutions, has no nonnegative solutions (with
x
1
,x
2
3
4
5
≥
0).
2
x
1
−
3
x
2
−
5
x
3
−
7
x
4
+2
x
5
=7
,
x
1
+
x
2
−
5
x
3
+
x
4
−
4
x
5
=3
,
x
1
−
4
x
3
+3
x
4
+
x
5
=
−
4
.
That there is no nonnegative solution is is clear from the Frst equation in (4),
x
4
=
−
(26
/
19)
−
(15
/
19)
x
5
,
since if
x
5
is nonnegative, then
x
4
is strictly negative.
We claim that if a system of linear equations over the real numbers has a nonnegative
solution, then it has a
basic solution
which is nonnegative, though a complete proof will
not be given in these notes.
If the coeﬃcient matrix of the system is
r
×
n
, then there are at most
(
n
r
)
choices
for the dependent variables and so there can be at most
(
n
r
)
basic solutions. We could,
theoretically, go through the basic solutions one by one and check whether any are non-
negative. If we have a system of 50 equations in 100 variables, there are potentially
(
100
50
)
basic solutions, so this is not practical.
Here is a method (an algorithm) to Fnd a nonnegative basic solution or else a proof
that none exist.
To fnd a nonnegative solution oF
A
x
=
b, or a prooF that none exist:
Start with
the matrix
M
=
A
b
.
Use pivot operations or individual elementary row operations to make the “
A
-part” of the
matrix basic. (
∗
) If the enties in the last column are nonnegative, then the corresponding
basic solution is nonnegative and we stop. Otherwise, there is a negative entry in the last
column, say in row
i
. If all other entries in row
i
are positive, there are no nonnegative
solutions of the
i
-th equation, and we stop. If there is another negative entry in row
i
,
pick one, say in columns
j
, and pivot on position (
i, j
) to get a new matrix representing
an equivalent system of equations. Go to (
∗
).