Download PDF

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Determinant wikipedia , lookup

Jordan normal form wikipedia , lookup

Matrix (mathematics) wikipedia , lookup

Singular-value decomposition wikipedia , lookup

Perron–Frobenius theorem wikipedia , lookup

Linear least squares (mathematics) wikipedia , lookup

Non-negative matrix factorization wikipedia , lookup

Orthogonal matrix wikipedia , lookup

Four-vector wikipedia , lookup

Eigenvalues and eigenvectors wikipedia , lookup

Matrix calculus wikipedia , lookup

Cayley–Hamilton theorem wikipedia , lookup

Matrix multiplication wikipedia , lookup

System of linear equations wikipedia , lookup

Gaussian elimination wikipedia , lookup

Transcript
SOLUTION OF SIMULTANEOUS LINEAR EQUATIONS
Naive Gaussian Elimination Method
2006 Jamie Trahan , Autar Kaw, Kevin Martin
University of South Florida
United States of America
[email protected]
http://numericalmethods.eng.usf.edu
Introduction
One of the most popular numerical techniques for solving simultaneous linear equations
Naive Gaussian Elimination method. The approach is designed to solve a set of n
equations with n unknowns, [A] [X] = [C], where [A]nxn is a square coefficient matrix,
[X]nx1 is the solution vector, and [C]nx1 is the right hand side array.
Naive Gauss consists of two steps:
1) Forward Elimination: 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.
To learn more about Naive Gauss Elimination as well as the pitfalls of the method, click
here.
A simulation of Naive Gauss Method follows.
Section 1: Input
Below are the input parameters to begin the simulation. This is the only section that
requires user input. The user can change the values that are highlighted and Mathcad w
calculate the solution vector [X].
ORIGIN := 1
•
[A]nxn coefficient matrix
⎛⎜ 1
1
A := ⎜
⎜1
⎜1
⎝
•
⎞⎟
⎟
20
400
8000 ⎟
⎟
22.5 506.25 11391 ⎠
10
100
1000
15
225
3375
[RHS]nx1 right hand side array
⎛⎜ 227.04 ⎞⎟
362.78 ⎟
RHS := ⎜
⎜ 517.35 ⎟
⎜ 602.97 ⎟
⎝
⎠
•
Number of equations
n := rows( A)
n=4
Section 2: Naive Gaussian Elimination method
This section divides Naive Gaussian Elimination into two steps:
1) Forward Elimination
2) Back Substitution
To conduct Naive Gaussian Elimination, Mathcad will augment the [A] and [RHS] matr
into one matrix, [C], that will facilitate the process of forward elimination.
C := augment( A , RHS)
⎛⎜ 1
1
C=⎜
⎜1
⎜1
⎝
10
100
1000
227.04 ⎞
15
225
3375
362.78 ⎟
20
400
8000
⎟
517.35 ⎟
⎟
22.5 506.25 11391 602.97 ⎠
2.1: Forward Elimination
Forward elimination of unknowns consists of (n-1) steps. In each step k, the coefficien
of the kth unknown will be zeroed from every subsequent equation that follows the kth
row. For example, in step 2 (i.e. k=2), the coefficient of x2 will be zeroed from rows
3..n. With each step that is conducted, a new matrix is generated until the coefficient
matrix is transformed to an upper triangular matrix. The following procedure calculate
the upper triangular matrix while demonstrating the intermediate coefficient matrices t
are produced for each step k.
The following procedure conducts (n-1), or k, steps of forward elimination.
forward_elimination( step) :=
C←C
Conducting (n-1) steps of forward
elimination.
Defining row to be transformed.
for k ∈ 1 .. n − 1
for i ∈ ( k + 1 ) .. n
C
multiplier ←
C
i, k
for j ∈ k .. n + 1
C
i, j
←C
U ←C
k
U
step
i, j
Calculating multiplier value.
k, k
− multiplier⋅ C
Defining column elements.
Generating rows of upper
k, j
triangular matrix [U].
Assigning [U] matrix to the kth step.
Returning [U] of kth step.
Defining the number of steps:
step := 1 .. n − 1
The following array stores the coefficient matrix that was generated for each step of
forward elimination, the last matrix being an upper triangular coefficient matrix augme
with the newly transformed right hand side array :
⎡⎛ 1 10 100 1000 227.04 ⎞ ⎤
⎢⎜
⎟⎥
125
2375 135.74 ⎟ ⎥
⎢⎜ 0 5
⎢⎜ 0 10 300 7000 290.31 ⎟ ⎥
⎢⎜ 0 12.5 406.25 10391 375.93 ⎟ ⎥
⎠⎥
⎢⎝
⎢ ⎛⎜ 1 10 100 1000 227.04 ⎞⎟ ⎥
⎢ 0 5 125 2375 135.74 ⎟ ⎥
forward_elimination( step) = ⎢ ⎜
⎜
⎟ ⎥
⎢ ⎜ 0 0 50 2250 18.83 ⎟ ⎥
⎢ ⎝ 0 0 93.75 4453.5 36.58 ⎠ ⎥
⎢ ⎛ 1 10 100 1000 227.04 ⎞ ⎥
⎟ ⎥
⎢ ⎜
⎢ ⎜ 0 5 125 2375 135.74 ⎟ ⎥
⎢ ⎜ 0 0 50 2250 18.83 ⎟ ⎥
⎢ ⎜ 0 0 0 234.75 1.2737 ⎟ ⎥
⎣ ⎝
⎠ ⎦
The upper triangular matrix and new right hand side array can now be extracted from the
augmented matrix of the final step of forward elimination.
upper_triangular := submatrix( forward_elimination( n − 1 ) , 1 , n , 1 , n )
⎛⎜ 1
0
upper_triangular = ⎜
⎜0
⎜0
⎝
⎞⎟
5 125 2375 ⎟
0 50 2250 ⎟
⎟
0 0 234.75 ⎠
10 100
1000
RHSnew := submatrix( forward_elimination( n − 1 ) , 1 , n , n + 1 , n + 1 )
⎛⎜ 227.04 ⎞⎟
135.74 ⎟
RHSnew = ⎜
⎜ 18.83 ⎟
⎜ 1.2737 ⎟
⎝
⎠
This is the end of the forward elimination steps. Notice that the final row in the upper
triangular matrix has only one unknown to be solved for. The new upper triangular coeffi
matrix and right hand side array permit solving for the solution vector using backward
substitution.
2.2 Back Substitution
Back substitution begins with solving the last equation as it has only one
unknown.
rhs
x =
n
a
n
Equation (2.1)
n
The remaining equations can be solved for using the following formula:
n
c −
i
∑
j = i+ 1
x =
i
a
⎡⎣a( i , j) ⋅ x j⎤⎦
Equation (2.2)
i, i
The procedure below calculates the solution vector using back substitution.
back_substitution :=
a ← upper_triangular
Renaming the new coefficient matrix.
rhs ← RHSnew
Renaming new right hand side array.
rhs
x ←
n
a
Solving for the nth equation as it has only one
unknown.
n
n, n
Defining remaining rows whose unknowns will
be solved for working backwards.
for i ∈ n − 1 , n − 2 .. 1
sum ← 0
for j ∈ ( i + 1 ) .. n
sum ← sum + a
Defining column elements.
⋅x
i, j j
Calculating summation term in Eq. (2.2).
rhs − sum
x ←
i
x
i
a
i, i
Using Eq. (2.2) to solve for x i
Returning [X].
The solution vector for the system of equations using Naive Gaussian Elimination metho
X := back_substitution
⎛⎜ −4.228 ⎞⎟
21.2599 ⎟
X= ⎜
⎜ 0.1324 ⎟
⎜ 0.0054 ⎟
⎝
⎠
Section 2: Exact Solution
The exact solution to the system of linear equations can be found using Mathcad's buil
tools.
exactsoln := lsolve( A , RHS)
⎛⎜ −4.228 ⎞⎟
21.2599 ⎟
exactsoln = ⎜
⎜ 0.1324 ⎟
⎜ 0.0054 ⎟
⎝
⎠
References
Autar Kaw, Holistic Numerical Methods Institute,
http://numericalmethods.eng.usf.edu/mws, See
How does Gaussian Elimination work?
Effects of Significant Digits on solution of equations .
Conclusion
Mathcad helped us apply our knowledge of Naive Gaussian Elimination method to solve
system of n simultaneous linear equation.
Question 1: The velocity of a rocket is given at three different times:
i := 1 .. 3
time :=
velocity :=
i
i
5sec
8sec
12sec
106.8
177.2
279.2
m
s
m
s
m
s
The velocity data is approximated by a polynomial as
2
v( t) = a ⋅ t + a ⋅ t + a
1
2
3
,
5 ≤ t ≤ 12
The coefficients a1, a2, a3 for the above expression were found to be given by
⎛a ⎞
⎛ 25 5 1 ⎞ ⎜ 1 ⎟
⎜ 64 8 1 ⎟ ⎜ a ⎟ =
⎜
⎟ ⎜ 2⎟
⎝ 144 12 1 ⎠ ⎜ a ⎟
⎝ 3⎠
⎛ 106.8 ⎞
⎜ 177.2 ⎟
⎜
⎟
⎝ 279.2 ⎠
The coefficients a1, a2, a3 using Naive Gauss Elimination. Find the velocity at
t=6,7.5,9,11 seconds.
Question 2: Choose a set of equations that has a unique solution but for which the Naive
Gauss Elimination method fails.