Appendix A
Solving m Linear Equations in n Unknowns
In this appendix, we develop a procedure for solving a system of m linear equations
in n variables subject to a constraint that all the variables are nonnegative integers.
We first discuss a method for solving one equation in n unknowns. Then, we extend
the method to solving a system of m equations in n unknowns.
A.1 Solving One Equation in n Unknowns
Consider the following linear equation:
c
1
x
1
+ c
2
x
2
+ c
3
x
3
+···+c
n
x
n
= k, (A.1)
where x
i
s are the variables and c
i
s are the coefficients. The c
i
s are nonnegative
integers and k is a positive integer. We wish to solve for x
i
, for i = 1, 2, ,n
subject to a constraint that all x
i
s must be nonnegative integers. In addition, the
following constraint may be imposed:
x
i
≤ q
i
(constant) . (A.2)
Since there are n unknowns in one equation, we may choose n − 1 number of
unknowns arbitrarily and solve Equation (A.1) for the remaining unknown, provided
that all the solutions are nonnegative integers. This can be accomplished by a com-
puter program using a nested-do loops algorithm to vary the value of each x
i
and
check for the validity of the solutions. A more rigorous procedure for solving one
linear equation in two unknowns can be found in [1].
© 2001 by CRC Press LLC
Table A.1 A Nested-do Loops Algorithm for Solving One Linear
Equation in n Unknowns.
FOR I
1
=0TOq
1
x(1) = I
1
FOR I
2
=0TOq
2
x(2) = I
2
FOR I
3
=0TOq
3
x(3) = I
3
.
.
.
FOR I
n−1
=0TOq
n−1
x(n − 1) = I
n−1
x(n) = (k − c(1) ∗ x(1) −
−c(n − 1) ∗ x(n − 1))/c(n).
IF x(n) < 0, DISCARD THE SOLUTION.
IF
x(n) ≥ 0, SAVE THE SOLUTION.
NEXT
I
n−1
.
.
.
NEXT I
3
NEXT I
2
NEXT I
1
A.2 Solving m Equations in n Unknowns
Next, we consider a system of m linear equations in n unknowns:
c
11
x
1
+ c
12
x
2
+···+c
1n
x
n
= k
1
,
c
21
x
1
+ c
22
x
2
+···+c
2n
x
n
= k
2
,
.
.
. (A.3)
c
m1
x
1
+ c
m2
x
2
+···+c
mn
x
n
= k
m
,
where the coefficients c
ij
s are nonnegative integers, the constants k
i
s are positive
integers, and n>m. Furthermore, the solutions to the system of equations are
subject to a constraint that all thevariables x
i
, for i = 1, 2, ,n, must benonnegative
integers. Writing Equation (A.3) in matrix form yields
C x = 0 , (A.4)
© 2001 by CRC Press LLC
where
C =
c
11
c
12
c
13
c
1n
−k
1
c
21
c
22
c
23
c
2n
−k
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
m1
c
m2
c
n3
c
mn
−k
m
,
x =
[
x
1
,x
2
, ,x
n
, 1
]
T
.
Applying Gauss elimination, Equation (A.4) can be reduced to an upper triangular
form:
G x = 0 , (A.5)
where
G =
g
11
g
12
g
13
g
1n
p
1
0 g
22
g
23
g
2n
p
2
00
.
.
.
.
.
.
.
.
.
.
.
.
000g
m,m
g
mn
p
m
.
The last row in Equation (A.5) contains n − m + 1 unknowns which can be solved
by the procedure outlined in the preceding section. Once x
m
, ,x
n
are known, the
remaining unknowns are found by back substitution.
Example A.1 We wish to solve the following two equations for all possible nonneg-
ative integers of x
i
s
x
1
+ x
2
+ x
3
= 6 , (A.6)
2x
1
+ 3x
2
+ 4x
3
= 16 . (A.7)
Subtracting Equation (A.6)×2 from Equation (A.7), we obtain
x
2
+ 2x
3
= 4 . (A.8)
Equation (A.8) contains two unknowns. Since both 2x
3
and 4 are even numbers, x
2
must be an even number. Let x
2
assume the values of 0, 2, and 4, one at a time, and
solve Equation (A.8) for x
3
. Once x
3
is found, we solve Equation (A.6) for x
1
.Asa
result, we obtain the three solutions:
Solution
x
1
x
2
x
3
1 402
2 321.
3 240
© 2001 by CRC Press LLC
References
[1] Gelfond, A.O., 1981, Solving Equations in Integers, Translated by Sheinin,
O.B., Mir Publisher, Moscow.
© 2001 by CRC Press LLC