{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import init_printing, Matrix\n",
    "init_printing()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}1\\\\1\\\\0\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0\\\\1\\\\1\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0\\\\0\\\\1\\\\1\\end{matrix}\\right]\\right)$"
      ],
      "text/plain": [
       "⎛⎡1⎤  ⎡0⎤  ⎡0⎤⎞\n",
       "⎜⎢ ⎥  ⎢ ⎥  ⎢ ⎥⎟\n",
       "⎜⎢1⎥  ⎢1⎥  ⎢0⎥⎟\n",
       "⎜⎢ ⎥, ⎢ ⎥, ⎢ ⎥⎟\n",
       "⎜⎢0⎥  ⎢1⎥  ⎢1⎥⎟\n",
       "⎜⎢ ⎥  ⎢ ⎥  ⎢ ⎥⎟\n",
       "⎝⎣0⎦  ⎣0⎦  ⎣1⎦⎠"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = Matrix([1, 1, 0, 0])\n",
    "b = Matrix([0, 1, 1, 0])\n",
    "c = Matrix([0, 0, 1, 1])\n",
    "a,b,c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0 & 1 & 0 & 1\\\\1 & 1 & 0 & 0 & 1 & 1\\\\0 & 1 & 1 & -1 & 0 & -1\\\\0 & 0 & 1 & 0 & -1 & -1\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "⎡1  0  0  1   0   1 ⎤\n",
       "⎢                   ⎥\n",
       "⎢1  1  0  0   1   1 ⎥\n",
       "⎢                   ⎥\n",
       "⎢0  1  1  -1  0   -1⎥\n",
       "⎢                   ⎥\n",
       "⎣0  0  1  0   -1  -1⎦"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = Matrix.hstack(a, b, c, a - b, b - c, a - c)\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}1 & 0 & 0 & 0\\\\1 & 1 & 0 & 0\\\\0 & 1 & 1 & 0\\\\0 & 0 & 1 & 1\\end{matrix}\\right], \\  \\left[\\begin{matrix}1 & 0 & 0 & 1 & 0 & 1\\\\0 & 1 & 0 & -1 & 1 & 0\\\\0 & 0 & 1 & 0 & -1 & -1\\\\0 & 0 & 0 & 0 & 0 & 0\\end{matrix}\\right], \\  \\left[ \\right]\\right)$"
      ],
      "text/plain": [
       "⎛⎡1  0  0  0⎤  ⎡1  0  0  1   0   1 ⎤    ⎞\n",
       "⎜⎢          ⎥  ⎢                   ⎥    ⎟\n",
       "⎜⎢1  1  0  0⎥  ⎢0  1  0  -1  1   0 ⎥    ⎟\n",
       "⎜⎢          ⎥, ⎢                   ⎥, []⎟\n",
       "⎜⎢0  1  1  0⎥  ⎢0  0  1  0   -1  -1⎥    ⎟\n",
       "⎜⎢          ⎥  ⎢                   ⎥    ⎟\n",
       "⎝⎣0  0  1  1⎦  ⎣0  0  0  0   0   0 ⎦    ⎠"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A.LUdecomposition()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[ \\left[\\begin{matrix}1\\\\1\\\\0\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0\\\\1\\\\1\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0\\\\0\\\\1\\\\1\\end{matrix}\\right]\\right]$"
      ],
      "text/plain": [
       "⎡⎡1⎤  ⎡0⎤  ⎡0⎤⎤\n",
       "⎢⎢ ⎥  ⎢ ⎥  ⎢ ⎥⎥\n",
       "⎢⎢1⎥  ⎢1⎥  ⎢0⎥⎥\n",
       "⎢⎢ ⎥, ⎢ ⎥, ⎢ ⎥⎥\n",
       "⎢⎢0⎥  ⎢1⎥  ⎢1⎥⎥\n",
       "⎢⎢ ⎥  ⎢ ⎥  ⎢ ⎥⎥\n",
       "⎣⎣0⎦  ⎣0⎦  ⎣1⎦⎦"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C=A.columnspace()\n",
    "C"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAABkCAYAAAA7Ska5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADdklEQVR4Ae2d0W3bMBCGnaLPRZECHSAjJB0h3SCZoRv01X5tN0g7QrpB2xHaDZIB+hAUnSD/JdJBlPjbFm3pqOInQOj4i0dRn04kaMbxyXq9Pl+tVr+Qc+nbZrO5zp2AXuSXa+sQDf24g/9Zrg2cO8nppu3ye9lx/AzbLtJN990CsUv9SHOj5U8Zj/fQrjJ6V9rq1wVzA4r7gOg2bnapX7+dojL6/KXvCM2krWB2+XXB9NuvqowbsVf3FvkC9t+pO1c1GAB4DQBfkR+Q3yFnxxLoR0+1g7HIeBr8AekjbIuaWdKLWa6ywIsIDHloAiMwhACRFTEEzKSzUjPd/sS1bdrdN13D7/e+laeqNzUYm24vpur8lO3qVSJ0BeY/APOmuYdTci9HlScdY47RUwzEtnC0dPl8WN1Cs08BvuM4WFk3dQ4+LAFM9oOyg+98RwMaYwgggREYQoDIihiBIQSIrIgRGEKAyIoYgSEEiKyIIWCqWRJg3TPrhhrh4XIoGMAI21BzAsSIBhO2oUZ4uKwxxlGkhsCkPLwkMI4iNQQm5eElgXEUqWFgXjVSe0xr8FJbvz3ymvOfeVt4SfdTxBCCBuZfc649kqoDua3fHgcVAoU/hdd2P0UMIVgTmFk31AgPl0OXBNYLrJdCNtScADFqABOyoUZ4uFzTq+SdqsEQGPIUBEZgCAEiK2IEhhAgskWM/RHOB+QHUofJpX6svWPqP9CY3dPY5H4G5gz5Bvl0ZCulfiMvU1T9El52T2OT+xkYpQwBgclAMSl8SUD6NZDn3pCrGkzkhlztYMI25DTGDF7aZ0FgBIYQILIiRmAIASJPOis1062+4daHDzD6hlsfytLLGnzJE1wSmFk35CYdfMnDGCVjnArZkFsCmJANuSW9SqMi7dDKAkMICozAEAJEVsQIDCFAZEWMwBACRFbECAwhQORqlgRYE52jj7P9y0jCw+VQMM0nfCH/MtIJECMaTNiGGuHhsgZfR5EaApPy8JLAOIrUEJiUh5cExlGkhsCkPLwkMI4iNQQm5eElgXEUqVETmFk31FIMw1LoksC6E7WhNkSRKjWACdlQSzEMSzW9SsPeBSoCQ+ALjMAQAkRWxBAw3VnpDlNnvxr9Ra5OxVK/ThPlJvpMf5FrW6u7/AxM+021XDt2jqVSP9ZeqZ77Za192trq9wi3U7l55fw4zgAAAABJRU5ErkJggg==",
      "text/latex": [
       "$\\displaystyle \\left[ \\left[\\begin{matrix}-1\\\\1\\\\-1\\\\1\\end{matrix}\\right]\\right]$"
      ],
      "text/plain": [
       "⎡⎡-1⎤⎤\n",
       "⎢⎢  ⎥⎥\n",
       "⎢⎢1 ⎥⎥\n",
       "⎢⎢  ⎥⎥\n",
       "⎢⎢-1⎥⎥\n",
       "⎢⎢  ⎥⎥\n",
       "⎣⎣1 ⎦⎦"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A.transpose().nullspace()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[ \\left[\\begin{matrix}1 & 0 & 0 & 1 & 0 & 1\\end{matrix}\\right], \\  \\left[\\begin{matrix}0 & 1 & 0 & -1 & 1 & 0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0 & 0 & 1 & 0 & -1 & -1\\end{matrix}\\right]\\right]$"
      ],
      "text/plain": [
       "[[1  0  0  1  0  1], [0  1  0  -1  1  0], [0  0  1  0  -1  -1]]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R=A.rowspace()\n",
    "R"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[ \\left[\\begin{matrix}-1\\\\1\\\\0\\\\1\\\\0\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}0\\\\-1\\\\1\\\\0\\\\1\\\\0\\end{matrix}\\right], \\  \\left[\\begin{matrix}-1\\\\0\\\\1\\\\0\\\\0\\\\1\\end{matrix}\\right]\\right]$"
      ],
      "text/plain": [
       "⎡⎡-1⎤  ⎡0 ⎤  ⎡-1⎤⎤\n",
       "⎢⎢  ⎥  ⎢  ⎥  ⎢  ⎥⎥\n",
       "⎢⎢1 ⎥  ⎢-1⎥  ⎢0 ⎥⎥\n",
       "⎢⎢  ⎥  ⎢  ⎥  ⎢  ⎥⎥\n",
       "⎢⎢0 ⎥  ⎢1 ⎥  ⎢1 ⎥⎥\n",
       "⎢⎢  ⎥, ⎢  ⎥, ⎢  ⎥⎥\n",
       "⎢⎢1 ⎥  ⎢0 ⎥  ⎢0 ⎥⎥\n",
       "⎢⎢  ⎥  ⎢  ⎥  ⎢  ⎥⎥\n",
       "⎢⎢0 ⎥  ⎢1 ⎥  ⎢0 ⎥⎥\n",
       "⎢⎢  ⎥  ⎢  ⎥  ⎢  ⎥⎥\n",
       "⎣⎣0 ⎦  ⎣0 ⎦  ⎣1 ⎦⎦"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A.nullspace()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}1 & 0 & 0 & 1 & 0 & 1\\\\1 & 1 & 0 & 0 & 1 & 1\\\\0 & 1 & 1 & -1 & 0 & -1\\\\0 & 0 & 1 & 0 & -1 & -1\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "⎡1  0  0  1   0   1 ⎤\n",
       "⎢                   ⎥\n",
       "⎢1  1  0  0   1   1 ⎥\n",
       "⎢                   ⎥\n",
       "⎢0  1  1  -1  0   -1⎥\n",
       "⎢                   ⎥\n",
       "⎣0  0  1  0   -1  -1⎦"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Matrix.hstack(*C) * Matrix(R)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/latex": [
       "$\\displaystyle \\left( \\left[\\begin{matrix}\\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{6}}{6} & \\frac{\\sqrt{3}}{6}\\\\\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{6}}{6} & - \\frac{\\sqrt{3}}{6}\\\\0 & \\frac{\\sqrt{6}}{3} & \\frac{\\sqrt{3}}{6}\\\\0 & 0 & \\frac{\\sqrt{3}}{2}\\end{matrix}\\right], \\  \\left[\\begin{matrix}\\sqrt{2} & \\frac{\\sqrt{2}}{2} & 0 & \\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2} & \\sqrt{2}\\\\0 & \\frac{\\sqrt{6}}{2} & \\frac{\\sqrt{6}}{3} & - \\frac{\\sqrt{6}}{2} & \\frac{\\sqrt{6}}{6} & - \\frac{\\sqrt{6}}{3}\\\\0 & 0 & \\frac{2 \\sqrt{3}}{3} & 0 & - \\frac{2 \\sqrt{3}}{3} & - \\frac{2 \\sqrt{3}}{3}\\end{matrix}\\right]\\right)$"
      ],
      "text/plain": [
       "⎛⎡√2  -√6    √3 ⎤                                      ⎞\n",
       "⎜⎢──  ────   ── ⎥                                      ⎟\n",
       "⎜⎢2    6     6  ⎥  ⎡    √2         √2     √2          ⎤⎟\n",
       "⎜⎢              ⎥  ⎢√2  ──   0     ──     ──      √2  ⎥⎟\n",
       "⎜⎢√2   √6   -√3 ⎥  ⎢    2          2      2           ⎥⎟\n",
       "⎜⎢──   ──   ────⎥  ⎢                                  ⎥⎟\n",
       "⎜⎢2    6     6  ⎥  ⎢    √6   √6   -√6     √6     -√6  ⎥⎟\n",
       "⎜⎢              ⎥, ⎢0   ──   ──   ────    ──     ──── ⎥⎟\n",
       "⎜⎢     √6    √3 ⎥  ⎢    2    3     2      6       3   ⎥⎟\n",
       "⎜⎢0    ──    ── ⎥  ⎢                                  ⎥⎟\n",
       "⎜⎢     3     6  ⎥  ⎢        2⋅√3        -2⋅√3   -2⋅√3 ⎥⎟\n",
       "⎜⎢              ⎥  ⎢0   0   ────   0    ──────  ──────⎥⎟\n",
       "⎜⎢           √3 ⎥  ⎣         3            3       3   ⎦⎟\n",
       "⎜⎢0    0     ── ⎥                                      ⎟\n",
       "⎝⎣           2  ⎦                                      ⎠"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A.QRdecomposition()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
