From f6f7f360798b64829086432e801be5b191324dbc Mon Sep 17 00:00:00 2001 From: bovem Date: Wed, 10 Jul 2024 19:37:48 +0530 Subject: [PATCH] Article #40: Matrices --- README.md | 1 + content/contents.md | 1 + .../posts/linear-algebra/matrices/index.md | 148 ++++++++++++++++++ .../matrices/order_of_matrices.png | Bin 0 -> 34737 bytes 4 files changed, 150 insertions(+) create mode 100644 content/posts/linear-algebra/matrices/index.md create mode 100644 content/posts/linear-algebra/matrices/order_of_matrices.png diff --git a/README.md b/README.md index f16dfab..1002c01 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ For a glimpse into my journey and the projects I've been involved in, feel free - Linear Algebra - Tensors - Vectors + - Matrices - Data Structures and Algorithms - Time Complexity - Arrays, Strings, and HashMaps diff --git a/content/contents.md b/content/contents.md index 3876cae..269a8b3 100644 --- a/content/contents.md +++ b/content/contents.md @@ -29,6 +29,7 @@ summary: "Index of all content" - Linear Algebra - Tensors - Vectors + - Matrices - Data Structures and Algorithms - Time Complexity - Arrays, Strings, and HashMaps diff --git a/content/posts/linear-algebra/matrices/index.md b/content/posts/linear-algebra/matrices/index.md new file mode 100644 index 0000000..5eca3f4 --- /dev/null +++ b/content/posts/linear-algebra/matrices/index.md @@ -0,0 +1,148 @@ +--- +author: "Avnish" +title: "Matrices" +date: "2024-07-12" +description: "A matrix is a two dimensional array of data." +tags: ["math", "linear-algebra", "vectors", "matrices", "matrix-multiplication", "matrix-transpose", "matrix-inverse", "idempotent-matrix", "symmetric-matrix", "skew-symmetric-matrix"] +categories: ["Math", "Linear Algebra"] +series: ["Linear Algebra"] +aliases: ["matrices"] +ShowToc: true +TocOpen: false +comments: false +math: true +--- + +A matrix is a rank 2 tensor i.e. an array expanding in a maximum of two independent dimensions. + +Multiple vectors could be arranged in rows or columns to create a matrix. + +$$\vec{a} = \begin{bmatrix} 5 \\\ 6 \\\ 7 \end{bmatrix}\ \ \vec{b} = \begin{bmatrix} 7 \\\ 9 \\\ 10 \end{bmatrix}$$ + +$$\textbf{A} = \begin{bmatrix} \vec{a} & \vec{b} \end{bmatrix} = \begin{bmatrix} 5 & 7 \\\ 6 & 9 \\\ 7 & 10 \end{bmatrix}$$ + +$$\textbf{B} = \begin{bmatrix} \vec{a} \\\ \vec{b} \end{bmatrix} = \begin{bmatrix} 5 & 6 & 7 \\\ 7 & 9 & 10 \end{bmatrix}$$ + +The term *matrix* encompasses all vectors so $\vec{a}$ and $\vec{b}$ could be called matrices or vectors interchangeably. + +# Order of a matrix +The notation of the number of $rows \times columns$ of a matrix is called its **order**. For example, the following matrix has order $3 \times 4$. + +$$\begin{bmatrix} 1 & 8 & 99 & 0 \\\ 56 & 43 & 91 & 2 \\\ 9 & 5 & 33 & 1 \end{bmatrix}$$ + +Vectors are matrices with an order of either $n \times 1$ or $1 \times n$. + +# Diagonal of a matrix +The **diagonal** of the matrix refers to the elements from the top left corner to the bottom right corner of the matrix (highlighted below). + +$$\begin{bmatrix} {\color {red} 4} & 9 & 5 \\\ 9 & {\color{red} 3} & 1 \\\ 90 & 2 & {\color{red} 8}\end{bmatrix} \ \ \ \begin{bmatrix} {\color {red} 5} & 9 & 5 & 98 \\\ 9 & {\color{red} 43} & 1 & 1 \\\ 90 & 2 & {\color{red} 9} & 52\end{bmatrix}$$ + +# Square Matrix +A matrix with an equal number of rows and columns is called a **square matrix**. For example: + +$$\begin{bmatrix} 1 & 8 & 9 \\\ 2 & 0 & 11 \\\ 9 & 7 & 1\end{bmatrix}$$ + +## Triangular Matrix +A **triangular matrix** is a type of square matrix where either the elements above or below the diagonal are all $0$s. + +Here is an example of an **upper triangular matrix** + +$$\begin{bmatrix} \color{red} 6 & \color{red} 21 & \color{red} 6 & \color{red} 88 \\\ 0 & \color{red} 71 & \color{red} 90 & \color{red} 8 \\\ 0 & 0 & \color{red} 1 & \color{red} 71 \\\ 0 & 0 & 0 & \color{red} 4 \end{bmatrix}$$ + +Following is an example of a **lower triangular matrix** + +$$\begin{bmatrix} \color{red} 6 & 0 & 0 & 0 \\\ \color{red} 7 & \color{red} 71 & 0 & 0 \\\ \color{red} 12 & \color{red} 61 & \color{red} 1 & 0 \\\ \color{red} 4 & \color{red} 6 & \color{red} 5 & \color{red} 4 \end{bmatrix}$$ + +# Matrix Operations +## Equality of Matrices +Two matrices are equal if +1. They have the same order. +2. The values of the corresponding elements are the same. + +Given a matrix $\textbf{A} = \begin{bmatrix} 1 & 2 \\\ 3 & 4 \end{bmatrix}$ and a matrix $\textbf{B} = \begin{bmatrix} 1 & 2 \\\ 3 & 4 \end{bmatrix}$ we can say that $\textbf{A} = \textbf{B}$ because the order of both matrices is $2 \times 2$ and the elements corresponding to same position are also equal. + +## Addition and Subtraction of Matrices +To add two matrices we just have to sum the elements at corresponding positions. The order of both matrices should be the same for addition (and subtraction). + +$$\begin{bmatrix} 4 & 5 & 9 \\\ 89 & 5 & 91 \end{bmatrix} + \begin{bmatrix} 9 & 4 & 8 \\\ 9 & 1 & 85 \end{bmatrix} = \begin{bmatrix} 4+9 & 5+4 & 9+8 \\\ 89+9 & 5+1 & 91+85 \end{bmatrix} = \begin{bmatrix} 13 & 9 & 17 \\\ 98 & 6 & 176 \end{bmatrix}$$ + +The subtraction operation is similar to the addition. + +$$\begin{bmatrix} 9 & 4 & 8 \\\ 9 & 1 & 85 \end{bmatrix} - \begin{bmatrix} 4 & 5 & 9 \\\ 89 & 5 & 91 \end{bmatrix} = \begin{bmatrix} 9-4 & 4-5 & 8-9 \\\ 9-89 & 1-5 & 85-91 \end{bmatrix} = \begin{bmatrix} 5 & -1 & -1 \\\ -80 & -4 & -6 \end{bmatrix}$$ + +## Multiplication and Division with a Scalar Value +If we want to multiply a matrix with a scalar value, we just have to multiply the scalar with each element individually. + +$$5 \times \begin{bmatrix} 7 & 6 \\\ 8 & 4 \end{bmatrix} = \begin{bmatrix} 7 \times 5 & 6 \times 5 \\\ 8 \times 5 & 4 \times 5 \end{bmatrix} = \begin{bmatrix} 35 & 30 \\\ 40 & 20 \end{bmatrix}$$ + +Division operation with a scalar value is also applied similarly on the matrix. + +$$\begin{bmatrix} 9 & 6 \\\ 12 & 36 \end{bmatrix} \div 3 = \begin{bmatrix} 9 & 6 \\\ 12 & 36 \end{bmatrix} \times {1 \over 3} = \begin{bmatrix} {9 \over 3} & {6 \over 3} \\\ {12 \over 3} & {36 \over 3} \end{bmatrix} = \begin{bmatrix} 3 & 2 \\\ 4 & 12 \end{bmatrix}$$ + +## Transpose of a Matrix +The **transpose** operation on a matrix swaps the elements in its rows and columns. For example, if we apply the transpose operation on the matrix $\textbf{C} = \begin{bmatrix} 4 & 5 & 8 \\\ 6 & 7 & 9 \end{bmatrix}$ the result would be $\textbf{C}^T = \begin{bmatrix} 4 & 6 \\\ 5 & 7 \\\ 8 & 9 \end{bmatrix}$. + +Notice that the order of the matrix is also changed from $2 \times 3$ to $3 \times 2$. + +### Symmetric Matrix +A matrix is **symmetric** if it remains unchanged after the transpose operation is applied i.e. $\textbf{C}^T = \textbf{C}$. The following matrix is an example of a symmetric matrix: + +$$\left(\begin{bmatrix} 9 & 5 & 89 \\\ 5 & 8 & 67 \\\ 89 & 67 & 34\end{bmatrix}\right)^T = \begin{bmatrix} 9 & 5 & 89 \\\ 5 & 8 & 67 \\\ 89 & 67 & 34\end{bmatrix}$$ + +### Skew-Symmetric Matrix +If we perform the transpose operation on a skew-symmetric matrix the result will be the original matrix multiplied by the scalar value $(-1)$ i.e. $\textbf{C}^T = (-1) \times \textbf{C}$. + +$$\left(\begin{bmatrix} 9 & 5 & 89 \\\ -5 & 8 & 67 \\\ -89 & -67 & 34\end{bmatrix}\right)^T = \begin{bmatrix} 9 & -5 & -89 \\\ 5 & 8 & -67 \\\ 89 & 67 & 34\end{bmatrix}$$ + +## Multiplication of Matrices +To calculate the product of two matrices we have to take the dot product of each row from the first matrix with every column of the second matrix. + +$$\textbf{A} \times \textbf{B} = \begin{bmatrix} a_{11} & a_{12} \\\ a_{21} & a_{22} \\\ a_{31} & a_{32} \end{bmatrix} \times \begin{bmatrix} b_{11} & b_{12} \\\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}b_{11} +a_{12}b_{21} & a_{11}b_{12} +a_{12}b_{22} \\\ a_{21}b_{11} +a_{22}b_{21} & a_{21}b_{12} +a_{22}b_{22} \\\ a_{31}b_{11} +a_{32}b_{21} & a_{31}b_{12} +a_{32}b_{22}\end{bmatrix}$$ + +Because the dot product could only be calculated between the vectors with identical number of elements, to multiply two matrices the number of columns in the first matrix should be equal to the number of rows in the second matrix. + +

Order of product matrix

+ +If we switch the matrix $\textbf{A}$ and $\textbf{B}$ while performing multiplication the resulting product matrix will have different dimensions (and elements). Thus, *matrix multiplication is not commutative*. +$$\textbf{A} \times \textbf{B} \neq \textbf{B} \times \textbf{A}$$ + +### Identity Matrix +A square matrix with $1$s on its diagonal (and $0$s as non-diagonal elements) is called an **identity matrix**. Multiplying any matrix with an identity matrix (of valid order) is analogous to multiplying a number with $1$. + +In equations, the identity matrix is represented with $\textbf{I}$ + +$$\textbf{A} \times \textbf{I} = \textbf{A}$$ +$$\begin{bmatrix} 7 & 1 & 8 \\\ 4 & 5 & 3 \\\ 1 & 2 & 6 \end{bmatrix} \times \begin{bmatrix} 1 & 0 & 0 \\\ 0 & 1 & 0 \\\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 7 & 1 & 8 \\\ 4 & 5 & 3 \\\ 1 & 2 & 6 \end{bmatrix}$$ + +### Null Matrix +If multiplication with identity matrix is analogous to multiplication with $1$ then multiplication with null matrix will be analogous to multiplication of a number with $0$. +A null matrix has only $0$s as elements and doesn't have to be a square matrix. It is represented as $\textbf{0}$ in equations. + +$$\textbf{A} \times \textbf{0} = \textbf{0}$$ +$$\begin{bmatrix} 7 & 1 & 8 \\\ 4 & 5 & 3 \\\ 1 & 2 & 6 \end{bmatrix} \times \begin{bmatrix} 0 & 0 & 0 \\\ 0 & 0 & 0 \\\ 0 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 \\\ 0 & 0 & 0 \\\ 0 & 0 & 0 \end{bmatrix}$$ + +### Idempotent Matrix +A matrix when multiplied by itself remains unchanged, is called an **idempotent matrix**. +$$\textbf{A} \times \textbf{A} = \textbf{A}^{2} = \textbf{A}$$ +Since the order of the product matrix has to be the same as the original matrix, an idempotent matrix must always be a square matrix. +All identity matrices are idempotent. + +## Division of Matrices +If we have to divide a matrix with another matrix + +$$\textbf{A} \div \textbf{B} = {\textbf{A} \over \textbf{B}}$$ + +we can rephrase it as + +$$\textbf{A} \times {\textbf{I} \over \textbf{B}} = \textbf{A} \times \textbf{B}^{-1}$$ + +### Inverse of a Matrix +The matrix $\textbf{B}^{-1}$ will be called the **inverse** of the matrix $\textbf{B}$. +$$\textbf{B} \times \textbf{B}^{-1} = \textbf{I}$$ +The inverse matrix has the same order as the original matrix. +We can find the inverse of any square matrix using the process of Gauss-Jordan Elimination. + +# Resources +Matrix multiplication dimensions +Part 2 : Operations on Matrices +Part 3 : Types of Matrices, Diagonal, and Transpose diff --git a/content/posts/linear-algebra/matrices/order_of_matrices.png b/content/posts/linear-algebra/matrices/order_of_matrices.png new file mode 100644 index 0000000000000000000000000000000000000000..088e05fed2d55df22eec1ff9594e09fe60f8f48a GIT binary patch literal 34737 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 literal 0 HcmV?d00001