NEED TO MAKE A PROGRAM which computes the current value of the vectors {x}

based on the following forward iterations:

this >>> {x}(n+1) = [K] {x}(n), n = 0,1,2, ... ,8,9.

In other words, the next vector {x} is equal to the product of [K] and

the current vector {x}.

Perform the matrix multiplication by using the function:

void matrix_mult(double a[4][4], double b[4], double c[4], int rows);

You should pass the matrix [K] and a pointer array {x} to matrix_mult()

which will pass back a new vector {y} ).

[K] is a constant 4x4 matrix defined by:

double K[4][4] = { { 2., -4., 1., 0.},

{-4., 5., -2., 1.},

{ 1., -2., 6., -3.},

{ 0., 1., -3., 7.}};

The initial components of the vector {x}(0) are specified by:

double x[4] = { 1./3., 2./3., 1./3., pow(3.,0.5)/3.};

First, print the value of the initial vector {x}(0) on the screen.

Then, perform forward iteration 10 times (for n=0 to 9). Each time

after new vector is computed from [K]{x}, normalize that vector by

using the function

double unit_vec(double vec[4], int cols)

which was discusseed in class (see Program w8-5.c; this function

transforms a vector to a unit vector - of magnitude 1). For the

matrix multiplication with the vector [K]{x}, see Program w8-3.c .

Always use the normalized vector as the vector {x}(n) for the next

iteration.

For each iteration, print the new vector, its length, and the normalized

new vector in main().

I BUILDED THE SKELTON BUT I AM NOT SURE.

PLEASE CAN SOME EXPERT IN THIS FIELD HELP ME THIS.

I WILL REALLY APPRICIATE IT

THANK YOU.

#include <stdio.h>

#include <math.h>

double unit_norm(double vec[4], int cols);

void matrix_mult(double a[4][4], double b[4], double c[4], int rows);

main()

{

double K[4][4] = { { 2., -4., 1., 0.},

{-4., 5., -2., 1.},

{ 1., -2., 6., -3.},

{ 0., 1., -3., 7.}};

double y[4], x[4] = { 1./3., 2./3., 1./3., pow(3.,0.5)/3.};

// Enter your C statements

.........................

.........................

}

void matrix_mult(double a[4][4], double b[4], double c[4], int rows)

{

// compute c[]=a[][]*b[]

..........................

..........................

return;

}

double unit_norm(double vec[4], int cols)

{

double sum;

// normalize a vector

...........................

...........................

return sum;

}

OUTPUT LOOKS LIKE THIS

Initial vector:

x[0] = [ 0.333333 0.666667 0.333333 0.577350]

New vector:

y[1] = [-1.666667 1.910684 -0.732051 3.708119]

The length of this vector is: 4.551322

Normalized new vector:

x[1] = [-0.366194 0.419808 -0.160844 0.814734]

.

.

.

New vector:

y[10] = [-3.096892 5.315900 -6.556405 6.293838]

The length of this vector is: 10.974897

Normalized new vector:

x[10] = [-0.282180 0.484369 -0.597400 0.573476]

*/