In one of the comments one is told to: “add row 0 of the new matrix A_ref to the row 2, replacing row 2.” I am not sure how this translates into code. I am trying this: addrows(A, 0,2,1). I am not sure if this is correct. Any hints?
Here is my code: I am not getting the expected output.
def augmented_to_ref(A, b):
# stack horizontally matrix A and vector b, which needs to be reshaped as a vector (4, 1)
A_system = np.hstack((A, b.reshape((4, 1))))
# swap row 0 and row 1 of matrix A_system (remember that indexing in NumPy array starts from 0)
A_ref = SwapRows(A_system, 0, 1)
# multiply row 0 of the new matrix A_ref by -2 and add it to the row 1
A_ref = AddRows(A_ref, 0, 1, -2)
# add row 0 of the new matrix A_ref to the row 2, replacing row 2
A_ref = AddRows(A_ref, 0, 2, 1)
# # multiply row 0 of the new matrix A_ref by -1 and add it to the row 3
A_ref = AddRows(A_ref, 0, 3, -1)
# # add row 2 of the new matrix A_ref to the row 3, replacing row 3
A_ref = AddRows(A_ref, 2, 3, 1)
# # swap row 1 and 3 of the new matrix A_ref
A_ref = SwapRows(A_ref, 1, 3)
# # add row 2 of the new matrix A_ref to the row 3, replacing row 3
A_ref = AddRows(A_ref, 2, 3, 1)
return A_ref
A_ref = augmented_to_ref(A, b)
print(A_ref)
My output is this:
[[ 1. 2. -1. -1. 3.] [ 0. 1. 4. 3. 22.] [ 0. 4. 1. 1. 17.] [ 0. -1. 4. 4. 17.]]
I am not sure where I am going wrong here.