### Problem Set 3

See the Guidelines. I will post on ASULearn answers to select questions I receive via messaging there or in office hours. I am always happy to help!

Mathematics, you see, is not a spectator sport. [George Polya, How to Solve it]

Problem 1:  2.1 # 20 with additional instructions:
Part A: Are the first 2 columns of AB equal or not? Why? (hint: use the definition of multiplication of 2 matrices via A times each column of B)?
Part B: Find a nontrivial solution x of (AB)x=0 (hint: For x=Vector([x1,x2,x3,x4...]), take x3, x4 and onward to be 0, but specify a nontrivial x1 and x2 (use Part A to help you choose x1 and x2) in x=Vector([x1,x2,0,0...]).
Part C: What does part B tell you about whether the columns of AB are l.i.? Explain.

Problem 2:  2.2 # 8 with additional instructions: Show work, annotate your reasoning, and use associativity in your reasoning. (Be careful - do not use commutativity, which doesn't work for matrix multiplication)

Problem 3:  Adapted from 2.3 #43 with the following instructions
Part A: Enter the matrix from 2.3 #10 into Maple--- define it to be
A:=Matrix([[5,3,1,7,9],[6,4,2,8,-8],[7,5,3,10,9],[9,6,4,-9,-5],[8,5,2,11,4]]);
Part B: Compute ConditionNumber(A); in Maple. Either in text comments or by-hand, write it in scientific notation, and specify what k, the order is.
Part C: Solve Ax=Vector([5,6,7,9,8]) via the following Maple command:
MatrixInverse(A).Vector([5,6,7,9,8]);
Explain why the answer makes sense in this context (hint compare Vector([5,6,7,9,8]) to the columns of A)
Part D: Execute the following in Maple:
MatrixInverse(A).Vector([5.1,6.1,7.1,9.1,8.1]);
MatrixInverse(A).Vector([5.01,6.01,7.01,9.01,8.01]);
MatrixInverse(A).Vector([5.001,6.001,7.001,9.001,8.001]);
MatrixInverse(A).Vector([5.0001,6.0001,7.0001,9.0001,8.0001]);
MatrixInverse(A).Vector([5.00001,6.00001,7.00001,9.00001,8.00001]);
MatrixInverse(A).Vector([5.000001,6.000001,7.000001,9.000001,8.000001]);
MatrixInverse(A).Vector([5.0000001,6.0000001,7.0000001,9.0000001,8.0000001]);
MatrixInverse(A).Vector([5.00000001,6.00000001,7.00000001,9.00000001,8.00000001]);

Part E: Notice that when when we round the vector b (like from Vector([5.1,6.1,7.1,9.1,8.1]) in Part D to Vector([5,6,7,9,8]) in part C) the vector solution x of Ax=b (via MatrixInverse(A).b) changes quite a lot. This is obviously not very good for fields like engineering where all measurements, constants and inputs are approximate. What kind of accuracy do we need to use in b, ie how many significant digits - count 5.01 as 3 significant digits - in order to have x=MatrixInverse(A).b in Part D give us the same solution x as that in Part C when we round x= MatrixInverse(A).b in Part D to one decimal place? [Hint: 0.0727999999999156 is not the same as 0 when rounded to one decimal place, as it rounds to .1]
Part F: Use r as your answer in Part E, and k from Part B in order to plug into r-k as in the instructions above 42 and 43.
Part G: Does the books assertions about accuracy (in those instructions above 42 and 43) match what you found here?

Problem 4:
Assume that you intercept a number of items, as follows:
1. A question from sender a: What kind of row operations did you use to solve that system?
2. A string of coded numbers as a reply from sender b:
12, -5, 13, -5, 14, -5, 1, -20, 25, -18, 13, 0, 0, -25, 5, -4, 18, -1, 23, 0, 20, -1, 15, -19, 0, -14
3. The beginning of the decoded message: elem
4. The fact that a 2x2 decoding matrix was used in the Hill Cipher
We'll investigate whether the rest of the message can be decoded as follows:

Be sure to annotate your work!

Part A: Multiply two matrix vector equations for a decoding matrix, either by-hand or in Maple:
DecodingMatrix:=Matrix([[a, b],[c,d]]);
DecodingMatrix.Vector([12,-5]) = Vector([5,12]);
(the vector corresponding to "el")
DecodingMatrix.Vector([13,-5]) = (the vector corresponding to "em" - create it!)

Part B: From setting equal each corresponding entry in Part A, write down the 4 equations in the 4 unknowns a, b, c, d.

Part C: Solve this system (it's linear - you can solve it using a variety of methods, like a 4x5 augmented matrix with columns a b c d and an equals column, so your first row would be [12,-5,0,0,5]) to see whether you have 0, 1 or infinite solutions for a, b, c and d.

Part D: If you have solutions, put them into DecodingMatrix:=Matrix([[a, b],[c,d]]); (careful about which numbers are in which spots) and use this to decode (by-hand or in Maple). If you are using Maple, then execute (twice!)
interface(rtablesize=13);
interface(rtablesize=13);
CodedMessage:=Matrix([[12,13,14,1,25,13,0,5,18,23,20,15,0],[-5,-5,-5,-20,-18,0,-25,-4,-1,0,-1,-19,-14]]);
DecodingMatrix.CodedMessage

(the interface command gets Maple to display more than 10 columns of a matrix and you must define the DecodingMatrix correctly using Part C. Notice also that the coded string has gone in as the column vectors of the CodedMessage)

Then translate back to letters by reading down the columns. If there are no solutions, then explain why the system is inconsistent.
Various Maple Commands:
> with(LinearAlgebra): with(plots):
> A:=Matrix([[-1,2,1,-1],[2,4,-7,-8],[4,7,-3,3]]);
> ReducedRowEchelonForm(A);
> GaussianElimination(A);
(only for augmented matrices with unknown variables like k or a, b, c in the augmented matrix)
> ConditionNumber(A);
(only for square matrices)
> Transpose(A);
> Vector([1,2,3]);
> B:=MatrixInverse(A);
> A.B;
> A+B;
> B-A;
> 3*A;
> A^3;
> evalf(M);
decimal approximation of M
> spacecurve({[4*t,7*t,3*t,t=0..1],[-1*t,2*t,6*t,t=0..1]},color=red, thickness=2);
plot vectors as line segments in R3 (columns of matrices) to show whether the the columns are in the same plane, etc.
> implicitplot({2*x+4*y-2,5*x-3*y-1}, x=-1..1, y=-1..1);
> implicitplot3d({x+2*y+3*z-3,2*x-y-4*z-1,x+y+z-2},x=-4..4,y=-4..4,z=-4..4);
plot equations of planes in R^3 (rows of augmented matrices) to look at the geometry of the intersection of the rows (ie 3 planes intersect in a point, a line, a plane, or no common points)