{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "TestDemo\n", "========\n", "\n", "**Author:** Marcos Bujosa\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from nacal import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Repositorio de la librería en [GitHub](https://github.com/mbujosab/nacallib)\n", "- Repositorio del proyecto en [Pypi](https://pypi.org/project/nacal/)\n", "- Repositorio con notebooks de jupyter en [GitHub](https://github.com/mbujosab/nacal-Jupyter-Notebooks)\n", "- Repositorio del libro en [GitHub](https://github.com/mbujosab/CursoDeAlgebraLineal)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\n", "\\newcommand{\\Rr}{{\\mathbb{R}}}\n", "\\newcommand{\\Zz}{{\\mathbb{Z}}}\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\newcommand{\\getItem}{\\pmb{\\mid}}\n", "\\newcommand{\\getitemR}[1]{\\getItem{#1}}\n", "\\newcommand{\\getitemL}[1]{{#1}\\getItem}\n", "\\newcommand{\\elemR}[2]{{#1}^{\\phantom{\\T}}_{\\getitemR{#2}}} \n", "\\newcommand{\\elemRP}[2]{{\\big(#1\\big)}^{\\phantom{\\T}}_{\\getitemR{#2}}} \n", "\\newcommand{\\elemRPE}[2]{\\big({#1}^{\\phantom{\\T}}_{\\getitemR{#2}}\\big)}\n", "\\newcommand{\\elemL}[2]{ {_{\\getitemL{#2}}#1} }\n", "\\newcommand{\\elemLP}[2]{ {_{\\getitemL{#2}}\\left(#1\\right)} } \n", "\\newcommand{\\elemLPE}[2]{\\left( {_{\\getitemL{#2}}#1} \\right)}\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\newcommand{\\Vect}[2][{}]{{\\boldsymbol{#2}}_{#1}}\n", "\\newcommand{\\eleVR}[2] {\\elemR {\\Vect{#1}}{#2}}\t % con subindices\n", "\\newcommand{\\eleVRP}[2] {\\elemRP {\\Vect{#1}}{#2}} % con subindices y paréntesis interior\n", "\\newcommand{\\eleVRPE}[2]{\\elemRPE{\\Vect{#1}}{#2}} % con subindices y paréntesis exterior\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\newcommand{\\VectC}[2][{}] {\\elemR {\\Mat{#2}}{#1}} % con subindices\n", "\\newcommand{\\VectCP}[2][{}] {\\elemRP {\\Mat{#2}}{#1}} % con subindices y paréntesis\n", "\\newcommand{\\VectCPE}[2][{}]{\\elemRPE{\\Mat{#1}}{#2}} % con subindices y paréntesis exterior\n", "\\newcommand{\\VectF}[2] {\\elemL{\\Mat{#1}}{#2}} % con subindices\n", "\\newcommand{\\VectFP}[2] {\\elemL{(\\Mat{#1})}{#2}} % con subindices y paréntesis\n", "\\newcommand{\\VectFPE}[2] {\\elemLPE{\\Mat{#1}}{#2}} % con subindices y paréntesis exterior\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\newcommand{\\mat}[1]{\\boldsymbol{\\mathsf{#1}}}\n", "\\newcommand{\\Mat} [2][{}]{{\\mat{#2}}_{#1}} \n", "\\newcommand{\\T}{\\intercal}\n", "\\newcommand{\\MatT}[2][{}]{{\\mat{#2}}^{\\T}_{#1}}\n", "\\newcommand{\\VectCC}[2][{}] {\\elemRR {\\Mat{#2}}{#1}} % con ()\n", "\\newcommand{\\VectCCC}[2][{}] {\\elemRRR{\\Mat{#2}}{#1}} % con texto \"col\"\n", "%SELECCIÓNA de FILAS y COlUMNAS DE UNA MATRIZ TRANSPUESTA PARA GENERAR UN VECTOR DE Rn\n", "\\newcommand{\\VectTC}[2][{}] {\\elemR{\\MatT{#2}\\!}{#1}} % con subindices\n", "\\newcommand{\\VectTCC}[2][{}] {\\elemRR{ \\MatT{#2}}{#1}} % con ()\n", "\\newcommand{\\VectTCCC}[2][{}] {\\elemRRR{\\MatT{#2}}{#1}} % con texto \"col\"\n", "\\newcommand{\\dotprod}[2][{}] {\\Vect{#1}\\cdot\\Vect{#2}}\n", "$\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrices\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Definimos una matriz (en esta ocasión fila a fila)\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHQAAAA9CAIAAADzr9rUAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADU0lEQVR42u2cT46qQBDG0bA1AY4ANwC37mQyu9mgRyCeAPsIwA3kCDoHMNI7t8oNZOcW+wbzFuR1CCbvjd3Fnzb1bSQktl2fRTXNL4UWhqHWkGEYPyghGYbRdDIMQ73+iKJIQ8npcrnw4zRNNU2b1tnqNPTSiHmee543mUx837/dbv2HlOc5+E/nee44TpIkL32r6WGdxVOZSex2u6IosiyL45hSul6ve7bVcZyPjw9KKeCwSZIwxoIgIIQcDgepseqaIFZlqqrix8vlUtO0/itdXdCaM5HR6XTibgRBILwCRVEUhqFU5pqmyY9d121V9H40n88BRyOEEEL4MWMsz3Ph0aZQ0yrLsueyAK7H49HMGM/zbNsuikJ4QB1qZkVRNJdLFUUptSyreWa5XJZlOXDmJkkSRVGzSqioqqqqqmqesW1bptYBZO71eqWUytSm1rXZ2tc8F9ntdtuRv8952srlvs0lhOz3e6jwTNN86QaolWsysm2bMfZ4PPglWJalzPZKtiz4vh/HseoFgceiaVocx81/7tVdFVjmrlaretvHlzLLsuqTiioIgjRN5/O5bdtZlvHbsr7N3W6339/f9SLb3JL0b67rulBDZVlW31O6rhvHsed5MqNNwjA0DOPVfTTqv5nHGJuiEd0JzUVz0VwUmovmormoYcwFR1vDwjqxcPQu5rHZbGQegz5rt9sxxrIso5QSQtbr9fV67c1W8XBkGFpvaGtwWPdqOAAM7R+CRVuDwzqxcNRb0BSCdbpy5ioE6xTLXLVg3W8zd1i0VQsQ1vUTjr5YLGaz2W+WlKHQFhcgrOs6nM/Pz/v9rp/PZ8Mwvr6+Rn6JqQXrjscjY0yNBU1RWNehuVBoaySwTiAcZGidCBka3ueiuSg0F81Fc1ForvrminVtQWnMsE7WXMiuLaE/FbYPDbizToahQXVtvR+sA2BosF1bYhozrBM3F7xra2ySh3XiT8XAu7bGJnlYJ5654F1boxIIrNMlL5zWGZmuLV5t3gbWiZsL3rXFl5S3gXXiZQG8a2skAoR1UmUBtmtrDIKFdVLmwnZtCWu0sA4ZWidChqbCUzEUmovmvp+5aZpO/uo93pwwiEzT5DbWb8SbPD8ieIONwCBqYQvLsv4AIureXYPAOrAAAAAASUVORK5CYII=\n", "text/html": [ "
$\\left[ \\begin{array}{ccc}2&-1&0\\\\-1&2&-1\\\\0&-1&2\\\\ \\end{array} \\right]$
" ], "text/latex": [ "$\\left[ \\begin{array}{ccc}2&-1&0\\\\-1&2&-1\\\\0&-1&2\\\\ \\end{array} \\right]$" ], "text/plain": [ "Matrix([Vector([2, -1, 0]), Vector([-1, 2, -1]), Vector([0, -1, 2])])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = Matrix([[2,-1,0],[-1,2,-1],[0,-1,2]])\n", "A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculemos su inversa mediante eliminación por columnas de izquierda a derecha. Para ello pongamos la matriz identidad de orden 3 a su derecha\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALcAAAA+CAIAAADmsx3YAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEUElEQVR42u2dQVKrQBCGh5RbqwhHIDcAtu6C5QHQI0xuABwBOIFyBPUAVmCXKlfKDWTnlnCDvMW8onjxaRm6YWZIfytNaadn+DMzaf5qjMPhwAgMDMOY62QuNpuN0WO5XNL1PnOWy2VfEpvN5oIxxjkPw5BmhxC8vb11P2dZxhhbMMZM01z1OCliURSu6xqG4fv+x8fH9EMqigL9rYuiWK1WaZoqlSc8q19G6IvBNM2/KhnMw8NDVVV5nidJUpbl3d3dxPpYrVbX19dlWSKGTdO0bdsgCOI4fnp6UiRPeFagCGK7OQyiaZru5/V6zRg7TI7YK/uZQNhut91sBEFgmubv//fn4UPyhGQFjBCGIeccpJKjcAOyh/P4+IioEsdxulBie95utygqgeQJyQoYQahkgbVQ13U98Y6Dzn6/Fyd88avrurZtV1Wle1bwCBdYg6mqqn821pGyLC3L6r+yXq/rutY9K3gEnLUkTdMwDHWvtTRN0zRN/xXbtsUhX+us4BEQ1pL39/eyLIuiwFpgOec//IHneVEUjXRJvn7Cjj6FUoBnBYyAoJI4jsXRDKvwd9L3tKNPCQTbttu23e/33aJY1zVWvXFwnvCs4BGgO47v+0mSzKOu7/s+YyxJkv6lPbXMqGBW8AigteT29lYUdLtzq2VZ4kVNCYIgyzLP82zbzvM8juN5ZAWNMLhe8t8li3M+cb3k/v6+XwwA0jSN4ziMMcdxTq1J/FwvgeQJyQoYQdRLDM65aZq49yzOk1k6B6Ioatt2QVeXmKheQpBKCFIJQZBKCFIJQSoh5q0SdDuqXIOtIq5VWTksxphQdDuqRIOtCq5V+TlgORpHtaNKN9j+ZjjfZQV3rUp0ziI7Go/wPA8xWv+es+M40zuDIMOJ47i7uxbHcdu2w7w4EnPQ7/Sql8FWBS+tQr7XydDLYKuCl1YV3+tkaGewVcFLO53vVa4dVYBosJ1yOCp4aaG+16urq8vLy9+cH2XZUftHMCyD7WTDQfTSSsnh5ubm8/NzsdvtXl9f1V+6NTXYquClheTw8vKy2+30OL1qbbBVwUsLzGFElQijJZwoip6fn8VZvV8MnFglg4eT57n49u44TpIkrutqlwP5XtEg3ytx1pBKCFIJQSohSCUEqYQglRCkkn8YozvqSe+uhcF2sm6tY8wVVCXo3VFPnTUtDLaSu7XC5wrie8VydM7DYMtG871KdM4i9HuF9yFVrd8rpIPtdyqR2K0VPldQd7Sa3VERQTHYqtCtFc7we8JqdkdFBMVgq0K3VpnfcdTsjooFlsFWhW6tMtcSNo6jc2YGW6ZAt1aZKhmpO+rMDLYqdGuFz9XwHUfN7qhwcA22KnRrlbzjqNkdFcIYBlv53VrhAJ+iBOxDqlS/V2AH2+/qJRK7tcLnivq9IkO+V+KsIZUQpBKCVEJMp5Isy+gJ9kRH/wn24tnkxtfbBDOojBEQjsxslmX9AXLc6N763XFGAAAAAElFTkSuQmCC\n", "text/html": [ "$\\left[ \\begin{array}{ccc|ccc}2&-1&0&1&0&0\\\\-1&2&-1&0&1&0\\\\0&-1&2&0&0&1\\\\ \\end{array} \\right]$
" ], "text/latex": [ "$\\left[ \\begin{array}{ccc|ccc}2&-1&0&1&0&0\\\\-1&2&-1&0&1&0\\\\0&-1&2&0&0&1\\\\ \\end{array} \\right]$" ], "text/plain": [ "Matrix([Vector([2, -1, 0]), Vector([-1, 2, -1]), Vector([0, -1, 2]), Vector([1, 0, 0]), Vector([0, 1, 0]), Vector([0, 0, 1])])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Aampliada = A.concatena(I(3),1)\n", "Aampliada" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y ahora apliquemos la elimnación\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[ \\begin{array}{ccc}2&-1&0\\\\-1&2&-1\\\\0&-1&2\\\\ \\hline 1&0&0\\\\0&1&0\\\\0&0&1\\\\ \\end{array} \\right]\\xrightarrow{\\underset{\\begin{subarray}{c} \\left[\\left(2\\right)\\mathbf{2}\\right]\\\\\\left[\\left(1\\right)\\mathbf{1}+\\mathbf{2} \\right]\\end{subarray}}{\\pmb{\\tau}}}\\left[ \\begin{array}{ccc}2&0&0\\\\-1&3&-1\\\\0&-2&2\\\\ \\hline 1&1&0\\\\0&2&0\\\\0&0&1\\\\ \\end{array} \\right]\\xrightarrow{\\underset{\\begin{subarray}{c} \\left[\\left(3\\right)\\mathbf{1}\\right]\\\\\\left[\\left(1\\right)\\mathbf{2}+\\mathbf{1} \\right]\\\\\\left[\\left(3\\right)\\mathbf{3}\\right]\\\\\\left[\\left(1\\right)\\mathbf{2}+\\mathbf{3} \\right]\\end{subarray}}{\\pmb{\\tau}}}\\left[ \\begin{array}{ccc}6&0&0\\\\0&3&0\\\\-2&-2&4\\\\ \\hline 4&1&1\\\\2&2&2\\\\0&0&3\\\\ \\end{array} \\right]\\xrightarrow{\\underset{\\begin{subarray}{c} \\left[\\left(2\\right)\\mathbf{1}\\right]\\\\\\left[\\left(1\\right)\\mathbf{3}+\\mathbf{1} \\right]\\\\\\left[\\left(2\\right)\\mathbf{2}\\right]\\\\\\left[\\left(1\\right)\\mathbf{3}+\\mathbf{2} \\right]\\end{subarray}}{\\pmb{\\tau}}}\\left[ \\begin{array}{ccc}12&0&0\\\\0&6&0\\\\0&0&4\\\\ \\hline 9&3&1\\\\6&6&2\\\\3&3&3\\\\ \\end{array} \\right]\\xrightarrow{\\underset{\\begin{subarray}{c} \\left[\\left(\\frac{1}{12}\\right)\\mathbf{1}\\right]\\\\\\left[\\left(\\frac{1}{6}\\right)\\mathbf{2}\\right]\\\\\\left[\\left(\\frac{1}{4}\\right)\\mathbf{3}\\right]\\end{subarray}}{\\pmb{\\tau}}}\\left[ \\begin{array}{ccc}1&0&0\\\\0&1&0\\\\0&0&1\\\\ \\hline \\frac{3}{4}&\\frac{1}{2}&\\frac{1}{4}\\\\\\frac{1}{2}&1&\\frac{1}{2}\\\\\\frac{1}{4}&\\frac{1}{2}&\\frac{3}{4}\\\\ \\end{array} \\right]$" ], "text/plain": [ "$\\left[ \\begin{array}{ccc}\\frac{3}{4}&\\frac{1}{2}&\\frac{1}{4}\\\\\\frac{1}{2}&1&\\frac{1}{2}\\\\\\frac{1}{4}&\\frac{1}{2}&\\frac{3}{4}\\\\ \\end{array} \\right]$
" ], "text/latex": [ "$\\left[ \\begin{array}{ccc}\\frac{3}{4}&\\frac{1}{2}&\\frac{1}{4}\\\\\\frac{1}{2}&1&\\frac{1}{2}\\\\\\frac{1}{4}&\\frac{1}{2}&\\frac{3}{4}\\\\ \\end{array} \\right]$" ], "text/plain": [ "Matrix([Vector([3/4, 1/2, 1/4]), Vector([1/2, 1, 1/2]), Vector([1/4, 1/2, 3/4])])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.inversa(1)" ] }, { "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.9.2" }, "org": [ null, null ] }, "nbformat": 4, "nbformat_minor": 1 }