|
"Number Matrix Manipulation" |
|
Matrix Manipulator Method |
|
Results = |
|
Matrix m1 = {
,
,
},{
,
,
},
,
,
}
Matrix m2 = {
,
,
},{
,
,
},
,
,
}
Vector v = (
,
,
)
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
Please enter only numbers
|
IMPLEMENTATION
Matrix Manipulation
A matrix can be used to describe linear equations, to keep track of the coefficients of the linear transformations and also to
record data that depend on two parameters. Matrices can be added, multiplied and decomposed in many ways. Our sample involve
square matrices. Although no details are given regarding the various operations, we do the following:
Vector from Matrix - in some instances we extract a vector from a row or column of a matrix.
Swap, Transpose and Trace - interchange two rows or two columns of a matrix as needed.
Transformations - often used when performing operations on graphic objects. In our case we implement
matrix transformation for n-dimensional vectors and n by n matrices (squared matrices).
Matrix Multiplication - in our case the number of columns of the first matrix is the same as the number of
rows of the second matrix.
Mathematical Operators - we implement various mathematical operations (see results above).
Determinant and Inverse - important qualities associated with square matrices.
Testing Matrix Operator Method
In order to test the Matrix Operator Method, a new TestMatrixOperators()
static method has been added and executed. Supporting code and methods are not shown.
static void TestMatrixOperators();
{
ListBox1.Items.Clear();
MatrixR m1 = new MatrixR(new double[3, 3] { {t1, t2, t3}, {t4, t5, t6},
  {t7, t8, t9}});
MatrixR m2 = new MatrixR(new double[3, 3] { {8, 1, 6}, {3, 5, 7},
  {4, 9, 2}});
VectorR v = new VectorR(new double[] { t19, t20, t21 });
ListBox1.Items.Add(" matrix: m1 = " + m1);
ListBox1.Items.Add(" matrix: m2 = " + m2);
ListBox1.Items.Add(" vector: v = " + (v));
ListBox1.Items.Add("m1 + m2 = " + (m1 + m2));
ListBox1.Items.Add("m1 - m2 = " + (m1 - m2));
ListBox1.Items.Add("m1 * m2 = " + (m1 * m2));
ListBox1.Items.Add("m2 * m1 = " + (m2 * m1));
ListBox1.Items.Add("m1 * v = " + MatrixR.Transform(m1, v));
ListBox1.Items.Add("v * m1 = " + MatrixR.Transform(v, m2));
ListBox1.Items.Add("Inverse of m1 = " + MatrixR.Inverse(m1));
ListBox1.Items.Add("Inverse of m2 = " + MatrixR.Inverse(m2));
ListBox1.Items.Add("Determinant of m1 = " + MatrixR.Determinant(m1));
ListBox1.Items.Add("Determinant of m2 = " + MatrixR.Determinant(m2));
}
|
As a sample we provide the input data points using double arrays for matrix m1, matrix m2 and vector v. Results
of the various mathematical operators are shown on the screen above.
The user can manipulate matrix m1 and vector v values and try variations on the arrays themselves by
specifying new matrix and vector values.
|
|
|