Assignment #4 - 92B

# Assignment #4 - 92B

```Assignment #4                                           Weight 20
=============                                           Due 19 Oct
E-Mail to HDLV
>>> Resolution of system of linear equations  <<<

This assignment is for you to use arrays in Fortran; so we will be
working with 1-dimensional and 2-dimensional arrays.

You will have to solve the following linear equation   KX = F
where  K is an n*n matrix
X is an n*1 matrix or a vector  (array)
F is an n*1 matrix
You have to solve such a system of equations in static deformation
and stress analysis where K corresponds to, for example, the stiffness
matrix, X represents the displacement vector and F is the force vector.
(Just so you know this could be useful !)

The system to solve is of this form:
a1*x + b1*y + c1*z = a
a2*x + b2*y + c2*z = b
a3*x + b3*y + c3*z = c

where        a1   b1   c1              x                 a
K =  a2   b2   c2    ,   X =   y      ,    F =   b
a3   b3   c3              z                 c

Several techniques can be used to solve the system.  You have to use the
following method (known as the Cramer's method).

This method involves the use of determinants.  For a 3*3 matrix, we
compute the determinant this way:

| a1  b1  c1 |
det(K) = | a2  b2  c2 | = a1*| b2 c2 | - b1*| a2 c2 | + c1*| a2 b2 |
| a3  b3  c3 |      | b3 c3 |      | a3 c3 |      | a3 b3 |

and where | a b | = a*d - c*b
| c d |

The solutions of the system are :
x = det(Kx)/det(K) , y = det(Ky)/det(K), etc...

where det(Kx) is the determinant of the matrix K where the column
corresponding to the variable x is replaced by the values of the
vector F.

Implement this method using matrix manipulations.  Run your program on
these 2 systems of equations:

2x + 3y - z = 1                  2x - 5y + 2z = 7
3x + 5y + 2z = 8                  x + 2y - 4z = 3
x - 2y - 3z = -1                3x - 4y - 6z = 5

Finally, you have to implement a procedure which will verify your
results by doing a matrix multiplication of a 3*3 matrix with a 3*1