Gaussian Elimi
Gaussian Elimi
1- Gaussian Elimination
How is a set of equations solved numerically?
One of the most popular techniques for solving simultaneous linear equations is the Gaussian
elimination method. The approach is designed to solve a general set of n equations and n
unknowns
a11 x1 a12 x2 a13 x3 ... a1n xn b1
a21 x1 a22 x2 a23 x3 ... a2 n xn b2
. .
. .
. .
an1 x1 an 2 x2 an 3 x3 ... ann xn bn
Gaussian elimination consists of two steps
1. Forward Elimination of Unknowns: In this step, the unknown is eliminated in each
equation starting with the first equation. This way, the equations are reduced to one
equation and one unknown in each equation.
2. Back Substitution: In this step, starting from the last equation, each of the unknowns
is found.
a21
a22
a22 a12
a11
a21
a2 n a2 n a1n
a11
This procedure of eliminating x1 , is now repeated for the third equation to the n th equation
to reduce the set of equations as
a11 x1 a12 x 2 a13 x3 ... a1n x n b1
a22 x2 a 23 x3 ... a2 n xn b2
a32 x2 a33
x3 ... a3 n xn b3
. . .
. . .
. . .
an 2 x2 an3 x3 ... ann xn bn
This is the end of the first step of forward elimination. Now for the second step of forward
elimination, we start with the second equation as the pivot equation and a22 as the pivot
element. So, to eliminate x2 in the third equation, one divides the second equation by a22
(the pivot element) and then multiply it by a32 . This is the same as multiplying the second
equation by a32 / a22 and subtracting it from the third equation. This makes the coefficient of
x2 zero in the third equation. The same procedure is now repeated for the fourth equation till
the n th equation to give
a11 x1 a12 x 2 a13 x3 ... a1n x n b1
a22 x2 a 23 x3 ... a2 n xn b2
x3 ... a3n xn b3
a33
. .
. .
. .
an3 x3 ... ann xn bn
The next steps of forward elimination are conducted by using the third equation as a pivot
equation and so on. That is, there will be a total of n 1 steps of forward elimination. At the
end of n 1 steps of forward elimination, we get a set of equations that look like
a11 x1 a12 x 2 a13 x3 ... a1n x n b1
x2 a23
a22 x3 ... a2 n xn b2
x3 ... a3n xn b3
a33
. .
. .
. .
a nn xn bnn 1
n 1
Gaussian Elimination
Back Substitution:
Now the equations are solved starting from the last equation as it has only one unknown.
bn( n 1)
x n ( n 1)
a nn
Then the second last equation, that is the ( n 1) th equation, has two unknowns: xn and xn 1 ,
but xn is already known. This reduces the ( n 1) th equation also to one unknown. Back
substitution hence can be represented for all equations by the formula
n
bii 1 aiji 1 x j
j i 1
xi for i n 1, n 2, ,1
a iii 1
and
bn( n 1)
xn ( n 1)
a nn
Example 1
The upward velocity of a rocket is given at three different times in Table 1.
Solution
Forward Elimination of Unknowns
Since there are three equations, there will be two steps of forward elimination of unknowns.
First step
Divide Row 1 by 25 and then multiply it by 64, that is, multiply Row 1 by 64/25 2.56 .
Gaussian Elimination
Back substitution
From the third equation
0.7 a3 0.76
Gaussian Elimination
0.76
a3
0.7
1.08571
Substituting the value of a3 in the second equation,
4.8a 2 1.56a3 96.208
96.208 1.56a3
a2
4 .8
96.208 1.56 1.08571
4.8
19.6905
Substituting the value of a2 and a3 in the first equation,
25a1 5a 2 a3 106.8
106.8 5a 2 a3
a1
25
106.8 5 19.6905 1.08571
25
0.290472
Hence the solution vector is
a1 0.290472
a 19.6905
2
a 3 1.08571
The polynomial that passes through the three data points is then
vt a1t 2 a 2 t a3
0.290472t 2 19.6905t 1.08571, 5 t 12
Since we want to find the velocity at t 6, 7.5, 9 and 11 seconds, we could simply substitute
each value of t in vt 0.290472t 2 19.6905t 1.08571 and find the corresponding
velocity. For example, at t 6
v6 0.2904726 19.69056 1.08571
2
129.686 m/s
However we could also find all the needed values of velocity at t = 6, 7.5, 9, 11 seconds
using matrix multiplication.
t 2
vt 0.290472 19.6905 1.08571 t
1
So if we want to find v6 , v7.5, v9, v11, it is given by
Gaussian Elimination
6 2 7 .5 2 9 2 112
v6 v7.5 v9 v11 0.290472 19.6905 1.08571 6 7 .5 9 11
1 1 1 1
36 56.25 81 121
0.290472 19.6905 1.08571 6 7.5 9 11
1 1 1 1
129.686 165.104 201.828 252.828
v(6) 129.686 m/s
v(7.5) 165.1 04 m/s
v(9) 201.828 m/s
v(11) 252.828 m/s
Example 2
Use Naïve Gauss elimination to solve
20 x1 15 x2 10 x3 45
3 x1 2.249 x 2 7 x3 1.751
5 x1 x 2 3 x3 9
Use six significant digits with chopping in your calculations.
Solution
Working in the matrix form
20 15 10 x1 45
3 2.249 7 x = 1.751
2
5 1 3 x3 9
Forward Elimination of Unknowns
First step
Divide Row 1 by 20 and then multiply it by –3, that is, multiply Row 1 by 3 / 20 0.15 .
20 15 10 45 0.15 gives Row 1 as
3 2.25 1.5 6.75
Subtract the result from Row 2
3 2.249 7 1.751
3 2.25 1.5 6.75
0 0.001 8.5 8.501
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
5 1 3 x3 9
Gaussian Elimination
Divide Row 1 by 20 and then multiply it by 5, that is, multiply Row 1 by 5 / 20 0.25
20 15 10 45 0.25 gives Row 1 as
5 3.75 2.5 11.25
Subtract the result from Row 3
5 1 3 9
5 3.75 2.5 11.25
0 2.75 0.5 2.25
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
0 2.75 0.5 x3 2.25
Second step
Now for the second step of forward elimination, we will use Row 2 as the pivot equation and
eliminate Row 3: Column 2.
Divide Row 2 by 0.001 and then multiply it by –2.75, that is, multiply Row 2 by
2.75 / 0.001 2750 .
0 0.001 8.5 8.501 2750 gives Row 2 as
0 2.75 23375 23377.75
Rewriting within 6 significant digits with chopping
0 2.75 23375 23377.7
Subtract the result from Row 3
0 2.75 0.5 2.25
0 2.75 23375 23377.7
0 0 23375.5 23375.45
Rewriting within 6 significant digits with chopping
0 0 23375.5 23375.4
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x2 = 8.501
0 0 23375.5 x3 23375.4
This is the end of the forward elimination steps.
Back substitution
We can now solve the above equations by back substitution. From the third equation,
23375.5 x3 23375.4
23375.4
x3
23375.5
0.999995
Substituting the value of x3 in the second equation
0.001x 2 8.5 x3 8.501
Gaussian Elimination
8.501 8.5 x3
x2
0.001
8.501 8.5 0.999995
0.001
8.501 8.49995
0.001
0.00105
0.001
1.05
Substituting the value of x3 and x 2 in the first equation,
20 x1 15 x 2 10 x3 45
45 15 x 2 10 x3
x1
20
45 15 1.05 10 0.999995
20
45 15.75 9.99995
20
29.25 9.99995
20
19.2500
20
0.9625
Hence the solution is
x1
[ X ] x2
x3
0.9625
1.05
0.999995
Round-off error: The Naïve Gauss elimination method is prone to round-off errors. This is
true when there are large numbers of equations as errors propagate. Also, if there is
subtraction of numbers from each other, it may create large errors. See the example below.
Example 3
Remember Example 2 where we used Naïve Gauss elimination to solve
Gaussian Elimination
20 x1 15 x 2 10 x3 45
3 x1 2.249 x 2 7 x3 1.751
5 x1 x 2 3 x3 9
using six significant digits with chopping in your calculations? Repeat the problem, but now
use five significant digits with chopping in your calculations.
Solution
Writing in the matrix form
20 15 10
x1 45
3 2.249 7 x = 1.751
2
5 1 3
x3 9
Forward Elimination of Unknowns
First step
Divide Row 1 by 20 and then multiply it by –3, that is, multiply Row 1 by 3 / 20 0.15 .
20 15 10 45 0.15 gives Row 1 as
3 2.25 1.5 6.75
Subtract the result from Row 2
3 2.249 7 1.751
3 2.25 1.5 6.75
0 0.001 8.5 8.501
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
5 1 3 x3 9
Divide Row 1 by 20 and then multiply it by 5, that is, multiply Row 1 by 5 / 20 0.25 .
20 15 10 45 0.25 gives Row 1 as
5 3.75 2.5 11.25
Subtract the result from Row 3
5 1 3 9
5 3.75 2.5 11.25
0 2.75 0.5 2.25
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
0 2.75 0.5 x3 2.25
Second step
Now for the second step of forward elimination, we will use Row 2 as the pivot equation and
eliminate Row 3: Column 2.
Gaussian Elimination
Divide Row 2 by 0.001 and then multiply it by –2.75, that is, multiply Row 2 by
2.75 / 0.001 2750 .
0 0.001 8.5 8.501 2750 gives Row 2 as
0 2.75 23375 23377.75
Rewriting within 5 significant digits with chopping
0 2.75 23375 23377
Subtract the result from Row 3
0 2.75 0.5 2.25
0 2.75 23375 23377
0 0 23375 23374
Rewriting within 6 significant digits with chopping
0 0 23375 23374
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
0 0 23375 x3 23374
This is the end of the forward elimination steps.
Back substitution
We can now solve the above equations by back substitution. From the third equation,
23375 x3 23374
23374
x3
23375
0.99995
Substituting the value of x3 in the second equation
0.001x 2 8.5 x3 8.501
8.501 8.5 x3
x2
0.001
8.501 8.5 0.99995
0.001
8.501 8.499575
0.001
8.501 8.4995
0.001
0.0015
0.001
1 .5
Substituting the value of x3 and x 2 in the first equation,
20 x1 15 x 2 10 x3 45
Gaussian Elimination
45 15 x 2 10 x3
x1
20
45 15 1.5 10 0.99995
20
45 22.5 9.9995
20
22.5 9.9995
20
12.5005
20
12.500
20
0.625
Hence the solution is
x1
X x 2
x3
0.625
1.5
0.99995
Compare this with the exact solution of
x1 1
X x2 1
x3 1
What are some techniques for improving the Naïve Gauss elimination method?
As seen in Example 3, round off errors were large when five significant digits were used as
opposed to six significant digits. One method of decreasing the round-off error would be to
use more significant digits, that is, use double or quad precision for representing the
numbers. However, this would not avoid possible division by zero errors in the Naïve Gauss
elimination method. To avoid division by zero as well as reduce (not eliminate) round-off
error, Gaussian elimination with partial pivoting is the method of choice.
How does Gaussian elimination with partial pivoting differ from Naïve Gauss
elimination?
The two methods are the same, except in the beginning of each step of forward elimination, a
row switching is done based on the following criterion. If there are n equations, then there
are n 1 forward elimination steps. At the beginning of the k th step of forward elimination,
one finds the maximum of
Gaussian Elimination
a kk , a k 1,k , …………, a nk
Then if the maximum of these values is a pk in the p th row, k p n , then switch rows p
and k .
The other steps of forward elimination are the same as the Naïve Gauss elimination method.
The back substitution steps stay exactly the same as the Naïve Gauss elimination method.
Example 4
In the previous two examples, we used Naïve Gauss elimination to solve
20 x1 15 x 2 10 x3 45
3 x1 2.249 x 2 7 x3 1.751
5 x1 x 2 3 x3 9
using five and six significant digits with chopping in the calculations. Using five significant
digits with chopping, the solution found was
x1
X x2
x3
0.625
1.5
0.99995
This is different from the exact solution of
x1
X x2
x3
1
1
1
Find the solution using Gaussian elimination with partial pivoting using five significant digits
with chopping in your calculations.
Solution
20 15 10 x1 45
3 2.249 7 x = 1.751
2
5 1 3 x3 9
Forward Elimination of Unknowns
Now for the first step of forward elimination, the absolute value of the first column elements
below Row 1 is
20 , 3 , 5
or
Gaussian Elimination
20, 3, 5
So the largest absolute value is in the Row 1. So as per Gaussian elimination with partial
pivoting, the switch is between Row 1 and Row 1 to give
20 15 10 x1 45
3 2.249 7 x = 1.751
2
5 1 3 x3 9
Divide Row 1 by 20 and then multiply it by –3, that is, multiply Row 1 by 3 / 20 0.15 .
20 15 10 45 0.15 gives Row 1 as
3 2.25 1.5 6.75
Subtract the result from Row 2
3 2.249 7 1.751
3 2.25 1.5 6.75
0 0.001 8.5 8.501
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
5 1 3 x3 9
Divide Row 1 by 20 and then multiply it by 5, that is, multiply Row 1 by 5 / 20 0.25 .
20 15 10 45 0.25 gives Row 1 as
5 3.75 2.5 11.25
Subtract the result from Row 3
5 1 3 9
5 3.75 2.5 11.25
0 2.75 0.5 2.25
to get the resulting equations as
20 15 10 x1 45
0 0.001 8.5 x = 8.501
2
0 2.75 0.5 x3 2.25
This is the end of the first step of forward elimination.
Now for the second step of forward elimination, the absolute value of the second column
elements below Row 1 is
0.001 , 2.75
or
0.001, 2.75
So the largest absolute value is in Row 3. So Row 2 is switched with Row 3 to give
20 15 10 x1 45
0 2.75 0.5 x = 2.25
2
0 0.001 8.5 x3 8.501
Gaussian Elimination
Divide Row 2 by –2.75 and then multiply it by 0.001, that is, multiply Row 2 by
0.001 / 2.75 0.00036363 .
0 2.75 0.5 2.25 0.00036363 gives Row 2 as
0 0.00099998 0.00018182 0.00081816
Subtract the result from Row 3
0 0.001 8.5 8.501
0 0.00099998 0.00018182 0.00081816
0 0 8.50018182 8.50018184
Rewriting within 5 significant digits with chopping
0 0 8.5001 8.5001
to get the resulting equations as
20 15 10 x1 45
0 2.75 0.5 x 2 = 2.25
0 0 8.5001 x3 8.5001
Back substitution
8.5001x3 8.5001
8.5001
x3
8.5001
=1
Substituting the value of x3 in Row 2
2.75 x 2 0.5 x3 2.25
2.25 0.5 x 2
x2
2.75
2.25 0.5 1
2.75
2.25 0.5
2.75
2.75
2.75
1
Substituting the value of x3 and x 2 in Row 1
20 x1 15 x2 10 x3 45
45 15 x 2 10 x3
x1
20
45 15 1 10 1
20
Gaussian Elimination
45 15 10
20
30 10
20
20
20
1
So the solution is
x1
X x2
x3
1
= 1
1
This, in fact, is the exact solution. By coincidence only, in this case, the round-off error is
fully removed.