If you "don't know much about matrices" the Presentations Application, which I sell through my web site, has a Student's Linear Equation section that allows one to manipulate matrix structures step by step using various basic matrix operations. One can compose matrix structures, operate on them, print them and there is also a palette display from which one can paste positions. One can also display the matrices in equation form. Linear programming operations are allowed as well as the regular operations. There is even a provision for contravariant columns. One of the problems with matrices is that they lack context. How was the original matrix defined? Are you dealing with it, or the transpose, or the inverse, or the inverse transpose? Here the rows and columns are always labeled to give context. So here is a variant of your example:
<< Presentations`
amat = {{1, t}, {-1, 0}};
First we set up the matrix form. The LEWhiteboard is a palette that displays the current structure and allows positions to be pasted into commands.
seExample = LECreate[2, 4];
LEColumnDividers[seExample, {2}]
LEWhiteboard[seExample]
LEPrint[seExample]
Next we fill in the matrix also giving new row and column names.
LEInsertRowNames[seExample, 1, {y1, y2}]
LEInsertColumnNames[seExample, 1, {x1, x2, y1, y2}]
LEInsertMatrix[seExample, {1, 1}, amat]
LEInsertMatrix[seExample, {1, 3}, IdentityMatrix[2]]
LEPrint[seExample]
The following extracts the equations from the matrix structure.
LERowExpression[seExample, #, 3 ;; 4] ==
LERowExpression[seExample, #, 1 ;; 2] & /@ {1, 2} // Column
The following does a pivot on the first row and column to give upper echelon row form. One can do full pivots or just pivot on select rows.
LEPivot[seExample, {1, 1}, 2 ;; 2]
LEPrint[seExample]
Next we set t to zero and also draw an extra row divider.
seExample = seExample /. t -> 0;
LERowDividers[seExample, {1}]
LEPrint[seExample]
Finally, we display the new row equations. The last equation gives the restraint that must hold among the y's when t = 0.
LERowExpression[seExample, #, 3 ;; 4] ==
LERowExpression[seExample, #, 1 ;; 2] & /@ {1, 2} // Column
This is useful for learning basic matrix operations and working small problems within a context.
RowReduce
. ButReduce
, as below, can give similar information.Reduce[A.{x, y} == {z, w}] Out[16]= x == z && ((y != 0 && t == w/y) || (y == 0 && w == 0))
$\endgroup$