{ "cells": [ { "cell_type": "markdown", "id": "adult-checkout", "metadata": {}, "source": [ "$\n", "\\renewcommand{\\R}[1][{}]{{\\mathbb{R}}^{#1}}\n", "\\renewcommand{\\Z}[1][{}]{{\\mathbb{Z}}^{#1}}\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\renewcommand{\\getItem}{\\pmb{\\mid}}\n", "\\renewcommand{\\getitemR}[1]{\\getItem{#1}}\n", "\\newcommand{\\getitemL}[1]{{#1}\\getItem}\n", "\\renewcommand{\\elemR}[2]{{#1}^{\\phantom{\\T}}_{\\getitemR{#2}}} \n", "\\renewcommand{\\elemRP}[2]{{\\big(#1\\big)}^{\\phantom{\\T}}_{\\getitemR{#2}}} \n", "\\renewcommand{\\elemRPE}[2]{\\big({#1}^{\\phantom{\\T}}_{\\getitemR{#2}}\\big)}\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\renewcommand{\\Vect}[2][{}]{{\\boldsymbol{#2}}_{#1}}\n", "\\renewcommand{\\eleVR}[2] {\\elemR {\\Vect{#1}}{#2}} % con subindices\n", "\\renewcommand{\\eleVRP}[2] {\\elemRP {\\Vect{#1}}{#2}} % con subindices y paréntesis interior\n", "\\renewcommand{\\eleVRPE}[2]{\\elemRPE{\\Vect{#1}}{#2}} % con subindices y paréntesis exterior\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\renewcommand{\\VectC}[2][{}] {\\elemR {\\Mat{#2}}{#1}} % con subindices\n", "\\renewcommand{\\VectCP}[2][{}] {\\elemRP {\\Mat{#2}}{#1}} % con subindices y paréntesis\n", "\\renewcommand{\\VectCPE}[2][{}]{\\elemRPE{\\Mat{#2}}{#1}} % con subindices y paréntesis exterior\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\\renewcommand{\\mat}[1]{\\mathbf{#1}}\n", "\\renewcommand{\\Mat} [2][{}]{{\\mat{#2}}_{#1}} \n", "\\renewcommand{\\T}{\\intercal}\n", "\\renewcommand{\\MatT}[2][{}]{{\\mat{#2}}^{\\T}_{#1}}\n", "\\renewcommand{\\VectCC}[2][{}] {\\elemRR {\\Mat{#2}}{#1}} % con ()\n", "\\renewcommand{\\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", "\\renewcommand{\\VectTC}[2][{}] {\\elemR{\\MatT{#2}\\!}{#1}} % con subindices\n", "\\renewcommand{\\VectTCC}[2][{}] {\\elemRR{ \\MatT{#2}}{#1}} % con ()\n", "\\renewcommand{\\VectTCCC}[2][{}] {\\elemRRR{\\MatT{#2}}{#1}} % con texto \"col\"\n", "\\renewcommand{\\dotprod}[2][{}] {\\Vect{#1}\\cdot\\Vect{#2}}\n", "$" ] }, { "cell_type": "markdown", "id": "artistic-possible", "metadata": {}, "source": [ "${\\huge\\text{Jupyter notebook de la Lección 13}}$" ] }, { "cell_type": "code", "execution_count": null, "id": "computational-opposition", "metadata": {}, "outputs": [], "source": [ "from nacal import *" ] }, { "cell_type": "code", "execution_count": null, "id": "studied-giving", "metadata": {}, "outputs": [], "source": [ "from IPython.display import YouTubeVideo" ] }, { "cell_type": "markdown", "id": "religious-apparel", "metadata": {}, "source": [ "# Función determinante\n", "## Definición \n", "\n", "Vea el primer vídeo de la lección" ] }, { "cell_type": "code", "execution_count": null, "id": "limited-worship", "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('B3mUB8qRkEo')" ] }, { "cell_type": "markdown", "id": "typical-defendant", "metadata": {}, "source": [ "Ahora léase la sección 13.1 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf)" ] }, { "cell_type": "markdown", "id": "international-status", "metadata": {}, "source": [ "Aún no hemos visto cómo calcular el valor del determinante, pero el módulo NAcAL ya \n", "sabe hacerlo (más adelante veremos cómo lo calcula).\n", "\n", "Por ahora sepa que la forma de obtener su valor es invocando al procedimiento \n", "`determinante()`. Por ejemplo:" ] }, { "cell_type": "code", "execution_count": null, "id": "binary-joshua", "metadata": {}, "outputs": [], "source": [ "a=Vector([1,3,2])\n", "b=Vector([-1,-1,0])\n", "c=Vector([2,1,5])\n", "A = Matrix([a,b,c])\n", "A" ] }, { "cell_type": "code", "execution_count": null, "id": "brazilian-stable", "metadata": {}, "outputs": [], "source": [ "A.determinante()" ] }, { "cell_type": "markdown", "id": "cubic-semiconductor", "metadata": {}, "source": [ "El determinante solo está definido para matrices cuadradas. \n", "Si pedimos el valor del determinante de una matriz 3 por 2 obtendremos un error." ] }, { "cell_type": "code", "execution_count": null, "id": "absolute-benchmark", "metadata": {}, "outputs": [], "source": [ "# Matrix([a,b]).determinante() # Des-comente esta línea" ] }, { "cell_type": "markdown", "id": "american-negative", "metadata": {}, "source": [ "El determinante de cualquier matriz identidad es 1" ] }, { "cell_type": "code", "execution_count": null, "id": "opening-cartridge", "metadata": {}, "outputs": [], "source": [ "I(15).determinante()" ] }, { "cell_type": "markdown", "id": "dental-breakfast", "metadata": {}, "source": [ "Si sumamos una columna a otra, el determinante no cambia" ] }, { "cell_type": "code", "execution_count": null, "id": "applied-recording", "metadata": {}, "outputs": [], "source": [ "Matrix([a, b+c ,c]).determinante()" ] }, { "cell_type": "markdown", "id": "centered-spectrum", "metadata": {}, "source": [ "Multiplicar una columna por un número, multiplica el determinante por dicho número" ] }, { "cell_type": "code", "execution_count": null, "id": "impressive-clothing", "metadata": {}, "outputs": [], "source": [ "Matrix([a, -3*b ,c]).determinante()" ] }, { "cell_type": "markdown", "id": "blond-brisbane", "metadata": {}, "source": [ "## Propiedades 4 a 6 (Matriz con una columna de ceros y transformaciones elementales)\n", "Vea el segundo vídeo de la lección" ] }, { "cell_type": "code", "execution_count": null, "id": "freelance-bobby", "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('SeNNLFLdJoo')" ] }, { "cell_type": "markdown", "id": "interim-hungary", "metadata": {}, "source": [ "Léase las secciones 13.2.1 y 13.2.2 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf)\n", "e intente repetir de nuevo las demostraciones." ] }, { "cell_type": "markdown", "id": "identical-gothic", "metadata": {}, "source": [ "Ahora sabemos que si la matriz tiene una columna de ceros su determinante es cero" ] }, { "cell_type": "code", "execution_count": null, "id": "documented-assembly", "metadata": {}, "outputs": [], "source": [ "Matrix([a, b , V0(3)]).determinante()" ] }, { "cell_type": "markdown", "id": "checked-violation", "metadata": {}, "source": [ "que aplicar una transformación elemental de __Tipo I__ \n", "a las columnas no modifica el determinante" ] }, { "cell_type": "code", "execution_count": null, "id": "composed-astronomy", "metadata": {}, "outputs": [], "source": [ "T((-25,3,2))" ] }, { "cell_type": "code", "execution_count": null, "id": "heated-project", "metadata": {}, "outputs": [], "source": [ "B = Matrix(A) & T((-25,3,2))\n", "B" ] }, { "cell_type": "code", "execution_count": null, "id": "welsh-venture", "metadata": {}, "outputs": [], "source": [ "B.determinante()" ] }, { "cell_type": "markdown", "id": "important-angel", "metadata": {}, "source": [ "y que aplicar una transformación elemental de __Tipo II__ que multiplica \n", "por $\\alpha$ una de las a las columnas multiplica el determinante por $\\alpha$" ] }, { "cell_type": "code", "execution_count": null, "id": "young-tobacco", "metadata": {}, "outputs": [], "source": [ "alpha = -3\n", "T((alpha,2))" ] }, { "cell_type": "code", "execution_count": null, "id": "common-chester", "metadata": {}, "outputs": [], "source": [ "C = Matrix(A) & T((alpha,2))\n", "C" ] }, { "cell_type": "code", "execution_count": null, "id": "streaming-bristol", "metadata": {}, "outputs": [], "source": [ "C.determinante()" ] }, { "cell_type": "markdown", "id": "annual-quantum", "metadata": {}, "source": [ "## Secuencias de transformaciones elementales\n", "Vea el tercer vídeo de la lección" ] }, { "cell_type": "code", "execution_count": null, "id": "homeless-humor", "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('grE3dSwk368')" ] }, { "cell_type": "markdown", "id": "dried-graduation", "metadata": {}, "source": [ "Ahora léase la Sección 13.2.3 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf) \n", "e intente repetir de nuevo las demostraciones." ] }, { "cell_type": "markdown", "id": "pressed-producer", "metadata": {}, "source": [ "Consideremos la siguiente sucesión de transformaciones elementales de __Tipo I__" ] }, { "cell_type": "code", "execution_count": null, "id": "contrary-adjustment", "metadata": {}, "outputs": [], "source": [ "h=T([ (-2, 1, 2), (-3, 1, 3), (-4, 1, 2), (-5, 1, 3), (-2, 2, 3), (4, 2, 1), (5, 3, 2) ])\n", "h" ] }, { "cell_type": "markdown", "id": "downtown-sally", "metadata": {}, "source": [ "Si las aplicamos sobre las columnas de $\\Mat{A}$, obtenemos una nueva matriz \n", "$\\Mat{D}$, pero con el mismo determinante que $\\Mat{A}$" ] }, { "cell_type": "code", "execution_count": null, "id": "assumed-blend", "metadata": {}, "outputs": [], "source": [ "D = Matrix(A) & h\n", "D" ] }, { "cell_type": "code", "execution_count": null, "id": "conceptual-lightweight", "metadata": {}, "outputs": [], "source": [ "D.determinante()" ] }, { "cell_type": "markdown", "id": "copyrighted-reality", "metadata": {}, "source": [ "Si aplicamos la secuencia de transformaciones sobre la matriz identidad, \n", "la matriz obtenida debe tener determinante 1" ] }, { "cell_type": "code", "execution_count": null, "id": "documentary-acrobat", "metadata": {}, "outputs": [], "source": [ "(I(3) & h).determinante()" ] }, { "cell_type": "markdown", "id": "wicked-madness", "metadata": {}, "source": [ "Consideremos otra secuencia de transformaciones elementales \n", "(esta vez tanto de __Tipo I__ como de __Tipo II__)" ] }, { "cell_type": "code", "execution_count": null, "id": "blank-ready", "metadata": {}, "outputs": [], "source": [ "f = T([(3, 2), (7, 1, 2), (3, 3), (-8, 1, 3), (-2, 3), (17, 2, 3), (-2, 3, 1), (1, 3, 2), {3, 1} ])\n", "f" ] }, { "cell_type": "markdown", "id": "hairy-services", "metadata": {}, "source": [ "Si aplicamos dicha secuencia de transformaciones a la matriz identidad de orden 3 \n", "obtenemos la matriz $\\Mat{F}$" ] }, { "cell_type": "code", "execution_count": null, "id": "precise-mentor", "metadata": {}, "outputs": [], "source": [ "F = I(3) & f\n", "F" ] }, { "cell_type": "markdown", "id": "intermediate-brave", "metadata": {}, "source": [ "cuyo determinante es" ] }, { "cell_type": "code", "execution_count": null, "id": "certified-velvet", "metadata": {}, "outputs": [], "source": [ "F.determinante()" ] }, { "cell_type": "markdown", "id": "communist-artwork", "metadata": {}, "source": [ "Si calculamos el determinante del producto $|\\Mat{AF}|$ obtenemos:" ] }, { "cell_type": "code", "execution_count": null, "id": "desirable-department", "metadata": {}, "outputs": [], "source": [ "(A*F).determinante()" ] }, { "cell_type": "markdown", "id": "identical-decrease", "metadata": {}, "source": [ "y si calculamos el producto de los determinantes $|\\Mat{A}|$ y $|\\Mat{F}|$ \n", "obtenemos el mismo resultado:" ] }, { "cell_type": "code", "execution_count": null, "id": "spectacular-mechanics", "metadata": {}, "outputs": [], "source": [ "A.determinante() * F.determinante()" ] }, { "cell_type": "markdown", "id": "cheap-senegal", "metadata": {}, "source": [ "## Propiedad Antisimétrica. Determinante de la matriz inversa. Determinante de un producto de matrices" ] }, { "cell_type": "markdown", "id": "solved-symphony", "metadata": {}, "source": [ "Recuerde que el intercambio de columnas es equivalente \n", "a una secuencia de transformaciones elementales de __Tipo I__ más una de __Tipo II__ \n", "que multiplica una de las columnas intercambiadas por `-1`" ] }, { "cell_type": "code", "execution_count": null, "id": "hollywood-incident", "metadata": {}, "outputs": [], "source": [ "i = 2\n", "j = 3\n", "transf = T( (-1, j) ) & T( (-1, j, i) ) & T( (1, i, j) ) & T( (-1, j, i) )\n", "transf" ] }, { "cell_type": "code", "execution_count": null, "id": "advisory-engineering", "metadata": {}, "outputs": [], "source": [ "I(4) & transf" ] }, { "cell_type": "markdown", "id": "viral-phase", "metadata": {}, "source": [ "Vea el cuarto vídeo de la lección" ] }, { "cell_type": "code", "execution_count": null, "id": "better-analysis", "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('fYFAN3mqCMs')" ] }, { "cell_type": "markdown", "id": "transparent-salon", "metadata": {}, "source": [ "Ahora léase la última propiedad de la Sección 13.2.3 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf)\n", "\n", "Lea también la Sección 13.2.4 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf) \n", "e intente repetir de nuevo las demostraciones." ] }, { "cell_type": "code", "execution_count": null, "id": "virtual-shooting", "metadata": {}, "outputs": [], "source": [ "a=Vector([1,3,2])\n", "b=Vector([-1,-1,0])\n", "c=Vector([2,1,5])\n", "A = Matrix([a,b,c])\n", "A.determinante()" ] }, { "cell_type": "markdown", "id": "pleased-clark", "metadata": {}, "source": [ "Intercambiar dos columnas cambia el signo del determinante" ] }, { "cell_type": "code", "execution_count": null, "id": "celtic-sustainability", "metadata": {}, "outputs": [], "source": [ "Matrix([b,a,c]).determinante()" ] }, { "cell_type": "code", "execution_count": null, "id": "deadly-gossip", "metadata": {}, "outputs": [], "source": [ "(Matrix(A) & T({2,3})).determinante()" ] }, { "cell_type": "markdown", "id": "timely-wagner", "metadata": {}, "source": [ "El determinante de una matriz singular es nulo" ] }, { "cell_type": "code", "execution_count": null, "id": "balanced-liverpool", "metadata": {}, "outputs": [], "source": [ "Matrix([a,a,c]).determinante()" ] }, { "cell_type": "markdown", "id": "adult-saturn", "metadata": {}, "source": [ "El determinante de la matriz inversa es el inverso del determinante" ] }, { "cell_type": "code", "execution_count": null, "id": "piano-senegal", "metadata": {}, "outputs": [], "source": [ "(A**-1 ).determinante()" ] }, { "cell_type": "markdown", "id": "further-public", "metadata": {}, "source": [ "## Determinante de la transpuesta y transformaciones elementales de las filas\n", "Vea el quinto vídeo de la lección" ] }, { "cell_type": "code", "execution_count": null, "id": "blind-activity", "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('C_onBoIRLxI')" ] }, { "cell_type": "markdown", "id": "middle-threat", "metadata": {}, "source": [ "Ahora léase la Sección 13.2.5 del \n", "[**libro**](https://github.com/mbujosab/CursoDeAlgebraLineal/blob/master/libro.pdf) \n", "e intente repetir de nuevo las demostraciones." ] }, { "cell_type": "markdown", "id": "realistic-ministry", "metadata": {}, "source": [ "La transposición no cambia el determinante" ] }, { "cell_type": "code", "execution_count": null, "id": "cultural-third", "metadata": {}, "outputs": [], "source": [ "A.determinante()" ] }, { "cell_type": "code", "execution_count": null, "id": "official-civilian", "metadata": {}, "outputs": [], "source": [ "(~A).determinante()" ] }, { "cell_type": "markdown", "id": "embedded-cannon", "metadata": {}, "source": [ "Las transformaciones elementales de las filas tienen el mismo efecto \n", "que las transformaciones elementales de las columnas" ] }, { "cell_type": "code", "execution_count": null, "id": "agreed-harvey", "metadata": {}, "outputs": [], "source": [ "T((100,1,2)) & Matrix(A)" ] }, { "cell_type": "code", "execution_count": null, "id": "green-metallic", "metadata": {}, "outputs": [], "source": [ "( T((100,1,2)) & Matrix(A) ).determinante()" ] }, { "cell_type": "code", "execution_count": null, "id": "fallen-carrier", "metadata": {}, "outputs": [], "source": [ "T((100,3)) & Matrix(A)" ] }, { "cell_type": "code", "execution_count": null, "id": "shaped-possession", "metadata": {}, "outputs": [], "source": [ "( T((100,3)) & Matrix(A) ).determinante()" ] }, { "cell_type": "code", "execution_count": null, "id": "right-guitar", "metadata": {}, "outputs": [], "source": [ "T( {1,3} ) & Matrix(A)" ] }, { "cell_type": "code", "execution_count": null, "id": "buried-fishing", "metadata": {}, "outputs": [], "source": [ "( T({1,3}) & Matrix(A) ).determinante()" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 5 }