Matrix Row Operations

Description

We can use sage to perform elementary row operations on a given matrix, say

(1)
\begin{align} A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix}. \end{align}

This is a bit tedious, so it may be best reserved for large matrices where the calculations are more difficult by hand.

Sage Cell

Scaling Rows

We can multiply a row by a scalar with the .rescale_row() method. Note that the rows of a matrix start with row 0.

Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
A.rescale_row(0, 2)
A


Adding and Subtracting Rows

We can add and subtract rows with the .add_multiple_of_row() method. The method takes in 3 arguments: the row being modified comes first, then the row you are adding or subtracting to it, then a scalar multiple for the second row.

Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
A.add_multiple_of_row(1, 0, 2)
A


Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
A.add_multiple_of_row(1, 0, -1)
A


Swapping Rows

We can swap rows with the .swap_rows() method.

Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
A.swap_rows(0, 1)
A


Options

Creating New Matrices from the Row Operations

Each of the commands above has a 'with' version, which returns the matrix we're operating on and allows us to assign it to a new variable, rather than simply changing the original matrix. This is useful because it allows us to leave a trail showing the row operations we made.

Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
B = A.with_rescaled_row(0, 2)
print('A =', A)
print('B =', B)


Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
B = A.with_added_multiple_of_row(1, 0, 2)
print('A =', A)
print('B =', B)


Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
B = A.with_added_multiple_of_row(1, 0, -1)
print('A =', A)
print('B =', B)


Swapping Rows

We can swap rows with the .swap_rows() method.

Code

A = matrix(QQ, [[1, 2, 3], [4, 5, 6]])
B = A.with_swapped_rows(0, 1)
print('A =', A)
print('B =', B)


Tags

CC:

Primary Tags: Linear algebra: Matrices.

Secondary Tags: Matrices: Row operations.

Attribute

Permalink:

Author: R. Beezer

Date: 24 Feb 2020 15:23

Submitted by: Zane Corbiere

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License