{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import sympy as sy\n",
"sy.init_printing() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Null Space "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **null space**, denoted as $\\text{Nul}A$ is the solution set of a homogeneous linear system, i.e. $Ax=0$. \n",
"\n",
"A null space is a always a subspace of $\\mathbb{R}^n$, why? Because the solution can always be at origin $(0, 0, ...)$.\n",
"\n",
"As an example, consider a linear system.\n",
"\n",
"$$\n",
"2x_1-x_2+x_3 = 0\\\\\n",
"x_1+2x_2+3x_3= 0 \n",
"$$\n",
"\n",
"The augmented matrix is \n",
"\n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"2 & -1 & 1 & 0\\\\\n",
"1 & 2 & 3 & 0\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Before solving the system, we have already known there is no unique solution since a free variable presents, due to fact that two equation with three variables.\n",
"\n",
"Solve for the reduced echelon form."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 1 & 0\\\\0 & 1 & 1 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 1 0⎤ ⎞\n",
"⎜⎢ ⎥, (0, 1)⎟\n",
"⎝⎣0 1 1 0⎦ ⎠"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Aug = sy.Matrix([[2,-1,1,0],[1,2,3,0]])\n",
"Aug.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$x_3$ is a free variable, the solution set can be written as\n",
"\n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2 \\\\ x_3\n",
"\\end{matrix}\n",
"\\right]=\n",
"\\left[\n",
"\\begin{matrix}\n",
"-x_3 \\\\ -x_3 \\\\ x_3\n",
"\\end{matrix}\n",
"\\right]=\n",
"x_3\\left[\n",
"\\begin{matrix}\n",
"-1 \\\\ -1 \\\\ 1\n",
"\\end{matrix}\n",
"\\right]\n",
"$$\n",
"\n",
"which is a line passing both origin $(0, 0, 0)$ and $(-1, -1, 1)$, also a subspace of $\\mathbb{R}^3$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider another example, suppose we have an augmented matrix"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}-3 & 6 & -1 & 1 & -7 & 0\\\\1 & -2 & 2 & 3 & -1 & 0\\\\2 & -4 & 5 & 8 & -4 & 0\\end{matrix}\\right]$"
],
"text/plain": [
"⎡-3 6 -1 1 -7 0⎤\n",
"⎢ ⎥\n",
"⎢1 -2 2 3 -1 0⎥\n",
"⎢ ⎥\n",
"⎣2 -4 5 8 -4 0⎦"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Aug = sy.Matrix([[-3,6,-1,1,-7,0],[1,-2,2,3,-1,0],[2,-4,5,8,-4,0]]);Aug"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & -2 & 0 & -1 & 3 & 0\\\\0 & 0 & 1 & 2 & -2 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 2\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 -2 0 -1 3 0⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 0 1 2 -2 0⎥, (0, 2)⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 0 0 0⎦ ⎠"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Aug.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The solution can be written as:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2 \\\\ x_3 \\\\x_4 \\\\ x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"\\left[\n",
"\\begin{matrix}\n",
"2x_2+x_4-3x_5 \\\\ x_2 \\\\ -2x_4+2x_5 \\\\x_4 \\\\ x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"x_2\\left[\n",
"\\begin{matrix}\n",
"2 \\\\ 1 \\\\ 0 \\\\0 \\\\ 0\n",
"\\end{matrix}\n",
"\\right]\n",
"+\n",
"x_4\\left[\n",
"\\begin{matrix}\n",
"1 \\\\ 0 \\\\ -2 \\\\1 \\\\ 0\n",
"\\end{matrix}\n",
"\\right]\n",
"+x_5\\left[\n",
"\\begin{matrix}\n",
"-3 \\\\ 0 \\\\ 2 \\\\0 \\\\ 1\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The $\\text{Nul}A$ is a subspace in $\\mathbb{R}^5$ with $\\text{dim}A=3$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Null Space vs Col Space "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider matrix $A$"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}2 & 4 & -2 & 1\\\\-2 & -5 & 7 & 3\\\\3 & 7 & -8 & 6\\end{matrix}\\right]$"
],
"text/plain": [
"⎡2 4 -2 1⎤\n",
"⎢ ⎥\n",
"⎢-2 -5 7 3⎥\n",
"⎢ ⎥\n",
"⎣3 7 -8 6⎦"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = sy.Matrix([[2,4,-2,1],[-2,-5,7,3],[3,7,-8,6]]);A"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Column space is a subspace in $\\mathbb{R}^n$, what is $n$? It is the number of rows, $n=3$.\n",
"\n",
"Null space is a subspace in $\\mathbb{R}^m$, what is $m$? It is the number of columns, $m=4$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How to find any nonzero vector in $\\text{Col}A$ and in $\\text{Nul}A$?\n",
"\n",
"Any column in a matrix can be a nonzero vector in $\\text{Col}A$, for instance first column: $(2, -2, 3)^T$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But to find a nonzero vector in null space requires some effort, construct the augmented matrix then turn it into rref."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 9 & 0 & 0\\\\0 & 1 & -5 & 0 & 0\\\\0 & 0 & 0 & 1 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1, \\ 3\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 9 0 0⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 -5 0 0⎥, (0, 1, 3)⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 1 0⎦ ⎠"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Aug = sy.Matrix([[2,4,-2,1,0],[-2,-5,7,3,0],[3,7,-8,6,0]]);Aug.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The solution set with a free variable $x_3$ (because column 3 has no pivot) is \n",
"\n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2 \\\\ x_3\\\\x_4\n",
"\\end{matrix}\n",
"\\right]=\n",
"\\left[\n",
"\\begin{matrix}\n",
"-9x_3 \\\\ 5x_3 \\\\ x_3\\\\0\n",
"\\end{matrix}\n",
"\\right]\n",
"$$\n",
"\n",
"If we pick $x_3 =1$, a nonzero vector in $\\text{Nul}A$ is $(-9, 5, 1, 0)^T$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now consider two vectors\n",
"\n",
"$$\n",
"u = \\left[\n",
"\\begin{matrix}\n",
"3 \\\\ -2 \\\\ -1\\\\ 0 \n",
"\\end{matrix}\n",
"\\right],\\qquad\n",
"v = \\left[\n",
"\\begin{matrix}\n",
"3 \\\\ -1\\\\3\n",
"\\end{matrix}\n",
"\\right]\\\\\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Is $u$ in $\\text{Nul}A$? It can be verified easily"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAABLCAYAAAAGaxWkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADxklEQVRoBe2b8W3UMBTGc4i/0RUkBjg2KDAB1w1aNqAdAXUCVDZoR+gxQpkA2g1gACSqigXC9wW/yM35YjvvxbSSn+Q6dhz7d99zEvv1rmmaZh+p3ZE2bds2JRLG/7GDAcO3zVOcFPuMAzb27adfmPn4LND/AeoOpV4UXZVQLmcMAB4jbSkq4JPzxWIhqvxGJ6+QzjCKiVd8108G5IWAvEb2CWBfXHmJ/Br1BxawT9ip1gBDFy0Fkv3h+A4Zoc9Z1poJKCCOkG4CMN9Qt8YHoboqswJdg+I2QEJVaTyvMjVoolrPVZS4WA2KPgRC1POZROUH43ofLnT8IlSZU2ehqKgWGlfU5nNVZWpQ9xgiRMi9Uqd+6KtBnUxXyFfu2M9EUZ5XmRXoBhRvAiSvUXfjqR5oklZlAgqQCwx3i0dVv9Jxj633qP+QhjLeyuxdj2Go3ikAZQq8RfkdPkTojTVOFThrBurc+zEwhkmVietNSCKdVNCIQNmnq6LZkkUuqIpGBMo+XRXNlixywaNR1OwVGhGE+/4V2py4dlynsswARfIScB8XMEg2W0gHfRPsHFB9wA3lLlyD/NCv94+lDetKuZ5Qx/4yEOVLJNrpv2z8bylQLvXuXOqIoBLLyVZkjgKK83DPp/LUTQr5lFLUZ+SNtUYFI38n+BDcHUStiKJCAUDeuITk6p/T4TtSkhUFhXqE67YmzvUMSx6hvgtVjhEngaIzPl6+IjFPNQJ0UKELCId+eUNtkO+hPHpzEfSZ60jyrX5dJ9y8TTKA0OV8hg7B6XpOBaaQqi9R3xlB/7hjyV3RJnPeYDSaN1FUucGov6RM0FmN3gAg3XoVcK8ELaKv0dlBnQpb22jAM1jBOc9H1Oj8ZB9FQAFyATCGyP2HOxcl/EdEVM1ioBzIASVBsf3Q/subaQiRUq6gKSrltKmK5qiV0rYqmqJSTpuqaI5aKW0fjaJm73q8x1dQRhVgiCnLRa0qAIHruQrKDjDg/d8HJELH6LP/TomV69UBBkCNmhUotxhcU/brSijUH48SJJ40maNuCacKMMR4rRS9Nw4XyajICjDc6yBQMFFU+gUgb0xCZgcYpI9duSkopgDnarclBjT3RMkBhl2AUj+L69k5oLlP5w3FAMOSdRozAaXLnduHLAww0DgdVKZ2vVNraoAhGV4NyuclYOliVYAhRqwGdQOoAwxFQKGqOsBQBJSDAJbBhckBhhioyV0fG8TifAW1UNHvoyrqq2F1LFuR0I8GHtQPBvhNRNmUDT+8+luKww5HyvLV+GCTvyvo6GPzzL5/AAAAAElFTkSuQmCC\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}0\\\\-3\\\\3\\end{matrix}\\right]$"
],
"text/plain": [
"⎡0 ⎤\n",
"⎢ ⎥\n",
"⎢-3⎥\n",
"⎢ ⎥\n",
"⎣3 ⎦"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"u = sy.Matrix([[3],[-2],[-1],[0]])\n",
"A*u"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$Au\\neq \\mathbf{0}$, therefore $u$ is not in $\\text{Nul}A$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Is $v$ in $\\text{Col}A$? Construct an augmented matrix with $v$, then solve it"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 9 & 0 & 5\\\\0 & 1 & -5 & 0 & - \\frac{30}{17}\\\\0 & 0 & 0 & 1 & \\frac{1}{17}\\end{matrix}\\right], \\ \\left( 0, \\ 1, \\ 3\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 9 0 5 ⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢ -30 ⎥ ⎟\n",
"⎜⎢0 1 -5 0 ────⎥, (0, 1, 3)⎟\n",
"⎜⎢ 17 ⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 1 1/17⎦ ⎠"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"v = sy.Matrix([[3],[-1],[3]])\n",
"A.row_join(v).rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The augmented matrix show there are solutions, i.e. $v$ is a linear combination of its column space basis, so $v$ is in $\\text{Col}A$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Row Space "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **Row space** denoted as $\\text{Row}A$, contains all linear combination of row vectors and subspace in $\\mathbb{R}^n$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we perform row operations on $A$ to obtain $B$, both matrices have the same row space, because $B$'s rows are linear combinations of $A$'s. However, row operation will change the row dependence. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## An Example "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Find the row, column and null space of "
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}-2 & -5 & 8 & 0 & -17\\\\1 & 3 & -5 & 1 & 5\\\\3 & 11 & -19 & 7 & 1\\\\1 & 7 & -13 & 5 & -3\\end{matrix}\\right]$"
],
"text/plain": [
"⎡-2 -5 8 0 -17⎤\n",
"⎢ ⎥\n",
"⎢1 3 -5 1 5 ⎥\n",
"⎢ ⎥\n",
"⎢3 11 -19 7 1 ⎥\n",
"⎢ ⎥\n",
"⎣1 7 -13 5 -3 ⎦"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = sy.Matrix([[-2, -5, 8, 0, -17],\n",
" [1, 3, -5, 1, 5], \n",
" [3, 11, -19, 7, 1], \n",
" [1, 7, -13, 5, -3]]);A"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 1 & 0 & 1\\\\0 & 1 & -2 & 0 & 3\\\\0 & 0 & 0 & 1 & -5\\\\0 & 0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1, \\ 3\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 1 0 1 ⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 -2 0 3 ⎥ ⎟\n",
"⎜⎢ ⎥, (0, 1, 3)⎟\n",
"⎜⎢0 0 0 1 -5⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 0 0 ⎦ ⎠"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"B = A.rref();B"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The basis of the row space of $B$ is its first 3 rows: $(1,0,1,0,1), (0, 1, -2, 0, 3), (0, 0, 0, 1, -5)$ which are also the basis of the row space of $A$. However it does not necessarily mean that first 3 rows of $A$ forms the basis for row space, because the dependence among rows changed by row operation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In constrast, the basis of col space of $A$ is $(-2, 1, 3, 1)^T, (-5, 3, 11, 7)^T, (0, 1, 7, 5)^T$."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 1 & 0 & 1 & 0\\\\0 & 1 & -2 & 0 & 3 & 0\\\\0 & 0 & 0 & 1 & -5 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1, \\ 3\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 1 0 1 0⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 -2 0 3 0⎥ ⎟\n",
"⎜⎢ ⎥, (0, 1, 3)⎟\n",
"⎜⎢0 0 0 1 -5 0⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 0 0 0⎦ ⎠"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Aug = A.row_join(sy.zeros(4,1));Aug.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The null space is \n",
"\n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2 \\\\ x_3\\\\x_4 \\\\x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"\\left[\n",
"\\begin{matrix}\n",
"-x_3-x_5 \\\\ 2x_3-3x_5 \\\\ x_3\\\\5x_5 \\\\x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"x_3\\left[\n",
"\\begin{matrix}\n",
"-1 \\\\ 2 \\\\ 1\\\\0 \\\\0\n",
"\\end{matrix}\n",
"\\right]+\n",
"x_5\n",
"\\left[\n",
"\\begin{matrix}\n",
"-1 \\\\ -3 \\\\ 0\\\\5 \\\\1\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Rank "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Definition of rank:\n",
"The **rank** is the dimension of the column space of $A$. The **nullity** of $A$ is the dimension of the null space."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Rank Theorem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dimensions of the column space and the row space of an $m \\times n$ matrix $A$ are equal that is why we only need to say rank is the dimension of the column space. \n",
"\n",
"This common dimension, the rank of $A$, also equals the number of pivot positions in $A$ and satisfies the equation\n",
"$$\n",
"\\operatorname{rank} A+\\operatorname{dim} \\mathrm{Nul} A=n\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The intuition is that when a matrix $A$ is converted into rref $B$, we can indirectly(matching the same column from $B$ to $A$) see the basis of column space, those columns in corresponding rref have pivots. \n",
"\n",
"And in rref, we can also see the basis of row space directly, every row in the basis of row space must have a pivot. And those rows which does not have pivots are for free variables, which is the dimension of null space. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 1 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If $A$ is $45 \\times 50$ matrix with a $10$-dimension nullity, what is the rank of $A$?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$10$-$D$ nullity means 10 free variables, so the pivots are $50-10=40$, which is also the rank of $A$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Example 2 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The matrices below are row equivalent.\n",
"$$\n",
"A=\\left[\\begin{array}{rrrrr}\n",
"2 & -1 & 1 & -6 & 8 \\\\\n",
"1 & -2 & -4 & 3 & -2 \\\\\n",
"-7 & 8 & 10 & 3 & -10 \\\\\n",
"4 & -5 & -7 & 0 & 4\n",
"\\end{array}\\right], \\quad B=\\left[\\begin{array}{rrrrr}\n",
"1 & -2 & -4 & 3 & -2 \\\\\n",
"0 & 3 & 9 & -12 & 12 \\\\\n",
"0 & 0 & 0 & 0 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0\n",
"\\end{array}\\right]\n",
"$$\n",
"1. Find rank $A$ and $\\operatorname{dim}$ Nul $A$\n",
"2. Find bases for Col $A$ and Row $A$.\n",
"3. What is the next step to perform to find a basis for Nul $A$ ?\n",
"4. How many pivot columns are in a row echelon form of $A^{T} ?$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. $rank(A)=2$, because $B$ has two pivots. And nullity is the number of free variables, there are 3, so $\\text{dim Nul}A = 3$. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 2 & -5 & 6 & 0\\\\0 & 1 & 3 & -4 & 4 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 2 -5 6 0⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 3 -4 4 0⎥ ⎟\n",
"⎜⎢ ⎥, (0, 1)⎟\n",
"⎜⎢0 0 0 0 0 0⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 0 0 0⎦ ⎠"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = sy.Matrix([[2,-1,1,-6,8,0],\n",
" [1,-2,-4,3,-2,0],\n",
" [-7,8,10,3,-10,0],\n",
" [4,-5,-7,0,4,0]])\n",
"A.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Bases for $\\text{Col}A$ is $(2,1,-7,4)^T, (-1,-2,8,-5)^T$, and for $\\text{Row}A$ is $(1,-2,-4,3,-2),(0,3,9,-12,12)$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The $\\text{Nul}A$ and basis is\n",
"\n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2 \\\\ x_3\\\\x_4 \\\\x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"\\left[\n",
"\\begin{matrix}\n",
"-2x_3+5x_4-6x_5 \\\\ -3x_3+4x_4-4x_5 \\\\ x_3\\\\x_4 \\\\x_5\n",
"\\end{matrix}\n",
"\\right]=\n",
"x_3\n",
"\\left[\n",
"\\begin{matrix}\n",
"-2 \\\\ -3 \\\\ 1\\\\0 \\\\0\n",
"\\end{matrix}\n",
"\\right]+\n",
"x_4\n",
"\\left[\n",
"\\begin{matrix}\n",
"5 \\\\ 4 \\\\ 0\\\\1 \\\\0\n",
"\\end{matrix}\n",
"\\right]+\n",
"x_5\n",
"\\left[\n",
"\\begin{matrix}\n",
"-6 \\\\ -4 \\\\ 0\\\\0 \\\\1\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Perform rref on augmented $A$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Transpose $A$ then do rref."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & -2 & 1\\\\0 & 1 & -3 & 2\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\\\0 & 0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 -2 1⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 -3 2⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 0 0 0⎥ ⎟\n",
"⎜⎢ ⎥, (0, 1)⎟\n",
"⎜⎢0 0 0 0⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 0 0 0⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 0⎦ ⎠"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A.T.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are 2 pivot columns."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Actually, we don't need any calculation to know the rank of $A^T$, because\n",
"\n",
"$$\n",
"rank(A)=rank(A^T)\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Orthogonality of $\\text{Nul}A$ and $\\text{Row}A$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## $\\text{Nul}A \\perp \\text{Row}A$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the intersting connections of these subspaces we have discussed. Consider"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}5 & 8 & 2\\\\10 & 16 & 4\\\\3 & 4 & 1\\end{matrix}\\right]$"
],
"text/plain": [
"⎡5 8 2⎤\n",
"⎢ ⎥\n",
"⎢10 16 4⎥\n",
"⎢ ⎥\n",
"⎣3 4 1⎦"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = sy.Matrix([[5, 8, 2], [10, 16, 4], [3, 4, 1]]);A"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 0\\\\0 & 1 & \\frac{1}{4}\\\\0 & 0 & 0\\end{matrix}\\right], \\ \\left( 0, \\ 1\\right)\\right)$"
],
"text/plain": [
"⎛⎡1 0 0 ⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 1 1/4⎥, (0, 1)⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0 ⎦ ⎠"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A.rref()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The basis of row space of $A$ is $(1, 0, 0)$ and $(0, 1, .25)$.And the $\\text{Row}A$ is \n",
"\n",
"$$\n",
"\\text{Row}A=\n",
"s\\left[\n",
"\\begin{matrix}\n",
"1 \\\\ 0\\\\ 0\n",
"\\end{matrix}\n",
"\\right]+\n",
"t\\left[\n",
"\\begin{matrix}\n",
"0 \\\\ 1\\\\ 0.25\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The $\\text{Nul}A$ is \n",
"$$\n",
"\\left[\n",
"\\begin{matrix}\n",
"x_1 \\\\ x_2\\\\ x_3\n",
"\\end{matrix}\n",
"\\right]=\n",
"x_3\n",
"\\left[\n",
"\\begin{matrix}\n",
"0 \\\\ -.25\\\\ 1\n",
"\\end{matrix}\n",
"\\right]\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can visualize their relations geometrically. Again keep in mind that Matplotlib does not render 3D properly, so you need some imagination as well.\n",
"\n",
"Here is what we observe. \n",
"\n",
"The $\\text{Row}A$ is a plane and $\\text{Nul}A$ is a line which is perpendicular to the plane. It is easy to grasp the idea if you notice that in a homogeneous system $Ab = \\mathbf{0}$, it breaks down into many dot products\n",
"\n",
"$$\n",
"Ab =\\left[\n",
"\\begin{matrix}\n",
"A_{1i}\\cdot b \\\\ A_{2i}\\cdot b\\\\ A_{3i}\\cdot b\n",
"\\end{matrix}\n",
"\\right]\n",
"$$\n",
"\n",
"where $A_{1i}, A_{2i}, A_{3i}$ are the rows of $A$. In later chapters we will prove when the dot product of two vectors equals zero, which means geometrically they are perpendicular."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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R2NjIx0dHWzdunXOlQUWi6WuB1pLbNsmFosxNjZGNBolnU4Tj8dpbm4u1nEtvCzLIhaLlZVImqpk0lRMJ7iz/V8o/zbV51UX6mArsueliHOPlff92D5sJaBVZzVavvV4zPXWn7myKgQ0l8sxNjbGN77xDV7/+tcTCAQAitZlOBxetl9gKZUO4S4FpRet4zgkEgnGxsYYGxvDsiwaGxtpbm5m/fr1PP3002zZsgXDMMrmwqZSKdLpNNu2bato/9MJ7lT/5/P54v+maXLmzJkpl5+KqQoJT1VYeLrPQhteR2iigB7di33D7877uCs5TwqFYm6seAH94he/yJe//GVyuRy33HILl1xyCYlEgssvv7zWXZuRpbJAl2I/pRmXRkdHyeVyRCIRmpub2bFjR1k+38VivjULSxkZGeGKK66Y07JTFReeSbBzudykzw3jEq6asF2t/xme/NED5PztUx7TXMV5tv8VK596tECX64NbzQR03759fOxjH8O2bd73vvdx9913l33+4x//mDe+8Y1s2rQJgLe85S3cc889c1q3lPe///188IMf5Dd/8zd53eteR2dnJ4lEYvEOrIbUk980k8kwOjrK2NgY6XSaM2fO0NLSwvbt24sjACuRhQj1RS4ne3AL/tiJstZdjcM4170RcG84Uso5WdMFKzqbzU75een7ZDLJL37xi0k32PkI8lyWEULUxU28HsVEsXyoiYDats1HPvIRHn74YXp6eti1axd33HEHO3aU+3he9apX8d3vfreidQsUhgALyeSXC/UkhnOhMEw+NjZGIpHA7/fT3NzMxo0byWQy7NixY8GpCZfbOVkI8e4bJwmofnQvznW/AVAUIE3Tqpqg4xe/+AW7du0qewBwHGdawZ34v2maZVb1dMtPvBZTqRSPP/54cdi+Ugt6SfzUyxz10FA9aiKg+/fvZ+vWrWzevBmAO++8kwceeGBaEazGuoudiageWMppLKZpEo1GGRsbIxaLYRgGzc3NdHd3E4lEysRSXazzJ7H2Rjqe/8eyNnH255CNgb9xSfuiaRqapi1qJaBf/OIXXH/99QBz9lXn8/lZBX02P3U2m8Xj8TA0NDTvofCJbep3vvqoiYD29vaybt264v89PT08/vjjk5Z77LHHuOqqq+ju7uZ//s//yc6dO+e87kSWQzmzUuqtn6WRsqlUikOHDtHU1ERb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\n",
"text/plain": [
"