By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,678 Members | 1,129 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,678 IT Pros & Developers. It's quick & easy.

Need Help With This Vector Topic. Fast

P: 2
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]

*/
Nov 20 '06 #1
Share this Question
Share on Google+
1 Reply


P: 2
It Is Due In 24 Hours Please Somebody Help Me.
Nov 20 '06 #2

Post your reply

Sign in to post your reply or Sign up for a free account.