Upload via hfc (batch)
Browse filesUploaded using hfc tool
This view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +8 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/05-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Producto EscalarVectores Conceptos y Propiedades Básicas.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Producto EscalarVectores Conceptos y Propiedades Básicas.vtt +883 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-producto_escalar_383fadd8-6e92-4690-aefe-72a7454fa87a.ipynb +472 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Lecturas recomendadas.txt +2 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Operaciones con Escalares y Vectores en Python usando NumPy.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Operaciones con Escalares y Vectores en Python usando NumPy.vtt +883 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-producto_escalar_ca62b4c4-85e7-449a-8a01-424da3f688a7.ipynb +472 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Producto Interno de Vectores Definición y Propiedades.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Producto Interno de Vectores Definición y Propiedades.vtt +712 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-producto_interno_a8f30484-9414-46fd-849b-c4125cd68a19.ipynb +447 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Producto Interno de Vectores en Python con NumPy.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Producto Interno de Vectores en Python con NumPy.vtt +604 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-producto_interno_554a11a7-c20a-4a1c-99e8-4408610d53ae.ipynb +447 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Análisis de Sentimientos de Tweets con Vectores de Palabras.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Análisis de Sentimientos de Tweets con Vectores de Palabras.vtt +787 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Resumen.html +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-producto_interno_d76312cb-c13c-4a95-9c40-827332ec9fef.ipynb +447 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-16-18-am_814169ee-b3bd-4e99-aa84-2fba65f26816.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_8975d699-1c37-4b6b-a9f7-f8c2b86e0c8e.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_af62d54c-3dc7-42ee-b203-dbbc6f8bbdd8.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_d85e6d28-607e-4064-b558-a9bad63631b8.png +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Funciones Lineales Transformación de Vectores en Escalares.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Funciones Lineales Transformación de Vectores en Escalares.vtt +607 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Resumen.html +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_1_ca9b4768-2259-46e4-8050-1f11fcb161f2.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_2_a7a8105b-6058-423e-83cf-1a120fa9dbea.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_t1_a1432d51-f125-4847-b35a-aece8c65e623.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_t2_40750924-caa5-49c7-ba5d-2d82e4ed6b3c.png +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-funciones_lineales_c6d37f3c-958c-4696-be10-f62382807f2c.ipynb +603 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Funciones Lineales y Propiedades de Superposición.mp4 +3 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Funciones Lineales y Propiedades de Superposición.vtt +700 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Lecturas recomendadas.txt +1 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Resumen.html +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_1_e9705b8d-df25-4f93-9a4b-0290357a6c0c.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_2_869e4304-cce7-43be-9ed0-d36af00c8797.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_t1_9abd2d3c-38bc-4596-9bc7-7cb2b4b0d72e.png +0 -0
- a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_t2_5f9fbb8a-3b72-4513-b759-b5d63f6b3590.png +0 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-funciones_lineales_d6135d0f-fc5c-405c-b74f-b88766a8ce07.ipynb +603 -0
- a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/03-Teoremas y Corolarios en Funciones Lineales.mp4 +3 -0
.gitattributes
CHANGED
|
@@ -575,3 +575,11 @@ a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:s
|
|
| 575 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/03-Modelo[[:space:]]RGB[[:space:]]y[[:space:]]su[[:space:]]implementación[[:space:]]en[[:space:]]Python.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 576 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/04-Adición[[:space:]]de[[:space:]]Vectores[[:space:]]Conceptos[[:space:]]y[[:space:]]Propiedades[[:space:]]Básicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 577 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/05-Suma[[:space:]]de[[:space:]]Vectores[[:space:]]en[[:space:]]Python[[:space:]]con[[:space:]]NumPy.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 575 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/03-Modelo[[:space:]]RGB[[:space:]]y[[:space:]]su[[:space:]]implementación[[:space:]]en[[:space:]]Python.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 576 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/04-Adición[[:space:]]de[[:space:]]Vectores[[:space:]]Conceptos[[:space:]]y[[:space:]]Propiedades[[:space:]]Básicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 577 |
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/05-Suma[[:space:]]de[[:space:]]Vectores[[:space:]]en[[:space:]]Python[[:space:]]con[[:space:]]NumPy.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 578 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/06-Producto[[:space:]]EscalarVectores[[:space:]]Conceptos[[:space:]]y[[:space:]]Propiedades[[:space:]]Básicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 579 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/07-Operaciones[[:space:]]con[[:space:]]Escalares[[:space:]]y[[:space:]]Vectores[[:space:]]en[[:space:]]Python[[:space:]]usando[[:space:]]NumPy.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 580 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/08-Producto[[:space:]]Interno[[:space:]]de[[:space:]]Vectores[[:space:]]Definición[[:space:]]y[[:space:]]Propiedades.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 581 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/09-Producto[[:space:]]Interno[[:space:]]de[[:space:]]Vectores[[:space:]]en[[:space:]]Python[[:space:]]con[[:space:]]NumPy.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 582 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/02-Vectores/10-Análisis[[:space:]]de[[:space:]]Sentimientos[[:space:]]de[[:space:]]Tweets[[:space:]]con[[:space:]]Vectores[[:space:]]de[[:space:]]Palabras.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 583 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/03-Funciones[[:space:]]lineales/01-Funciones[[:space:]]Lineales[[:space:]]Transformación[[:space:]]de[[:space:]]Vectores[[:space:]]en[[:space:]]Escalares.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 584 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/03-Funciones[[:space:]]lineales/02-Funciones[[:space:]]Lineales[[:space:]]y[[:space:]]Propiedades[[:space:]]de[[:space:]]Superposición.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 585 |
+
a/Curso[[:space:]]de[[:space:]]Introducción[[:space:]]al[[:space:]]Álgebra[[:space:]]Lineal[[:space:]]Vectores/03-Funciones[[:space:]]lineales/03-Teoremas[[:space:]]y[[:space:]]Corolarios[[:space:]]en[[:space:]]Funciones[[:space:]]Lineales.mp4 filter=lfs diff=lfs merge=lfs -text
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/05-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1uF1QvMQBR9B-UPPUKg8d4DVuZNROqUA_?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Producto EscalarVectores Conceptos y Propiedades Básicas.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:69267f4e501e1dd6c0f7f691293c3b5d98da9d582ede0e28e05b28692c8eeafc
|
| 3 |
+
size 156539143
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Producto EscalarVectores Conceptos y Propiedades Básicas.vtt
ADDED
|
@@ -0,0 +1,883 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.120 --> 00:00:05.759
|
| 4 |
+
Hola, te doy la bienvenida de nuevo. Quizá
|
| 5 |
+
|
| 6 |
+
00:00:05.759 --> 00:00:08.100
|
| 7 |
+
no te das cuenta, pero ya hemos avanzado
|
| 8 |
+
|
| 9 |
+
00:00:08.160 --> 00:00:10.960
|
| 10 |
+
una gran parte de este camino. Lo que
|
| 11 |
+
|
| 12 |
+
00:00:10.960 --> 00:00:14.705
|
| 13 |
+
veremos hoy es el producto entre escalares y
|
| 14 |
+
|
| 15 |
+
00:00:14.705 --> 00:00:18.305
|
| 16 |
+
vectores. Antes ya vimos una operación entre vectores,
|
| 17 |
+
|
| 18 |
+
00:00:18.305 --> 00:00:20.625
|
| 19 |
+
que era la suma. En este vamos a
|
| 20 |
+
|
| 21 |
+
00:00:20.625 --> 00:00:23.904
|
| 22 |
+
ver cómo podemos relacionar los escalares y los
|
| 23 |
+
|
| 24 |
+
00:00:23.904 --> 00:00:26.510
|
| 25 |
+
vectores. Vamos a hacer un poco de memoria,
|
| 26 |
+
|
| 27 |
+
00:00:26.810 --> 00:00:29.130
|
| 28 |
+
revisitemos los conceptos o lo que hemos visto
|
| 29 |
+
|
| 30 |
+
00:00:29.130 --> 00:00:32.090
|
| 31 |
+
rápidamente. Vimos lo que era un vector y
|
| 32 |
+
|
| 33 |
+
00:00:32.090 --> 00:00:34.890
|
| 34 |
+
vimos también lo que era un escalar. Dijimos
|
| 35 |
+
|
| 36 |
+
00:00:34.890 --> 00:00:36.650
|
| 37 |
+
que un vector era una lista finita de
|
| 38 |
+
|
| 39 |
+
00:00:36.650 --> 00:00:42.045
|
| 40 |
+
coeficientes o una lista finita de elementos, mientras
|
| 41 |
+
|
| 42 |
+
00:00:42.045 --> 00:00:44.524
|
| 43 |
+
que el escalar se refería un a un
|
| 44 |
+
|
| 45 |
+
00:00:44.524 --> 00:00:48.045
|
| 46 |
+
único elemento, a un único número. También vimos
|
| 47 |
+
|
| 48 |
+
00:00:48.045 --> 00:00:51.425
|
| 49 |
+
que los escalares son elementos de los campos
|
| 50 |
+
|
| 51 |
+
00:00:51.805 --> 00:00:55.150
|
| 52 |
+
escalares, de los campos, y vimos que los
|
| 53 |
+
|
| 54 |
+
00:00:55.150 --> 00:01:00.250
|
| 55 |
+
vectores son elementos de los espacios vectoriales. Vimos
|
| 56 |
+
|
| 57 |
+
00:01:00.750 --> 00:01:04.430
|
| 58 |
+
cómo operar entre dos elementos de un espacio
|
| 59 |
+
|
| 60 |
+
00:01:04.430 --> 00:01:07.115
|
| 61 |
+
vectorial, la suma entre vectores, por ejemplo, y
|
| 62 |
+
|
| 63 |
+
00:01:07.115 --> 00:01:10.575
|
| 64 |
+
de misma manera vimos el modelo auditivo RGB.
|
| 65 |
+
|
| 66 |
+
00:01:11.195 --> 00:01:13.295
|
| 67 |
+
Ahora vamos a ir un poco más allá.
|
| 68 |
+
|
| 69 |
+
00:01:14.715 --> 00:01:17.515
|
| 70 |
+
Vamos a ver cómo tomar un elemento del
|
| 71 |
+
|
| 72 |
+
00:01:17.515 --> 00:01:19.674
|
| 73 |
+
campo escalar y vamos a ver cómo tomar
|
| 74 |
+
|
| 75 |
+
00:01:19.674 --> 00:01:22.870
|
| 76 |
+
un elemento del espacio vectorial y combinarlos. De
|
| 77 |
+
|
| 78 |
+
00:01:22.870 --> 00:01:25.590
|
| 79 |
+
igual manera, vamos a ver más adelante cuál
|
| 80 |
+
|
| 81 |
+
00:01:25.590 --> 00:01:29.590
|
| 82 |
+
es la interpretación geométrica de todo esto. Sin
|
| 83 |
+
|
| 84 |
+
00:01:29.590 --> 00:01:33.510
|
| 85 |
+
más, vamos a la computadora. Este notebook es
|
| 86 |
+
|
| 87 |
+
00:01:33.510 --> 00:01:36.315
|
| 88 |
+
un nuevo notebook, no te preocupes para nada,
|
| 89 |
+
|
| 90 |
+
00:01:36.395 --> 00:01:38.395
|
| 91 |
+
lo vas a tener disponible siempre y vas
|
| 92 |
+
|
| 93 |
+
00:01:38.395 --> 00:01:40.975
|
| 94 |
+
a poder consultarlo siempre que lo quieras consultar.
|
| 95 |
+
|
| 96 |
+
00:01:42.075 --> 00:01:46.715
|
| 97 |
+
Así bien, vamos a empezar definiendo lo que
|
| 98 |
+
|
| 99 |
+
00:01:46.715 --> 00:01:49.740
|
| 100 |
+
va a ser la multiplicación escalar vector. En
|
| 101 |
+
|
| 102 |
+
00:01:49.740 --> 00:01:53.209
|
| 103 |
+
este caso, simplemente tomemos un vector, un n
|
| 104 |
+
|
| 105 |
+
00:01:53.209 --> 00:01:56.678
|
| 106 |
+
vector b cualquiera, es decir, un vector de
|
| 107 |
+
|
| 108 |
+
00:01:56.678 --> 00:02:01.020
|
| 109 |
+
RNY alfa un escalar del campo de los
|
| 110 |
+
|
| 111 |
+
00:02:01.020 --> 00:02:05.365
|
| 112 |
+
reales, y definamos, a su vez, el vector
|
| 113 |
+
|
| 114 |
+
00:02:05.424 --> 00:02:09.425
|
| 115 |
+
x como la multiplicación de el escalar alfa
|
| 116 |
+
|
| 117 |
+
00:02:09.425 --> 00:02:14.145
|
| 118 |
+
por el vector b. Si recordamos de las
|
| 119 |
+
|
| 120 |
+
00:02:14.145 --> 00:02:18.659
|
| 121 |
+
clases pasadas, nosotros hablamos de notación y dijimos
|
| 122 |
+
|
| 123 |
+
00:02:18.659 --> 00:02:21.060
|
| 124 |
+
que en algunos casos íbamos a reservar el
|
| 125 |
+
|
| 126 |
+
00:02:21.060 --> 00:02:24.500
|
| 127 |
+
uso de letras griegas para escalares. Este es
|
| 128 |
+
|
| 129 |
+
00:02:24.500 --> 00:02:29.215
|
| 130 |
+
el caso. Ahora, ¿cómo se ven los elementos
|
| 131 |
+
|
| 132 |
+
00:02:29.215 --> 00:02:34.015
|
| 133 |
+
de x? Como alfa es un escalar y
|
| 134 |
+
|
| 135 |
+
00:02:34.015 --> 00:02:36.975
|
| 136 |
+
b es un n vector, la combinación de
|
| 137 |
+
|
| 138 |
+
00:02:36.975 --> 00:02:39.135
|
| 139 |
+
alfa y b nos tiene que dar un
|
| 140 |
+
|
| 141 |
+
00:02:39.135 --> 00:02:42.030
|
| 142 |
+
n vector, es decir, alfa por beta nos
|
| 143 |
+
|
| 144 |
+
00:02:42.030 --> 00:02:44.270
|
| 145 |
+
da un n vector, y ese vector, en
|
| 146 |
+
|
| 147 |
+
00:02:44.270 --> 00:02:47.310
|
| 148 |
+
este caso, será el vector x. ¿Cómo se
|
| 149 |
+
|
| 150 |
+
00:02:47.310 --> 00:02:51.470
|
| 151 |
+
ve entrada por entrada? Bueno, alfa por b
|
| 152 |
+
|
| 153 |
+
00:02:51.470 --> 00:02:54.444
|
| 154 |
+
no es más que alfa por este vector,
|
| 155 |
+
|
| 156 |
+
00:02:54.505 --> 00:02:57.385
|
| 157 |
+
que es exactamente el b, v cero, v
|
| 158 |
+
|
| 159 |
+
00:02:57.385 --> 00:03:00.745
|
| 160 |
+
uno, hasta b n menos uno. Recordemos que
|
| 161 |
+
|
| 162 |
+
00:03:00.745 --> 00:03:02.905
|
| 163 |
+
como tiene dimensión n, es decir, es un
|
| 164 |
+
|
| 165 |
+
00:03:02.905 --> 00:03:08.180
|
| 166 |
+
n vector, las entradas corren de desde el
|
| 167 |
+
|
| 168 |
+
00:03:08.180 --> 00:03:11.459
|
| 169 |
+
cero hasta el n menos uno. ¿Y cómo
|
| 170 |
+
|
| 171 |
+
00:03:11.459 --> 00:03:13.780
|
| 172 |
+
se verán las entradas de x? Pues simplemente
|
| 173 |
+
|
| 174 |
+
00:03:13.780 --> 00:03:17.159
|
| 175 |
+
será la primera entrada alfa por b cero,
|
| 176 |
+
|
| 177 |
+
00:03:17.700 --> 00:03:20.345
|
| 178 |
+
alfa por b cero, la segunda entrada de
|
| 179 |
+
|
| 180 |
+
00:03:20.345 --> 00:03:23.224
|
| 181 |
+
x será alfa por b uno, la tercera
|
| 182 |
+
|
| 183 |
+
00:03:23.224 --> 00:03:25.644
|
| 184 |
+
será alfa por b dos, y la enésima
|
| 185 |
+
|
| 186 |
+
00:03:26.185 --> 00:03:28.605
|
| 187 |
+
entrada será alfa por b n menos uno.
|
| 188 |
+
|
| 189 |
+
00:03:30.025 --> 00:03:33.004
|
| 190 |
+
Como ejemplo concreto, pensemos en el vector b
|
| 191 |
+
|
| 192 |
+
00:03:33.144 --> 00:03:37.010
|
| 193 |
+
igual a cero coma uno coma menos dos
|
| 194 |
+
|
| 195 |
+
00:03:37.010 --> 00:03:39.570
|
| 196 |
+
punto tres, y pensemos que alfa es igual
|
| 197 |
+
|
| 198 |
+
00:03:39.570 --> 00:03:43.410
|
| 199 |
+
al menos uno punto uno. Entonces, si nosotros
|
| 200 |
+
|
| 201 |
+
00:03:43.410 --> 00:03:47.010
|
| 202 |
+
multiplicamos entrada por entrada, deberíamos de obtener este
|
| 203 |
+
|
| 204 |
+
00:03:47.010 --> 00:03:53.118
|
| 205 |
+
vector de aquí, vamos a comprobarlo. Ahora, en
|
| 206 |
+
|
| 207 |
+
00:03:53.118 --> 00:03:57.545
|
| 208 |
+
Python podemos hacer operaciones entre escalares sin necesidad
|
| 209 |
+
|
| 210 |
+
00:03:57.545 --> 00:04:00.285
|
| 211 |
+
de llamar a NumPy, entonces vamos a corroborar
|
| 212 |
+
|
| 213 |
+
00:04:00.665 --> 00:04:03.705
|
| 214 |
+
entrada por entrada. Sabemos que la primera entrada
|
| 215 |
+
|
| 216 |
+
00:04:03.705 --> 00:04:05.920
|
| 217 |
+
debería de ser cero, que es este número
|
| 218 |
+
|
| 219 |
+
00:04:05.920 --> 00:04:10.320
|
| 220 |
+
de aquí, por menos uno punto uno, que
|
| 221 |
+
|
| 222 |
+
00:04:10.320 --> 00:04:13.060
|
| 223 |
+
es nuestro escalar, y eso nos da efectivamente
|
| 224 |
+
|
| 225 |
+
00:04:13.600 --> 00:04:16.640
|
| 226 |
+
cero. Para fines prácticos, el menos cero o
|
| 227 |
+
|
| 228 |
+
00:04:16.640 --> 00:04:20.014
|
| 229 |
+
el cero será el cero simplemente. El menos
|
| 230 |
+
|
| 231 |
+
00:04:20.014 --> 00:04:22.735
|
| 232 |
+
aparece aquí como una representación de los números
|
| 233 |
+
|
| 234 |
+
00:04:22.735 --> 00:04:25.215
|
| 235 |
+
dentro de Python, pero no te preocupes, cero
|
| 236 |
+
|
| 237 |
+
00:04:25.215 --> 00:04:27.775
|
| 238 |
+
y menos cero juegan el mismo papel. En
|
| 239 |
+
|
| 240 |
+
00:04:27.775 --> 00:04:30.835
|
| 241 |
+
la realidad no existe el menos cero, simplemente
|
| 242 |
+
|
| 243 |
+
00:04:31.055 --> 00:04:35.780
|
| 244 |
+
existe el cero. Ahora veamos la siguiente entrada
|
| 245 |
+
|
| 246 |
+
00:04:35.780 --> 00:04:37.780
|
| 247 |
+
que es el uno, uno por menos uno
|
| 248 |
+
|
| 249 |
+
00:04:37.780 --> 00:04:40.100
|
| 250 |
+
punto uno nos debería de dar exactamente menos
|
| 251 |
+
|
| 252 |
+
00:04:40.100 --> 00:04:43.220
|
| 253 |
+
uno punto uno, y justamente es esta entrada
|
| 254 |
+
|
| 255 |
+
00:04:43.220 --> 00:04:46.979
|
| 256 |
+
de acá. Y por último tenemos esta entrada
|
| 257 |
+
|
| 258 |
+
00:04:46.979 --> 00:04:51.205
|
| 259 |
+
que es menos dos punto cincuenta y tres.
|
| 260 |
+
|
| 261 |
+
00:04:51.205 --> 00:04:54.485
|
| 262 |
+
Veamos que esto sale de multiplicar menos dos
|
| 263 |
+
|
| 264 |
+
00:04:54.485 --> 00:04:57.525
|
| 265 |
+
punto tres por menos uno punto uno. Menos
|
| 266 |
+
|
| 267 |
+
00:04:57.525 --> 00:05:00.345
|
| 268 |
+
dos punto tres, nos falta acá un menos,
|
| 269 |
+
|
| 270 |
+
00:05:00.730 --> 00:05:03.530
|
| 271 |
+
por menos uno punto tres, y exactamente nos
|
| 272 |
+
|
| 273 |
+
00:05:03.530 --> 00:05:06.490
|
| 274 |
+
da dos punto cincuenta y tres. Te invito
|
| 275 |
+
|
| 276 |
+
00:05:06.490 --> 00:05:09.050
|
| 277 |
+
a que pienses en Python como tu herramienta,
|
| 278 |
+
|
| 279 |
+
00:05:09.050 --> 00:05:12.730
|
| 280 |
+
como tu calculadora, como tu forma de sumar,
|
| 281 |
+
|
| 282 |
+
00:05:12.730 --> 00:05:15.170
|
| 283 |
+
para que te empieces a familiarizar más y
|
| 284 |
+
|
| 285 |
+
00:05:15.170 --> 00:05:18.195
|
| 286 |
+
empieces a soltar los dedos, como a veces
|
| 287 |
+
|
| 288 |
+
00:05:18.195 --> 00:05:21.555
|
| 289 |
+
decimos en matemáticas soltar las manos escribiendo, en
|
| 290 |
+
|
| 291 |
+
00:05:21.555 --> 00:05:25.655
|
| 292 |
+
Python se hará soltar los dedos programando. Ahora,
|
| 293 |
+
|
| 294 |
+
00:05:26.115 --> 00:05:28.675
|
| 295 |
+
vamos a ver qué propiedades cumple el producto
|
| 296 |
+
|
| 297 |
+
00:05:28.675 --> 00:05:35.140
|
| 298 |
+
escalar vector. Consideremos dos vectores cualesquiera XYYY también
|
| 299 |
+
|
| 300 |
+
00:05:35.140 --> 00:05:39.640
|
| 301 |
+
consideremos dos escalares cualesquiera alfa y beta, ¿vale?
|
| 302 |
+
|
| 303 |
+
00:05:40.740 --> 00:05:44.440
|
| 304 |
+
Recordemos aquí que XYY ambos son n vectores.
|
| 305 |
+
|
| 306 |
+
00:05:45.544 --> 00:05:47.544
|
| 307 |
+
Ahora, una de las propiedades que va a
|
| 308 |
+
|
| 309 |
+
00:05:47.544 --> 00:05:50.185
|
| 310 |
+
cumplir la multiplicación de un escalar por un
|
| 311 |
+
|
| 312 |
+
00:05:50.185 --> 00:05:53.065
|
| 313 |
+
vector es la conmutatividad. Si la recordamos de
|
| 314 |
+
|
| 315 |
+
00:05:53.065 --> 00:05:56.264
|
| 316 |
+
operaciones pasadas como la suma, sabíamos que si
|
| 317 |
+
|
| 318 |
+
00:05:56.264 --> 00:05:58.860
|
| 319 |
+
sumamos un vector x más un vector y,
|
| 320 |
+
|
| 321 |
+
00:05:59.020 --> 00:06:01.020
|
| 322 |
+
era exactamente lo mismo que sumar el vector
|
| 323 |
+
|
| 324 |
+
00:06:01.020 --> 00:06:03.340
|
| 325 |
+
y más un vector x. En el caso
|
| 326 |
+
|
| 327 |
+
00:06:03.340 --> 00:06:06.300
|
| 328 |
+
de la conmutatividad de un escalar vector, de
|
| 329 |
+
|
| 330 |
+
00:06:06.300 --> 00:06:08.479
|
| 331 |
+
una de un producto escalar por un vector,
|
| 332 |
+
|
| 333 |
+
00:06:08.620 --> 00:06:12.300
|
| 334 |
+
tenemos que alfa por x es igual que
|
| 335 |
+
|
| 336 |
+
00:06:12.300 --> 00:06:15.845
|
| 337 |
+
x por alfa. En el caso de la
|
| 338 |
+
|
| 339 |
+
00:06:15.845 --> 00:06:23.385
|
| 340 |
+
asociatividad, tenemos que beta por alfa por x
|
| 341 |
+
|
| 342 |
+
00:06:23.445 --> 00:06:26.185
|
| 343 |
+
va a ser exactamente lo mismo que beta
|
| 344 |
+
|
| 345 |
+
00:06:26.565 --> 00:06:30.140
|
| 346 |
+
alfa veces x. Una cosa interesante es que
|
| 347 |
+
|
| 348 |
+
00:06:30.140 --> 00:06:32.700
|
| 349 |
+
esto de aquí lo podemos leer como alfa
|
| 350 |
+
|
| 351 |
+
00:06:32.700 --> 00:06:35.120
|
| 352 |
+
veces x, y más adelante en la interpretación
|
| 353 |
+
|
| 354 |
+
00:06:35.580 --> 00:06:39.420
|
| 355 |
+
geométrica veremos por qué. Ahora, la sociatividad es
|
| 356 |
+
|
| 357 |
+
00:06:39.420 --> 00:06:41.580
|
| 358 |
+
una propiedad muy interesante porque nos dice que
|
| 359 |
+
|
| 360 |
+
00:06:41.580 --> 00:06:46.354
|
| 361 |
+
da lo mismo que multipliquemos beta por alfa
|
| 362 |
+
|
| 363 |
+
00:06:46.354 --> 00:06:49.074
|
| 364 |
+
veces x, que si multiplicamos beta y alfa
|
| 365 |
+
|
| 366 |
+
00:06:49.074 --> 00:06:51.395
|
| 367 |
+
al mismo tiempo, y después el resultado lo
|
| 368 |
+
|
| 369 |
+
00:06:51.395 --> 00:06:55.875
|
| 370 |
+
multiplicamos por x. Ahora, está la propiedad de
|
| 371 |
+
|
| 372 |
+
00:06:55.875 --> 00:06:58.995
|
| 373 |
+
la distribución y tenemos distribución sobre una suma
|
| 374 |
+
|
| 375 |
+
00:06:58.995 --> 00:07:01.610
|
| 376 |
+
escalar y tenemos una distribución sobre una suma
|
| 377 |
+
|
| 378 |
+
00:07:01.610 --> 00:07:03.530
|
| 379 |
+
de vectores. En el caso de la suma
|
| 380 |
+
|
| 381 |
+
00:07:03.530 --> 00:07:06.250
|
| 382 |
+
escalar, consideremos la suma de los escalares alfa
|
| 383 |
+
|
| 384 |
+
00:07:06.250 --> 00:07:08.690
|
| 385 |
+
más beta. En el caso de los escalares
|
| 386 |
+
|
| 387 |
+
00:07:08.690 --> 00:07:12.090
|
| 388 |
+
alfa más beta, el resultado será multiplicado a
|
| 389 |
+
|
| 390 |
+
00:07:12.090 --> 00:07:15.615
|
| 391 |
+
x, pero notemos que en este caso podemos
|
| 392 |
+
|
| 393 |
+
00:07:16.155 --> 00:07:19.195
|
| 394 |
+
expresar esta operación de aquí como alfa veces
|
| 395 |
+
|
| 396 |
+
00:07:19.195 --> 00:07:24.235
|
| 397 |
+
x más beta veces x, ¿vale? Entonces da
|
| 398 |
+
|
| 399 |
+
00:07:24.235 --> 00:07:26.555
|
| 400 |
+
lo mismo si sumamos los escalares y después
|
| 401 |
+
|
| 402 |
+
00:07:26.555 --> 00:07:31.330
|
| 403 |
+
se lo multiplicamos AX0 bien si sumamos alfa
|
| 404 |
+
|
| 405 |
+
00:07:31.330 --> 00:07:33.350
|
| 406 |
+
veces x, es decir, la multiplicación del escalar
|
| 407 |
+
|
| 408 |
+
00:07:34.130 --> 00:07:36.850
|
| 409 |
+
alfa por el vector x, y después le
|
| 410 |
+
|
| 411 |
+
00:07:36.850 --> 00:07:42.475
|
| 412 |
+
sumamos beta por el escalar x. Ahora, por
|
| 413 |
+
|
| 414 |
+
00:07:42.475 --> 00:07:45.355
|
| 415 |
+
propiedades de la conmutatividad de la suma, esto
|
| 416 |
+
|
| 417 |
+
00:07:45.355 --> 00:07:49.215
|
| 418 |
+
lo podemos escribir también como beta por x
|
| 419 |
+
|
| 420 |
+
00:07:49.715 --> 00:07:55.130
|
| 421 |
+
más alfa por XYA su vez, esto lo
|
| 422 |
+
|
| 423 |
+
00:07:55.130 --> 00:08:01.450
|
| 424 |
+
podemos expresar como x por alfa más beta,
|
| 425 |
+
|
| 426 |
+
00:08:01.450 --> 00:08:03.790
|
| 427 |
+
lo cual cumple la propiedad de la conmutatividad
|
| 428 |
+
|
| 429 |
+
00:08:04.090 --> 00:08:07.770
|
| 430 |
+
también. Entonces, alfa más beta por x es
|
| 431 |
+
|
| 432 |
+
00:08:07.770 --> 00:08:11.305
|
| 433 |
+
exactamente igual que x por alfa más beta.
|
| 434 |
+
|
| 435 |
+
00:08:12.805 --> 00:08:15.764
|
| 436 |
+
Por último, veamos la distribución sobre una suma
|
| 437 |
+
|
| 438 |
+
00:08:15.764 --> 00:08:19.604
|
| 439 |
+
de vectores. Consideramos que tenemos este escalar alfa
|
| 440 |
+
|
| 441 |
+
00:08:19.604 --> 00:08:22.260
|
| 442 |
+
y estamos sumando los vectores x más y.
|
| 443 |
+
|
| 444 |
+
00:08:22.340 --> 00:08:24.660
|
| 445 |
+
Por eso, cuando definimos a los vectores x
|
| 446 |
+
|
| 447 |
+
00:08:24.660 --> 00:08:26.420
|
| 448 |
+
más y, era importante que los dos fueran
|
| 449 |
+
|
| 450 |
+
00:08:26.420 --> 00:08:29.780
|
| 451 |
+
n vectores. Recordemos que no podemos sumar vectores
|
| 452 |
+
|
| 453 |
+
00:08:29.780 --> 00:08:32.179
|
| 454 |
+
de diferente dimensión, tienen que ser de la
|
| 455 |
+
|
| 456 |
+
00:08:32.179 --> 00:08:36.085
|
| 457 |
+
misma dimensión para poder sumarlos. Ahora bien, consideremos
|
| 458 |
+
|
| 459 |
+
00:08:36.385 --> 00:08:39.424
|
| 460 |
+
alfa por x más y. Alfa por x
|
| 461 |
+
|
| 462 |
+
00:08:39.424 --> 00:08:42.145
|
| 463 |
+
más y, es decir, sumarlos y después a
|
| 464 |
+
|
| 465 |
+
00:08:42.145 --> 00:08:45.505
|
| 466 |
+
la suma de estos vectores multiplicarles alfa, es
|
| 467 |
+
|
| 468 |
+
00:08:45.505 --> 00:08:50.145
|
| 469 |
+
exactamente igual que x que alfa por x
|
| 470 |
+
|
| 471 |
+
00:08:50.145 --> 00:08:53.190
|
| 472 |
+
más alfa por y, es decir, que la
|
| 473 |
+
|
| 474 |
+
00:08:53.190 --> 00:08:56.630
|
| 475 |
+
suma de la multiplicación de los escalares de
|
| 476 |
+
|
| 477 |
+
00:08:56.630 --> 00:09:01.269
|
| 478 |
+
manera individual por los vectores, ¿vale? Más adelante
|
| 479 |
+
|
| 480 |
+
00:09:01.269 --> 00:09:06.385
|
| 481 |
+
comprobaremos que esto se cumple también computacionalmente. Ahora
|
| 482 |
+
|
| 483 |
+
00:09:06.385 --> 00:09:09.905
|
| 484 |
+
vamos a algunas consideraciones. En esas consideraciones vamos
|
| 485 |
+
|
| 486 |
+
00:09:09.905 --> 00:09:14.545
|
| 487 |
+
a ver una forma particular de multiplicación de
|
| 488 |
+
|
| 489 |
+
00:09:14.545 --> 00:09:17.665
|
| 490 |
+
escalares por vectores. La primera que vamos a
|
| 491 |
+
|
| 492 |
+
00:09:17.665 --> 00:09:20.829
|
| 493 |
+
ver se llama combinación lineal o combinaciones lineales
|
| 494 |
+
|
| 495 |
+
00:09:20.829 --> 00:09:23.389
|
| 496 |
+
en plural, y en este caso vamos a
|
| 497 |
+
|
| 498 |
+
00:09:23.389 --> 00:09:26.670
|
| 499 |
+
considerar m vectores. A estos m vectores les
|
| 500 |
+
|
| 501 |
+
00:09:26.670 --> 00:09:29.389
|
| 502 |
+
vamos a llamar a cero, a uno, hasta
|
| 503 |
+
|
| 504 |
+
00:09:29.389 --> 00:09:33.230
|
| 505 |
+
el vector a m menos uno. Y estos
|
| 506 |
+
|
| 507 |
+
00:09:33.230 --> 00:09:37.125
|
| 508 |
+
m vectores, estos m vectores son n vectores,
|
| 509 |
+
|
| 510 |
+
00:09:37.125 --> 00:09:40.524
|
| 511 |
+
es decir, tenemos m vectores, m cantidad de
|
| 512 |
+
|
| 513 |
+
00:09:40.524 --> 00:09:42.925
|
| 514 |
+
vectores, y cada uno de estos vectores es
|
| 515 |
+
|
| 516 |
+
00:09:42.925 --> 00:09:48.225
|
| 517 |
+
un n vector. Y consideremos también que tenemos
|
| 518 |
+
|
| 519 |
+
00:09:48.524 --> 00:09:51.860
|
| 520 |
+
n escalares que van desde beta cero hasta
|
| 521 |
+
|
| 522 |
+
00:09:51.860 --> 00:09:56.580
|
| 523 |
+
beta m menos uno. Con estos escalares y
|
| 524 |
+
|
| 525 |
+
00:09:56.580 --> 00:10:00.279
|
| 526 |
+
estos vectores podemos definir el siguiente n vector.
|
| 527 |
+
|
| 528 |
+
00:10:00.900 --> 00:10:03.620
|
| 529 |
+
Recordemos que si estamos sumando dos n vectores,
|
| 530 |
+
|
| 531 |
+
00:10:03.620 --> 00:10:05.925
|
| 532 |
+
el resultado es un n vector, y si
|
| 533 |
+
|
| 534 |
+
00:10:06.465 --> 00:10:09.825
|
| 535 |
+
multiplicamos escalares por ese n vector, nos va
|
| 536 |
+
|
| 537 |
+
00:10:09.825 --> 00:10:12.705
|
| 538 |
+
a dar otra vez un n vector. Entonces,
|
| 539 |
+
|
| 540 |
+
00:10:12.705 --> 00:10:16.625
|
| 541 |
+
definimos por eso este n vector, en donde
|
| 542 |
+
|
| 543 |
+
00:10:16.625 --> 00:10:19.505
|
| 544 |
+
el escalar beta cero se va a multiplicar
|
| 545 |
+
|
| 546 |
+
00:10:19.505 --> 00:10:23.649
|
| 547 |
+
con el vector a cero. El escalar beta
|
| 548 |
+
|
| 549 |
+
00:10:23.649 --> 00:10:25.810
|
| 550 |
+
uno se va a multiplicar con el vector
|
| 551 |
+
|
| 552 |
+
00:10:25.810 --> 00:10:30.310
|
| 553 |
+
a uno, y así hasta el escalar beta
|
| 554 |
+
|
| 555 |
+
00:10:30.370 --> 00:10:32.209
|
| 556 |
+
m menos uno, que se va a multiplicar
|
| 557 |
+
|
| 558 |
+
00:10:32.209 --> 00:10:35.055
|
| 559 |
+
con el vector a m menos uno. A
|
| 560 |
+
|
| 561 |
+
00:10:35.055 --> 00:10:38.535
|
| 562 |
+
este vector se le llama una combinación lineal
|
| 563 |
+
|
| 564 |
+
00:10:38.535 --> 00:10:41.535
|
| 565 |
+
y es una combinación lineal de los vectores
|
| 566 |
+
|
| 567 |
+
00:10:41.535 --> 00:10:44.735
|
| 568 |
+
a cero hasta am menos uno, y a
|
| 569 |
+
|
| 570 |
+
00:10:44.735 --> 00:10:47.650
|
| 571 |
+
los escalares de la combinación lineal se le
|
| 572 |
+
|
| 573 |
+
00:10:47.650 --> 00:10:50.930
|
| 574 |
+
llaman coeficientes de la combinación lineal, es decir,
|
| 575 |
+
|
| 576 |
+
00:10:50.930 --> 00:10:54.290
|
| 577 |
+
los coeficientes de esta combinación lineal son los
|
| 578 |
+
|
| 579 |
+
00:10:54.290 --> 00:10:57.010
|
| 580 |
+
escalares b cero, p uno, hasta el b
|
| 581 |
+
|
| 582 |
+
00:10:57.010 --> 00:11:01.345
|
| 583 |
+
m menos uno. Hay combinaciones lineales que son
|
| 584 |
+
|
| 585 |
+
00:11:01.345 --> 00:11:04.485
|
| 586 |
+
especiales y, además, las combinaciones lineales nos permiten
|
| 587 |
+
|
| 588 |
+
00:11:04.625 --> 00:11:08.705
|
| 589 |
+
expresar cosas de formas importantes. Por ejemplo, nosotros
|
| 590 |
+
|
| 591 |
+
00:11:08.705 --> 00:11:11.905
|
| 592 |
+
tenemos una combinación lineal especial y es la
|
| 593 |
+
|
| 594 |
+
00:11:11.905 --> 00:11:15.110
|
| 595 |
+
combinación lineal de vectores unitarios, Y en la
|
| 596 |
+
|
| 597 |
+
00:11:15.110 --> 00:11:17.690
|
| 598 |
+
realidad es que va a ser posible expresar
|
| 599 |
+
|
| 600 |
+
00:11:17.830 --> 00:11:22.390
|
| 601 |
+
cualquier vector b, cualquier nvector b, como combinación
|
| 602 |
+
|
| 603 |
+
00:11:22.390 --> 00:11:26.070
|
| 604 |
+
lineal de los vectores unitarios estándar. Consideremos entonces
|
| 605 |
+
|
| 606 |
+
00:11:26.070 --> 00:11:29.285
|
| 607 |
+
que tenemos el vector b. Este vector tiene
|
| 608 |
+
|
| 609 |
+
00:11:29.285 --> 00:11:31.365
|
| 610 |
+
entradas de cero, v uno, v dos, v
|
| 611 |
+
|
| 612 |
+
00:11:31.365 --> 00:11:33.285
|
| 613 |
+
tres, hasta v n menos uno, porque es
|
| 614 |
+
|
| 615 |
+
00:11:33.285 --> 00:11:37.145
|
| 616 |
+
un n vector. Aquí podemos considerar y llamar
|
| 617 |
+
|
| 618 |
+
00:11:37.525 --> 00:11:40.725
|
| 619 |
+
entonces a los vectores unitarios d a los
|
| 620 |
+
|
| 621 |
+
00:11:40.725 --> 00:11:45.410
|
| 622 |
+
n vectores unitarios. Entonces, si recordamos cómo son
|
| 623 |
+
|
| 624 |
+
00:11:45.410 --> 00:11:49.990
|
| 625 |
+
los vectores unitarios, son aquellos vectores e, I,
|
| 626 |
+
|
| 627 |
+
00:11:50.450 --> 00:11:52.850
|
| 628 |
+
en donde la única entrada que no es
|
| 629 |
+
|
| 630 |
+
00:11:52.850 --> 00:11:56.770
|
| 631 |
+
cero es la iésima, y la iésima es
|
| 632 |
+
|
| 633 |
+
00:11:56.770 --> 00:11:59.995
|
| 634 |
+
igual a uno. En este caso, vamos a
|
| 635 |
+
|
| 636 |
+
00:11:59.995 --> 00:12:03.615
|
| 637 |
+
poder expresar al vector b como la suma
|
| 638 |
+
|
| 639 |
+
00:12:04.074 --> 00:12:07.274
|
| 640 |
+
de estos coeficientes b cero, que son los
|
| 641 |
+
|
| 642 |
+
00:12:07.274 --> 00:12:12.740
|
| 643 |
+
del vector, por el vector unitario correspondiente a
|
| 644 |
+
|
| 645 |
+
00:12:12.740 --> 00:12:15.880
|
| 646 |
+
esa entrada, es decir, b cero lo multiplicaremos
|
| 647 |
+
|
| 648 |
+
00:12:16.260 --> 00:12:18.660
|
| 649 |
+
por el vector unitario e cero, que es
|
| 650 |
+
|
| 651 |
+
00:12:18.660 --> 00:12:22.020
|
| 652 |
+
aquel en donde la primer entrada es igual
|
| 653 |
+
|
| 654 |
+
00:12:22.020 --> 00:12:24.375
|
| 655 |
+
a uno y las demás son cero. B
|
| 656 |
+
|
| 657 |
+
00:12:24.375 --> 00:12:26.715
|
| 658 |
+
uno lo vamos a multiplicar por el vector
|
| 659 |
+
|
| 660 |
+
00:12:27.175 --> 00:12:29.255
|
| 661 |
+
unitario uno o el e uno, en donde
|
| 662 |
+
|
| 663 |
+
00:12:29.255 --> 00:12:30.935
|
| 664 |
+
la segunda entrada es un uno y todas
|
| 665 |
+
|
| 666 |
+
00:12:30.935 --> 00:12:33.735
|
| 667 |
+
las demás son cero, y así hasta el
|
| 668 |
+
|
| 669 |
+
00:12:33.735 --> 00:12:38.535
|
| 670 |
+
enésimo vector unitario e n menos uno por
|
| 671 |
+
|
| 672 |
+
00:12:38.535 --> 00:12:44.310
|
| 673 |
+
el enésimo coeficiente b n menos uno, que
|
| 674 |
+
|
| 675 |
+
00:12:44.310 --> 00:12:47.130
|
| 676 |
+
es la enésima entrada de este vector b.
|
| 677 |
+
|
| 678 |
+
00:12:48.870 --> 00:12:51.450
|
| 679 |
+
Ahora, vamos a poner un ejemplo de esto.
|
| 680 |
+
|
| 681 |
+
00:12:52.595 --> 00:12:58.514
|
| 682 |
+
Consideremos el vector uno menos uno cero. Esto
|
| 683 |
+
|
| 684 |
+
00:12:58.514 --> 00:13:03.154
|
| 685 |
+
lo podemos expresar en término de las de
|
| 686 |
+
|
| 687 |
+
00:13:03.154 --> 00:13:07.190
|
| 688 |
+
los vectores unitarios, de los tres vectores unitarios,
|
| 689 |
+
|
| 690 |
+
00:13:07.650 --> 00:13:10.610
|
| 691 |
+
que sería el uno cero cero, el cero
|
| 692 |
+
|
| 693 |
+
00:13:10.610 --> 00:13:13.970
|
| 694 |
+
uno cero y el cero cero uno. ¿Cómo
|
| 695 |
+
|
| 696 |
+
00:13:13.970 --> 00:13:17.770
|
| 697 |
+
lo podemos expresar? Bueno, para la primera entrada
|
| 698 |
+
|
| 699 |
+
00:13:17.850 --> 00:13:21.495
|
| 700 |
+
nosotros multiplicaremos el escalar uno, y entonces uno
|
| 701 |
+
|
| 702 |
+
00:13:21.495 --> 00:13:24.454
|
| 703 |
+
por uno cero cero nos da exactamente esta
|
| 704 |
+
|
| 705 |
+
00:13:24.454 --> 00:13:28.135
|
| 706 |
+
entrada de aquí. En el caso del cero
|
| 707 |
+
|
| 708 |
+
00:13:28.135 --> 00:13:31.415
|
| 709 |
+
uno cero, lo multiplicaremos por un menos uno,
|
| 710 |
+
|
| 711 |
+
00:13:31.415 --> 00:13:36.029
|
| 712 |
+
y eso significará que cuando sumemos este más
|
| 713 |
+
|
| 714 |
+
00:13:36.029 --> 00:13:42.350
|
| 715 |
+
este nos dará el uno menos uno por
|
| 716 |
+
|
| 717 |
+
00:13:42.350 --> 00:13:46.690
|
| 718 |
+
menos uno por uno, y un cero. Ahora,
|
| 719 |
+
|
| 720 |
+
00:13:46.995 --> 00:13:51.395
|
| 721 |
+
para el último de los vectores unitarios, lo
|
| 722 |
+
|
| 723 |
+
00:13:51.395 --> 00:13:54.595
|
| 724 |
+
multiplicaremos por un cero, y esto nos dará
|
| 725 |
+
|
| 726 |
+
00:13:54.595 --> 00:13:57.555
|
| 727 |
+
un cero exactamente aquí, así que cuando sumemos
|
| 728 |
+
|
| 729 |
+
00:13:57.555 --> 00:14:00.675
|
| 730 |
+
los tres, nos dará el vector uno menos
|
| 731 |
+
|
| 732 |
+
00:14:00.675 --> 00:14:05.360
|
| 733 |
+
uno cero. Te invito a que compruebes que
|
| 734 |
+
|
| 735 |
+
00:14:05.360 --> 00:14:08.480
|
| 736 |
+
esto se cumple de manera efectiva haciendo esta
|
| 737 |
+
|
| 738 |
+
00:14:08.480 --> 00:14:12.320
|
| 739 |
+
operación a mano. Ahora, hay una cosa muy
|
| 740 |
+
|
| 741 |
+
00:14:12.320 --> 00:14:14.320
|
| 742 |
+
importante, y es que hay que denotar que
|
| 743 |
+
|
| 744 |
+
00:14:14.320 --> 00:14:17.425
|
| 745 |
+
para un espacio vectorial de dimensión n, es
|
| 746 |
+
|
| 747 |
+
00:14:17.425 --> 00:14:20.645
|
| 748 |
+
decir, donde viven n vectores, vamos a tener
|
| 749 |
+
|
| 750 |
+
00:14:20.785 --> 00:14:24.465
|
| 751 |
+
n vectores unitarios e uno. Es decir, para
|
| 752 |
+
|
| 753 |
+
00:14:24.465 --> 00:14:30.215
|
| 754 |
+
el espacio vectorial de dimensión dos, el r
|
| 755 |
+
|
| 756 |
+
00:14:30.215 --> 00:14:33.750
|
| 757 |
+
dos, por ejemplo, tendremos, en donde viven dos
|
| 758 |
+
|
| 759 |
+
00:14:33.750 --> 00:14:37.509
|
| 760 |
+
vectores, tenemos dos vectores unitarios, el cero, el
|
| 761 |
+
|
| 762 |
+
00:14:37.509 --> 00:14:39.350
|
| 763 |
+
e cero y el e uno. En el
|
| 764 |
+
|
| 765 |
+
00:14:39.350 --> 00:14:41.990
|
| 766 |
+
caso de r tres o un espacio vectorial
|
| 767 |
+
|
| 768 |
+
00:14:41.990 --> 00:14:45.715
|
| 769 |
+
de dimensión tres, tendremos tres vectores unitarios, el
|
| 770 |
+
|
| 771 |
+
00:14:45.715 --> 00:14:47.735
|
| 772 |
+
e cero, el e uno y el e
|
| 773 |
+
|
| 774 |
+
00:14:47.795 --> 00:14:51.575
|
| 775 |
+
dos, y así hasta espacios vectoriales de dimensión
|
| 776 |
+
|
| 777 |
+
00:14:51.955 --> 00:14:55.235
|
| 778 |
+
n, donde tendremos bases e cero, e uno,
|
| 779 |
+
|
| 780 |
+
00:14:55.235 --> 00:15:00.709
|
| 781 |
+
e dos hasta n menos uno. Si no
|
| 782 |
+
|
| 783 |
+
00:15:00.709 --> 00:15:03.589
|
| 784 |
+
recuerdas la construcción de estos vectores unitarios, te
|
| 785 |
+
|
| 786 |
+
00:15:03.589 --> 00:15:06.310
|
| 787 |
+
invito a que repases las clases anteriores, ya
|
| 788 |
+
|
| 789 |
+
00:15:06.310 --> 00:15:08.870
|
| 790 |
+
que vimos una forma sencilla y fácil de
|
| 791 |
+
|
| 792 |
+
00:15:08.870 --> 00:15:13.385
|
| 793 |
+
poder construirlos. Ahora, vamos a ver algunas combinaciones
|
| 794 |
+
|
| 795 |
+
00:15:14.085 --> 00:15:17.445
|
| 796 |
+
lineales especiales. Algunas de esas combinaciones serán, por
|
| 797 |
+
|
| 798 |
+
00:15:17.445 --> 00:15:20.645
|
| 799 |
+
ejemplo, aquellas en donde los coeficientes de la
|
| 800 |
+
|
| 801 |
+
00:15:20.645 --> 00:15:23.925
|
| 802 |
+
combinación lineal, todos los coeficientes sean igual a
|
| 803 |
+
|
| 804 |
+
00:15:23.925 --> 00:15:27.290
|
| 805 |
+
uno. Eso quiere decir que simplemente estaremos hablando
|
| 806 |
+
|
| 807 |
+
00:15:27.290 --> 00:15:30.330
|
| 808 |
+
de una suma de vectores. Es decir, si
|
| 809 |
+
|
| 810 |
+
00:15:30.330 --> 00:15:33.530
|
| 811 |
+
en esta combinación lineal, beta cero, beta uno,
|
| 812 |
+
|
| 813 |
+
00:15:33.530 --> 00:15:35.690
|
| 814 |
+
beta dos, hasta beta m menos uno son
|
| 815 |
+
|
| 816 |
+
00:15:35.690 --> 00:15:38.865
|
| 817 |
+
igual a uno, simplemente estaríamos sumando los vectores
|
| 818 |
+
|
| 819 |
+
00:15:39.085 --> 00:15:40.765
|
| 820 |
+
a cero, a uno, hasta el a m
|
| 821 |
+
|
| 822 |
+
00:15:40.765 --> 00:15:43.165
|
| 823 |
+
menos uno, es decir, una suma normal de
|
| 824 |
+
|
| 825 |
+
00:15:43.165 --> 00:15:52.070
|
| 826 |
+
vectores. Ahora bien, si todos nuestros coeficientes son
|
| 827 |
+
|
| 828 |
+
00:15:52.070 --> 00:15:56.230
|
| 829 |
+
igual a uno entre m, beta cero, beta
|
| 830 |
+
|
| 831 |
+
00:15:56.230 --> 00:15:58.310
|
| 832 |
+
uno, hasta beta m menos uno igual a
|
| 833 |
+
|
| 834 |
+
00:15:58.310 --> 00:16:01.110
|
| 835 |
+
uno entre m, a esta combinación lineal se
|
| 836 |
+
|
| 837 |
+
00:16:01.110 --> 00:16:07.178
|
| 838 |
+
le llamará promedio de vectores. Y, en cambio,
|
| 839 |
+
|
| 840 |
+
00:16:07.265 --> 00:16:10.785
|
| 841 |
+
si nuestros coeficientes suman uno, es decir, b
|
| 842 |
+
|
| 843 |
+
00:16:10.785 --> 00:16:13.185
|
| 844 |
+
cero más b uno más b dos hasta
|
| 845 |
+
|
| 846 |
+
00:16:13.185 --> 00:16:15.445
|
| 847 |
+
el b m menos uno nos da un
|
| 848 |
+
|
| 849 |
+
00:16:15.585 --> 00:16:18.464
|
| 850 |
+
uno, entonces a esta combinación lineal le llamaremos
|
| 851 |
+
|
| 852 |
+
00:16:18.464 --> 00:16:22.519
|
| 853 |
+
combinación afín, y cuando los coeficientes b y
|
| 854 |
+
|
| 855 |
+
00:16:22.519 --> 00:16:26.360
|
| 856 |
+
sean todos no negativos, es decir, todos estos
|
| 857 |
+
|
| 858 |
+
00:16:26.360 --> 00:16:28.360
|
| 859 |
+
b cero, b uno, hasta el b m
|
| 860 |
+
|
| 861 |
+
00:16:28.360 --> 00:16:32.220
|
| 862 |
+
menos uno, sean positivos, entonces la combinación lineal
|
| 863 |
+
|
| 864 |
+
00:16:32.755 --> 00:16:36.035
|
| 865 |
+
será una mezcla, una combinación convexa o un
|
| 866 |
+
|
| 867 |
+
00:16:36.035 --> 00:16:40.355
|
| 868 |
+
promedio pesado, esos nombres son intercambiables. Muy bien,
|
| 869 |
+
|
| 870 |
+
00:16:40.355 --> 00:16:44.115
|
| 871 |
+
hasta aquí llegó esta clase. La próxima clase
|
| 872 |
+
|
| 873 |
+
00:16:44.115 --> 00:16:47.879
|
| 874 |
+
será una clase práctica y una clase geométrica,
|
| 875 |
+
|
| 876 |
+
00:16:47.939 --> 00:16:50.679
|
| 877 |
+
una clase ilustrativa, de cómo se ve la
|
| 878 |
+
|
| 879 |
+
00:16:50.979 --> 00:16:54.499
|
| 880 |
+
multiplicación de escalar por las por vectores. Te
|
| 881 |
+
|
| 882 |
+
00:16:54.499 --> 00:16:55.879
|
| 883 |
+
espero en la próxima clase.
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/06-producto_escalar_383fadd8-6e92-4690-aefe-72a7454fa87a.ipynb
ADDED
|
@@ -0,0 +1,472 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 3. Producto por un escalar o multiplicación escalar-vector."
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"Otra operación es el *producto por un escalar* o *multiplicación escalar-vector* en la cual un vector es multiplicado por un escalar. La operación se hace elemento a elemento. Sea $\\vec{v}$ un vector de $\\mathbb{R}^{n}$ y $\\alpha \\in \\mathbb{R}$. Si $\\vec{x} = \\alpha \\vec{v}$ entonces:\n",
|
| 15 |
+
"$$\n",
|
| 16 |
+
"\\vec{x} = \\alpha \\vec{v} = \\alpha\\begin{bmatrix}v_{0}\\\\ v_{1}\\\\ \\vdots \\\\ v_{n-1}\\end{bmatrix} = \\begin{bmatrix}\\alpha \\cdot v_{0}\\\\ \\alpha \\cdot v_{1}\\\\ \\vdots \\\\ \\alpha \\cdot v_{n-1}\\end{bmatrix}\n",
|
| 17 |
+
"$$"
|
| 18 |
+
]
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"cell_type": "markdown",
|
| 22 |
+
"metadata": {},
|
| 23 |
+
"source": [
|
| 24 |
+
"Por ejemplo, si $\\vec{v} = (0,1,-2.3)$ y $\\alpha = -1.1$ entonces $\\alpha \\vec{v} = (0,-1.1,2.53)$"
|
| 25 |
+
]
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"cell_type": "markdown",
|
| 29 |
+
"metadata": {},
|
| 30 |
+
"source": [
|
| 31 |
+
"## 3.1 Propiedades del producto por un escalar-vector"
|
| 32 |
+
]
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"cell_type": "markdown",
|
| 36 |
+
"metadata": {},
|
| 37 |
+
"source": [
|
| 38 |
+
"Sean $\\vec{x},\\vec{y}$ dos vectores y $\\alpha, \\beta$ dos escalares cualquiera. Las propiedades que cumple el producto escalar-vector son las siguientes:\n",
|
| 39 |
+
"* Conmutatividad: $\\alpha \\vec{x} = \\vec{x}\\alpha $\n",
|
| 40 |
+
"\n",
|
| 41 |
+
"* Asociatividad: $(\\beta \\alpha)\\vec{x} = \\beta (\\alpha\\vec{x})$\n",
|
| 42 |
+
"\n",
|
| 43 |
+
"* Distribución sobre suma escalar: $(\\alpha + \\beta)\\vec{x} = \\alpha \\vec{x} + \\beta\\vec{x} =\\beta\\vec{x} + \\alpha\\vec{x} = \\vec{x}(\\alpha + \\beta) $\n",
|
| 44 |
+
"\n",
|
| 45 |
+
"* Distribución sobre suma de vectores: $\\alpha (\\vec{x}+\\vec{y}) = \\alpha\\vec{x} + \\alpha\\vec{y}$"
|
| 46 |
+
]
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"cell_type": "markdown",
|
| 50 |
+
"metadata": {},
|
| 51 |
+
"source": [
|
| 52 |
+
"## 3.2 Algunas consideraciones"
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"cell_type": "markdown",
|
| 57 |
+
"metadata": {},
|
| 58 |
+
"source": [
|
| 59 |
+
"**Combinaciones lineales**. Sean $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$ $n$-vectores y $\\beta_{0},\\beta_{1},\\dots,\\beta_{m-1}$ escalares entonces podemos definir el siguiente $n$-vector:\n",
|
| 60 |
+
"\n",
|
| 61 |
+
"$$\n",
|
| 62 |
+
"\\beta_{0}\\vec{a}_{0}+\\beta_{1}\\vec{a}_{1}+\\cdots+\\beta_{m-1}\\vec{a}_{m-1}\n",
|
| 63 |
+
"$$\n",
|
| 64 |
+
"\n",
|
| 65 |
+
"Es llamado una *combinación lineal* de los vectores $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$. Los escalares $\\beta_{0},\\beta_{1},\\dots,\\beta_{m-1}$ son llamados los *coeficientes* de la combinación lineal."
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
{
|
| 69 |
+
"cell_type": "markdown",
|
| 70 |
+
"metadata": {},
|
| 71 |
+
"source": [
|
| 72 |
+
" "
|
| 73 |
+
]
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"cell_type": "markdown",
|
| 77 |
+
"metadata": {},
|
| 78 |
+
"source": [
|
| 79 |
+
"**Combinaciones lineales de vectores unitarios**. Es posible escribir cualquier $\\vec{b}$ $n$-vector como combinación lineal de los vectores unitarios estándar:\n",
|
| 80 |
+
"\n",
|
| 81 |
+
"$$\n",
|
| 82 |
+
"\\vec{b} = b_{0}\\hat{e}_{0}+b_{1}\\hat{e}_{1} + \\cdots +b_{n-1}\\hat{e}_{n-1}\n",
|
| 83 |
+
"$$\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"Con $b_{i}$ escalares y $\\hat{e}_{i}$ el i-ésimo vector unitario. Un ejemplo específico sería:\n",
|
| 86 |
+
"\n",
|
| 87 |
+
"$$\n",
|
| 88 |
+
"\\begin{bmatrix}1\\\\ -1\\\\ 0\\end{bmatrix} = (1)\\begin{bmatrix}1\\\\ 0\\\\ 0\\end{bmatrix} + (-1)\\begin{bmatrix}0\\\\ 1\\\\ 0\\end{bmatrix} + (0)\\begin{bmatrix}0\\\\ 0\\\\ 1\\end{bmatrix}\n",
|
| 89 |
+
"$$\n",
|
| 90 |
+
"\n",
|
| 91 |
+
"Como nota final aquí, notemos que si el espacio vectorial es de dimensión $n$ entonces tiene $n$ vectores unitarios $\\hat{e}_{i}$\n"
|
| 92 |
+
]
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"cell_type": "markdown",
|
| 96 |
+
"metadata": {},
|
| 97 |
+
"source": [
|
| 98 |
+
" "
|
| 99 |
+
]
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"cell_type": "markdown",
|
| 103 |
+
"metadata": {},
|
| 104 |
+
"source": [
|
| 105 |
+
"**Combinaciones lineales especiales**. Algunas combinaciones de $n$-vectores $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$ tienen nombres especiales. Por ejemplo, si los coeficientes de la combinación lineal son tales que $\\beta_{0}=\\beta_{1}=\\cdots=\\beta_{m-1} = 1$ entonces simplemente es una suma de vectores. Si en cambio $\\beta_{0}=\\beta_{1}=\\cdots=\\beta_{m-1} = 1/m$ entonces la combinación lineal se llama el *promedio de vectores*. \n",
|
| 106 |
+
"Cuando $\\beta_{0}+\\beta_{1}+\\cdots+\\beta_{m-1}=1$ entonces la combinación lineal se llama *combinación afín*, cuando los coeficientes $\\beta_{i}$ son no-negativos entonces la combinación lineal es llamada una *mezcla*, *combinación convexa* o un *promedio pesado*."
|
| 107 |
+
]
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"cell_type": "markdown",
|
| 111 |
+
"metadata": {},
|
| 112 |
+
"source": [
|
| 113 |
+
"## 3.3 Producto por un escalar-vector en Python"
|
| 114 |
+
]
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"cell_type": "markdown",
|
| 118 |
+
"metadata": {},
|
| 119 |
+
"source": [
|
| 120 |
+
"Desde la clase pasada introducimos Numpy para manejo de vectores. Una de las fortunas de usar numpy sobre listas es la simpleta de este tipo de operaciones. Realizar esta operación será tan sencillo como usar el operador $*$. "
|
| 121 |
+
]
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"cell_type": "markdown",
|
| 125 |
+
"metadata": {},
|
| 126 |
+
"source": [
|
| 127 |
+
"Partamos del vector $\\vec{x}= (1,-1,1)$ y del escalar $a = 3.1$ entonces, realicemos las operaciones $a\\vec{x}$ y $\\vec{x}a$"
|
| 128 |
+
]
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"cell_type": "code",
|
| 132 |
+
"execution_count": 18,
|
| 133 |
+
"metadata": {},
|
| 134 |
+
"outputs": [],
|
| 135 |
+
"source": [
|
| 136 |
+
"import numpy as np #primero importamos numpy"
|
| 137 |
+
]
|
| 138 |
+
},
|
| 139 |
+
{
|
| 140 |
+
"cell_type": "code",
|
| 141 |
+
"execution_count": 19,
|
| 142 |
+
"metadata": {},
|
| 143 |
+
"outputs": [],
|
| 144 |
+
"source": [
|
| 145 |
+
"x = np.array([1,-1,1]) #declaramos el vector x\n",
|
| 146 |
+
"\n",
|
| 147 |
+
"a = 3.1 #declaramos el escalar a"
|
| 148 |
+
]
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"cell_type": "code",
|
| 152 |
+
"execution_count": 20,
|
| 153 |
+
"metadata": {},
|
| 154 |
+
"outputs": [
|
| 155 |
+
{
|
| 156 |
+
"name": "stdout",
|
| 157 |
+
"output_type": "stream",
|
| 158 |
+
"text": [
|
| 159 |
+
"ax es [ 3.1 -3.1 3.1]\n"
|
| 160 |
+
]
|
| 161 |
+
}
|
| 162 |
+
],
|
| 163 |
+
"source": [
|
| 164 |
+
"print('ax es',a*x)"
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"cell_type": "code",
|
| 169 |
+
"execution_count": 21,
|
| 170 |
+
"metadata": {},
|
| 171 |
+
"outputs": [
|
| 172 |
+
{
|
| 173 |
+
"name": "stdout",
|
| 174 |
+
"output_type": "stream",
|
| 175 |
+
"text": [
|
| 176 |
+
"xa es [ 3.1 -3.1 3.1]\n"
|
| 177 |
+
]
|
| 178 |
+
}
|
| 179 |
+
],
|
| 180 |
+
"source": [
|
| 181 |
+
"print('xa es',x*a)"
|
| 182 |
+
]
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"cell_type": "code",
|
| 186 |
+
"execution_count": 9,
|
| 187 |
+
"metadata": {},
|
| 188 |
+
"outputs": [],
|
| 189 |
+
"source": [
|
| 190 |
+
"b = -a"
|
| 191 |
+
]
|
| 192 |
+
},
|
| 193 |
+
{
|
| 194 |
+
"cell_type": "code",
|
| 195 |
+
"execution_count": 22,
|
| 196 |
+
"metadata": {},
|
| 197 |
+
"outputs": [
|
| 198 |
+
{
|
| 199 |
+
"name": "stdout",
|
| 200 |
+
"output_type": "stream",
|
| 201 |
+
"text": [
|
| 202 |
+
"(b+a)x es [ 0. -0. 0.]\n"
|
| 203 |
+
]
|
| 204 |
+
}
|
| 205 |
+
],
|
| 206 |
+
"source": [
|
| 207 |
+
"print('(b+a)x es',(b+a)*x)"
|
| 208 |
+
]
|
| 209 |
+
},
|
| 210 |
+
{
|
| 211 |
+
"cell_type": "code",
|
| 212 |
+
"execution_count": 23,
|
| 213 |
+
"metadata": {},
|
| 214 |
+
"outputs": [
|
| 215 |
+
{
|
| 216 |
+
"name": "stdout",
|
| 217 |
+
"output_type": "stream",
|
| 218 |
+
"text": [
|
| 219 |
+
"xa+xb es [0. 0. 0.]\n"
|
| 220 |
+
]
|
| 221 |
+
}
|
| 222 |
+
],
|
| 223 |
+
"source": [
|
| 224 |
+
"print('xa+xb es',b*x+ x*a)"
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"cell_type": "markdown",
|
| 229 |
+
"metadata": {},
|
| 230 |
+
"source": [
|
| 231 |
+
"Ahora un ejecio más $\\vec{v} = (1,1)$. Si consideramos a = -1, b = 2, c = 0.1"
|
| 232 |
+
]
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"cell_type": "code",
|
| 236 |
+
"execution_count": 24,
|
| 237 |
+
"metadata": {},
|
| 238 |
+
"outputs": [],
|
| 239 |
+
"source": [
|
| 240 |
+
"v = np.array([1,1])\n",
|
| 241 |
+
"a = -1\n",
|
| 242 |
+
"b = 2\n",
|
| 243 |
+
"c = 0.1"
|
| 244 |
+
]
|
| 245 |
+
},
|
| 246 |
+
{
|
| 247 |
+
"cell_type": "code",
|
| 248 |
+
"execution_count": 25,
|
| 249 |
+
"metadata": {},
|
| 250 |
+
"outputs": [
|
| 251 |
+
{
|
| 252 |
+
"data": {
|
| 253 |
+
"text/plain": [
|
| 254 |
+
"array([-1, -1])"
|
| 255 |
+
]
|
| 256 |
+
},
|
| 257 |
+
"execution_count": 25,
|
| 258 |
+
"metadata": {},
|
| 259 |
+
"output_type": "execute_result"
|
| 260 |
+
}
|
| 261 |
+
],
|
| 262 |
+
"source": [
|
| 263 |
+
"v*a"
|
| 264 |
+
]
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"cell_type": "code",
|
| 268 |
+
"execution_count": 26,
|
| 269 |
+
"metadata": {},
|
| 270 |
+
"outputs": [
|
| 271 |
+
{
|
| 272 |
+
"data": {
|
| 273 |
+
"text/plain": [
|
| 274 |
+
"array([2, 2])"
|
| 275 |
+
]
|
| 276 |
+
},
|
| 277 |
+
"execution_count": 26,
|
| 278 |
+
"metadata": {},
|
| 279 |
+
"output_type": "execute_result"
|
| 280 |
+
}
|
| 281 |
+
],
|
| 282 |
+
"source": [
|
| 283 |
+
"v*b"
|
| 284 |
+
]
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"cell_type": "code",
|
| 288 |
+
"execution_count": 28,
|
| 289 |
+
"metadata": {},
|
| 290 |
+
"outputs": [
|
| 291 |
+
{
|
| 292 |
+
"data": {
|
| 293 |
+
"text/plain": [
|
| 294 |
+
"array([0.1, 0.1])"
|
| 295 |
+
]
|
| 296 |
+
},
|
| 297 |
+
"execution_count": 28,
|
| 298 |
+
"metadata": {},
|
| 299 |
+
"output_type": "execute_result"
|
| 300 |
+
}
|
| 301 |
+
],
|
| 302 |
+
"source": [
|
| 303 |
+
"v*c"
|
| 304 |
+
]
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"cell_type": "markdown",
|
| 308 |
+
"metadata": {},
|
| 309 |
+
"source": [
|
| 310 |
+
"## 3.3 Ejercicios"
|
| 311 |
+
]
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"cell_type": "markdown",
|
| 315 |
+
"metadata": {},
|
| 316 |
+
"source": [
|
| 317 |
+
"**Problema 1**. Escribe TODOS los vectores unitarios estándar de $\\mathbb{R}^{4}$. *Hint:* son cuatro. "
|
| 318 |
+
]
|
| 319 |
+
},
|
| 320 |
+
{
|
| 321 |
+
"cell_type": "markdown",
|
| 322 |
+
"metadata": {},
|
| 323 |
+
"source": [
|
| 324 |
+
"**Problema 2**. Escribe tres combinaciones lineales de vectores en $\\mathbb{R}^{3}$ para expresar el vector $[1,1,1]$."
|
| 325 |
+
]
|
| 326 |
+
},
|
| 327 |
+
{
|
| 328 |
+
"cell_type": "markdown",
|
| 329 |
+
"metadata": {},
|
| 330 |
+
"source": [
|
| 331 |
+
"**Problema 3.** Escribe tres combinaciones afines con vectores de $\\mathbb{R}^{3}$ donde $\\beta_{0}\\neq\\beta_{1}\\neq\\beta_{2}$ pero que se cumpla que $\\beta_{0}+\\beta_{1}+\\beta_{2}=1$. *HINT*: Si no se te ocurre ninguna combinación para los coeficientes la ecuación $\\beta_{0}+\\beta_{1}+\\beta_{2}=1$ tiene infinitas soluciones, puedes hacer un programa para encontrar tres. "
|
| 332 |
+
]
|
| 333 |
+
},
|
| 334 |
+
{
|
| 335 |
+
"cell_type": "code",
|
| 336 |
+
"execution_count": 31,
|
| 337 |
+
"metadata": {},
|
| 338 |
+
"outputs": [],
|
| 339 |
+
"source": [
|
| 340 |
+
"a = np.linspace(0,5,1000)"
|
| 341 |
+
]
|
| 342 |
+
},
|
| 343 |
+
{
|
| 344 |
+
"cell_type": "code",
|
| 345 |
+
"execution_count": 32,
|
| 346 |
+
"metadata": {},
|
| 347 |
+
"outputs": [
|
| 348 |
+
{
|
| 349 |
+
"data": {
|
| 350 |
+
"text/plain": [
|
| 351 |
+
"0.005005005005005005"
|
| 352 |
+
]
|
| 353 |
+
},
|
| 354 |
+
"execution_count": 32,
|
| 355 |
+
"metadata": {},
|
| 356 |
+
"output_type": "execute_result"
|
| 357 |
+
}
|
| 358 |
+
],
|
| 359 |
+
"source": [
|
| 360 |
+
"a[1]-a[0]"
|
| 361 |
+
]
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"cell_type": "code",
|
| 365 |
+
"execution_count": 33,
|
| 366 |
+
"metadata": {},
|
| 367 |
+
"outputs": [
|
| 368 |
+
{
|
| 369 |
+
"data": {
|
| 370 |
+
"text/plain": [
|
| 371 |
+
"0.005005005005005005"
|
| 372 |
+
]
|
| 373 |
+
},
|
| 374 |
+
"execution_count": 33,
|
| 375 |
+
"metadata": {},
|
| 376 |
+
"output_type": "execute_result"
|
| 377 |
+
}
|
| 378 |
+
],
|
| 379 |
+
"source": [
|
| 380 |
+
"a[2]-a[1]"
|
| 381 |
+
]
|
| 382 |
+
},
|
| 383 |
+
{
|
| 384 |
+
"cell_type": "code",
|
| 385 |
+
"execution_count": 34,
|
| 386 |
+
"metadata": {},
|
| 387 |
+
"outputs": [
|
| 388 |
+
{
|
| 389 |
+
"data": {
|
| 390 |
+
"text/plain": [
|
| 391 |
+
"0.005005005005005003"
|
| 392 |
+
]
|
| 393 |
+
},
|
| 394 |
+
"execution_count": 34,
|
| 395 |
+
"metadata": {},
|
| 396 |
+
"output_type": "execute_result"
|
| 397 |
+
}
|
| 398 |
+
],
|
| 399 |
+
"source": [
|
| 400 |
+
"a[999]-a[998]"
|
| 401 |
+
]
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"cell_type": "code",
|
| 405 |
+
"execution_count": 35,
|
| 406 |
+
"metadata": {},
|
| 407 |
+
"outputs": [
|
| 408 |
+
{
|
| 409 |
+
"data": {
|
| 410 |
+
"text/plain": [
|
| 411 |
+
"0.0"
|
| 412 |
+
]
|
| 413 |
+
},
|
| 414 |
+
"execution_count": 35,
|
| 415 |
+
"metadata": {},
|
| 416 |
+
"output_type": "execute_result"
|
| 417 |
+
}
|
| 418 |
+
],
|
| 419 |
+
"source": [
|
| 420 |
+
"a[0]"
|
| 421 |
+
]
|
| 422 |
+
},
|
| 423 |
+
{
|
| 424 |
+
"cell_type": "code",
|
| 425 |
+
"execution_count": 36,
|
| 426 |
+
"metadata": {},
|
| 427 |
+
"outputs": [
|
| 428 |
+
{
|
| 429 |
+
"data": {
|
| 430 |
+
"text/plain": [
|
| 431 |
+
"5.0"
|
| 432 |
+
]
|
| 433 |
+
},
|
| 434 |
+
"execution_count": 36,
|
| 435 |
+
"metadata": {},
|
| 436 |
+
"output_type": "execute_result"
|
| 437 |
+
}
|
| 438 |
+
],
|
| 439 |
+
"source": [
|
| 440 |
+
"a[999]"
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"cell_type": "code",
|
| 445 |
+
"execution_count": null,
|
| 446 |
+
"metadata": {},
|
| 447 |
+
"outputs": [],
|
| 448 |
+
"source": []
|
| 449 |
+
}
|
| 450 |
+
],
|
| 451 |
+
"metadata": {
|
| 452 |
+
"kernelspec": {
|
| 453 |
+
"display_name": "Python 3",
|
| 454 |
+
"language": "python",
|
| 455 |
+
"name": "python3"
|
| 456 |
+
},
|
| 457 |
+
"language_info": {
|
| 458 |
+
"codemirror_mode": {
|
| 459 |
+
"name": "ipython",
|
| 460 |
+
"version": 3
|
| 461 |
+
},
|
| 462 |
+
"file_extension": ".py",
|
| 463 |
+
"mimetype": "text/x-python",
|
| 464 |
+
"name": "python",
|
| 465 |
+
"nbconvert_exporter": "python",
|
| 466 |
+
"pygments_lexer": "ipython3",
|
| 467 |
+
"version": "3.7.3"
|
| 468 |
+
}
|
| 469 |
+
},
|
| 470 |
+
"nbformat": 4,
|
| 471 |
+
"nbformat_minor": 4
|
| 472 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://geogebra.org/calculator
|
| 2 |
+
https://colab.research.google.com/drive/1uF1QvMQBR9B-UPPUKg8d4DVuZNROqUA_?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Operaciones con Escalares y Vectores en Python usando NumPy.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:222647ee6ecca2b5541add87fa30960d05381916508c3f0930cca4a2855bd8ce
|
| 3 |
+
size 182945717
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Operaciones con Escalares y Vectores en Python usando NumPy.vtt
ADDED
|
@@ -0,0 +1,883 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.360 --> 00:00:05.600
|
| 4 |
+
Te doy la bienvenida de nuevo. La clase
|
| 5 |
+
|
| 6 |
+
00:00:05.600 --> 00:00:09.280
|
| 7 |
+
pasada, lo que vimos fue cómo operar, vimos
|
| 8 |
+
|
| 9 |
+
00:00:09.280 --> 00:00:13.325
|
| 10 |
+
algebraicamente cómo operar entre escalares y vectores. En
|
| 11 |
+
|
| 12 |
+
00:00:13.325 --> 00:00:16.765
|
| 13 |
+
esta clase vamos a ver cómo se puede
|
| 14 |
+
|
| 15 |
+
00:00:16.765 --> 00:00:19.404
|
| 16 |
+
realizar esta operación en Python, vamos a comprobar
|
| 17 |
+
|
| 18 |
+
00:00:19.404 --> 00:00:21.564
|
| 19 |
+
algunas de las propiedades y, de igual manera,
|
| 20 |
+
|
| 21 |
+
00:00:21.564 --> 00:00:26.445
|
| 22 |
+
vamos a ver qué significa geométricamente, visualmente, operar
|
| 23 |
+
|
| 24 |
+
00:00:26.445 --> 00:00:30.849
|
| 25 |
+
escalares. Sin más, vamos a la computadora. Ahora,
|
| 26 |
+
|
| 27 |
+
00:00:30.910 --> 00:00:33.649
|
| 28 |
+
nosotros ya vimos en clases pasadas cómo introducir
|
| 29 |
+
|
| 30 |
+
00:00:33.710 --> 00:00:37.949
|
| 31 |
+
NumPy nos permite introducir también estos elementos llamados
|
| 32 |
+
|
| 33 |
+
00:00:37.949 --> 00:00:41.230
|
| 34 |
+
NumPyArray, y los NumPyArray ya vimos que se
|
| 35 |
+
|
| 36 |
+
00:00:41.230 --> 00:00:45.395
|
| 37 |
+
comportan un poco como vectores, como los vectores
|
| 38 |
+
|
| 39 |
+
00:00:45.395 --> 00:00:48.115
|
| 40 |
+
algebraicos que hemos venido manejando. La una de
|
| 41 |
+
|
| 42 |
+
00:00:48.115 --> 00:00:50.115
|
| 43 |
+
las ventajas muy grandes o de las más
|
| 44 |
+
|
| 45 |
+
00:00:50.115 --> 00:00:53.475
|
| 46 |
+
grandes de utilizar NumPy sobre utilizar listas es
|
| 47 |
+
|
| 48 |
+
00:00:53.475 --> 00:00:57.400
|
| 49 |
+
que para realizar la operación de producto por
|
| 50 |
+
|
| 51 |
+
00:00:57.400 --> 00:01:01.400
|
| 52 |
+
un escalar vector en Python, simplemente tendríamos que
|
| 53 |
+
|
| 54 |
+
00:01:01.400 --> 00:01:05.319
|
| 55 |
+
utilizar este operador. Ahora, vamos a ver qué
|
| 56 |
+
|
| 57 |
+
00:01:05.319 --> 00:01:07.660
|
| 58 |
+
pasa si nosotros en lugar de utilizar NumPy
|
| 59 |
+
|
| 60 |
+
00:01:07.880 --> 00:01:11.445
|
| 61 |
+
utilizamos una lista, ¿de acuerdo? Por ejemplo, si
|
| 62 |
+
|
| 63 |
+
00:01:11.445 --> 00:01:14.244
|
| 64 |
+
nosotros declaramos a un vector a igual a
|
| 65 |
+
|
| 66 |
+
00:01:14.244 --> 00:01:18.965
|
| 67 |
+
la lista uno coma dos coma tres, si
|
| 68 |
+
|
| 69 |
+
00:01:18.965 --> 00:01:21.924
|
| 70 |
+
yo lo multiplico No, más sencillo, uno uno
|
| 71 |
+
|
| 72 |
+
00:01:21.924 --> 00:01:26.960
|
| 73 |
+
uno. Si nosotros multiplicáramos esta lista por tres,
|
| 74 |
+
|
| 75 |
+
00:01:27.740 --> 00:01:30.800
|
| 76 |
+
debería de quedarnos el vector tres tres tres.
|
| 77 |
+
|
| 78 |
+
00:01:31.020 --> 00:01:33.180
|
| 79 |
+
Veamos qué es lo que pasa. A por
|
| 80 |
+
|
| 81 |
+
00:01:33.180 --> 00:01:37.440
|
| 82 |
+
tres nos da este vector gigante, ¿por qué?
|
| 83 |
+
|
| 84 |
+
00:01:37.740 --> 00:01:40.220
|
| 85 |
+
Bueno, lo que hace este operador con las
|
| 86 |
+
|
| 87 |
+
00:01:40.220 --> 00:01:43.685
|
| 88 |
+
listas es que esta lista la multiplica este
|
| 89 |
+
|
| 90 |
+
00:01:43.685 --> 00:01:46.085
|
| 91 |
+
número de veces, pero no la multiplica entrada
|
| 92 |
+
|
| 93 |
+
00:01:46.085 --> 00:01:50.325
|
| 94 |
+
por entrada, sino multiplica esa lista en una
|
| 95 |
+
|
| 96 |
+
00:01:50.325 --> 00:01:53.625
|
| 97 |
+
lista más grande y luego se concatena. Es
|
| 98 |
+
|
| 99 |
+
00:01:53.685 --> 00:01:57.380
|
| 100 |
+
decir, toma esta primer lista, la plasma aquí
|
| 101 |
+
|
| 102 |
+
00:01:57.380 --> 00:01:59.880
|
| 103 |
+
y cumple que esta se repita tres veces,
|
| 104 |
+
|
| 105 |
+
00:01:59.939 --> 00:02:04.119
|
| 106 |
+
una, dos y tres, y después las concatena.
|
| 107 |
+
|
| 108 |
+
00:02:04.340 --> 00:02:06.659
|
| 109 |
+
Hay una suma aquí entre listas y nos
|
| 110 |
+
|
| 111 |
+
00:02:06.659 --> 00:02:12.564
|
| 112 |
+
queda exactamente este vector, ¿vale? Ahora, nosotros no
|
| 113 |
+
|
| 114 |
+
00:02:12.564 --> 00:02:15.204
|
| 115 |
+
quisiéramos eso, quisiéramos que nos tocara tres tres
|
| 116 |
+
|
| 117 |
+
00:02:15.204 --> 00:02:17.284
|
| 118 |
+
tres en lugar de tener este gran vector,
|
| 119 |
+
|
| 120 |
+
00:02:17.284 --> 00:02:19.224
|
| 121 |
+
que es más como un stack de vectores.
|
| 122 |
+
|
| 123 |
+
00:02:19.605 --> 00:02:21.284
|
| 124 |
+
Vamos a ver cómo lo haríamos con un
|
| 125 |
+
|
| 126 |
+
00:02:21.284 --> 00:02:27.980
|
| 127 |
+
pay. Ahora, vamos a partir de este vector,
|
| 128 |
+
|
| 129 |
+
00:02:27.980 --> 00:02:31.100
|
| 130 |
+
del uno coma menos uno coma uno, y
|
| 131 |
+
|
| 132 |
+
00:02:31.100 --> 00:02:33.660
|
| 133 |
+
vamos a partir también del escalar a igual
|
| 134 |
+
|
| 135 |
+
00:02:33.660 --> 00:02:36.140
|
| 136 |
+
a tres punto uno. Vamos a realizar las
|
| 137 |
+
|
| 138 |
+
00:02:36.140 --> 00:02:39.360
|
| 139 |
+
operaciones x por AYA por x para comprobar
|
| 140 |
+
|
| 141 |
+
00:02:39.605 --> 00:02:42.564
|
| 142 |
+
que se cumple la conmutatividad. De igual manera,
|
| 143 |
+
|
| 144 |
+
00:02:42.564 --> 00:02:46.245
|
| 145 |
+
vamos a comprobar la distribución sobre la suma
|
| 146 |
+
|
| 147 |
+
00:02:46.245 --> 00:02:48.724
|
| 148 |
+
de escalares y la distribución sobre la suma
|
| 149 |
+
|
| 150 |
+
00:02:48.724 --> 00:02:53.939
|
| 151 |
+
de vectores. Entonces, primero empecemos importando numpy. Luego,
|
| 152 |
+
|
| 153 |
+
00:02:53.939 --> 00:02:56.900
|
| 154 |
+
aquí vamos a declarar nuestro vector x, como
|
| 155 |
+
|
| 156 |
+
00:02:56.900 --> 00:02:59.700
|
| 157 |
+
está acá arriba, y vamos a declarar también
|
| 158 |
+
|
| 159 |
+
00:02:59.700 --> 00:03:06.019
|
| 160 |
+
nuestro escalar a. Ahora, veamos, vamos a multiplicar
|
| 161 |
+
|
| 162 |
+
00:03:06.019 --> 00:03:09.135
|
| 163 |
+
a por x simplemente, y esto nos da
|
| 164 |
+
|
| 165 |
+
00:03:09.515 --> 00:03:12.155
|
| 166 |
+
exactamente lo que nosotros estaríamos buscando, que es
|
| 167 |
+
|
| 168 |
+
00:03:12.155 --> 00:03:14.315
|
| 169 |
+
multiplicar tres punto uno por uno, que nos
|
| 170 |
+
|
| 171 |
+
00:03:14.315 --> 00:03:16.635
|
| 172 |
+
da tres punto uno, tres punto uno por
|
| 173 |
+
|
| 174 |
+
00:03:16.635 --> 00:03:18.555
|
| 175 |
+
menos uno, que nos daría menos tres punto
|
| 176 |
+
|
| 177 |
+
00:03:18.555 --> 00:03:20.235
|
| 178 |
+
uno, y tres punto uno por uno otra
|
| 179 |
+
|
| 180 |
+
00:03:20.235 --> 00:03:22.860
|
| 181 |
+
vez, que nos daría tres punto uno. Es
|
| 182 |
+
|
| 183 |
+
00:03:22.959 --> 00:03:25.959
|
| 184 |
+
exactamente el resultado que tenemos aquí. Vamos a
|
| 185 |
+
|
| 186 |
+
00:03:25.959 --> 00:03:28.680
|
| 187 |
+
hacerlo ahora x por a, es decir, al
|
| 188 |
+
|
| 189 |
+
00:03:28.680 --> 00:03:32.280
|
| 190 |
+
revés. Aquí multiplicamos a por x, acabamos de
|
| 191 |
+
|
| 192 |
+
00:03:32.280 --> 00:03:36.045
|
| 193 |
+
multiplicar x por a, y nos da exactamente
|
| 194 |
+
|
| 195 |
+
00:03:36.265 --> 00:03:38.985
|
| 196 |
+
el mismo resultado. Eso quiere decir que la
|
| 197 |
+
|
| 198 |
+
00:03:38.985 --> 00:03:43.145
|
| 199 |
+
operación sí está conmutando, ya la comprobamos. Ahora,
|
| 200 |
+
|
| 201 |
+
00:03:43.145 --> 00:03:46.105
|
| 202 |
+
vamos a aclarar un nuevo escalar, ese nuevo
|
| 203 |
+
|
| 204 |
+
00:03:46.105 --> 00:03:48.265
|
| 205 |
+
escalar va a ser b igual a menos
|
| 206 |
+
|
| 207 |
+
00:03:48.265 --> 00:03:52.450
|
| 208 |
+
a. Entonces, si nosotros realizamos la suma de
|
| 209 |
+
|
| 210 |
+
00:03:52.450 --> 00:03:54.530
|
| 211 |
+
b más a, sabemos que nos debería de
|
| 212 |
+
|
| 213 |
+
00:03:54.530 --> 00:03:57.090
|
| 214 |
+
dar cero, y si eso lo multiplicamos por
|
| 215 |
+
|
| 216 |
+
00:03:57.090 --> 00:03:59.750
|
| 217 |
+
x, eso nos debería de dar el vector
|
| 218 |
+
|
| 219 |
+
00:03:59.810 --> 00:04:04.415
|
| 220 |
+
cero. Vamos a hacerlo. Y vemos que, efectivamente,
|
| 221 |
+
|
| 222 |
+
00:04:04.474 --> 00:04:06.635
|
| 223 |
+
el vector que se nos arroja es el
|
| 224 |
+
|
| 225 |
+
00:04:06.635 --> 00:04:10.474
|
| 226 |
+
vector cero. Recuerden que, como lo mencioné en
|
| 227 |
+
|
| 228 |
+
00:04:10.474 --> 00:04:13.435
|
| 229 |
+
clases pasadas, menos cero o cero para fines
|
| 230 |
+
|
| 231 |
+
00:04:13.435 --> 00:04:15.870
|
| 232 |
+
prácticos va a ser lo mismo para nosotros,
|
| 233 |
+
|
| 234 |
+
00:04:15.870 --> 00:04:17.709
|
| 235 |
+
y es que este menos viene de la
|
| 236 |
+
|
| 237 |
+
00:04:17.709 --> 00:04:22.510
|
| 238 |
+
representación que tenemos en Python. Ahora, como vimos
|
| 239 |
+
|
| 240 |
+
00:04:22.510 --> 00:04:24.350
|
| 241 |
+
una de las propiedades acá arriba en la
|
| 242 |
+
|
| 243 |
+
00:04:24.350 --> 00:04:28.510
|
| 244 |
+
distribución sobre los escalares, daría lo mismo sumarlos
|
| 245 |
+
|
| 246 |
+
00:04:28.510 --> 00:04:32.565
|
| 247 |
+
y después multiplicarlos, que primero multiplicarlo y después
|
| 248 |
+
|
| 249 |
+
00:04:32.565 --> 00:04:34.745
|
| 250 |
+
sumarlos. Vamos a ver que esto se cumpla.
|
| 251 |
+
|
| 252 |
+
00:04:35.205 --> 00:04:38.565
|
| 253 |
+
Entonces, aquí hicimos b más a por x.
|
| 254 |
+
|
| 255 |
+
00:04:38.565 --> 00:04:39.925
|
| 256 |
+
Lo que vamos a hacer aquí va a
|
| 257 |
+
|
| 258 |
+
00:04:39.925 --> 00:04:42.425
|
| 259 |
+
ser x por a más x por b,
|
| 260 |
+
|
| 261 |
+
00:04:43.640 --> 00:04:47.000
|
| 262 |
+
como lo tenemos aquí, y nos daremos cuenta
|
| 263 |
+
|
| 264 |
+
00:04:47.000 --> 00:04:49.340
|
| 265 |
+
que, en efecto, nos da el vector cero.
|
| 266 |
+
|
| 267 |
+
00:04:49.720 --> 00:04:52.060
|
| 268 |
+
Entonces, eso quiere decir que así se distribuye
|
| 269 |
+
|
| 270 |
+
00:04:52.200 --> 00:04:54.380
|
| 271 |
+
sobre la suma. Vamos a hacer un ejercicio
|
| 272 |
+
|
| 273 |
+
00:04:55.000 --> 00:04:57.885
|
| 274 |
+
más, pero vamos a considerar un dos vector.
|
| 275 |
+
|
| 276 |
+
00:04:59.945 --> 00:05:06.605
|
| 277 |
+
Consideremos el dos vector, veamos, el dos vector,
|
| 278 |
+
|
| 279 |
+
00:05:07.770 --> 00:05:18.349
|
| 280 |
+
vamos a llamarle b, igual al dos coma,
|
| 281 |
+
|
| 282 |
+
00:05:18.569 --> 00:05:22.865
|
| 283 |
+
al uno coma uno, por ejemplo. Sí, muy
|
| 284 |
+
|
| 285 |
+
00:05:22.865 --> 00:05:28.165
|
| 286 |
+
buen vector, excelente vector. Ahora, si nosotros consideramos
|
| 287 |
+
|
| 288 |
+
00:05:30.225 --> 00:05:34.785
|
| 289 |
+
un escalar a igual a menos uno, un
|
| 290 |
+
|
| 291 |
+
00:05:34.785 --> 00:05:41.840
|
| 292 |
+
escalar b igual a dos, y un escalar
|
| 293 |
+
|
| 294 |
+
00:05:42.380 --> 00:05:46.620
|
| 295 |
+
c igual a cero punto uno van a
|
| 296 |
+
|
| 297 |
+
00:05:46.620 --> 00:05:50.240
|
| 298 |
+
tener resultados totalmente distintos si nosotros lo multiplicamos
|
| 299 |
+
|
| 300 |
+
00:05:50.460 --> 00:05:53.915
|
| 301 |
+
por este vector. Pero ¿qué tan distintos? Bien,
|
| 302 |
+
|
| 303 |
+
00:05:53.915 --> 00:05:56.655
|
| 304 |
+
vamos a declarar primero esos vectores aquí abajo.
|
| 305 |
+
|
| 306 |
+
00:05:57.195 --> 00:06:04.475
|
| 307 |
+
Declaremos b igual a nuestro numpy array n
|
| 308 |
+
|
| 309 |
+
00:06:04.475 --> 00:06:08.030
|
| 310 |
+
p dot array, paréntesis, y declaramos como si
|
| 311 |
+
|
| 312 |
+
00:06:08.030 --> 00:06:11.010
|
| 313 |
+
fuera una lista uno coma uno. Ya declaramos
|
| 314 |
+
|
| 315 |
+
00:06:11.070 --> 00:06:13.630
|
| 316 |
+
nuestro vector, y de una vez declaremos también
|
| 317 |
+
|
| 318 |
+
00:06:13.630 --> 00:06:17.169
|
| 319 |
+
nuestros escalares, a igual a menos uno, b
|
| 320 |
+
|
| 321 |
+
00:06:20.435 --> 00:06:26.355
|
| 322 |
+
igual a dos, y c igual a cero
|
| 323 |
+
|
| 324 |
+
00:06:26.355 --> 00:06:29.955
|
| 325 |
+
punto uno. ¿Qué es lo que va a
|
| 326 |
+
|
| 327 |
+
00:06:29.955 --> 00:06:34.300
|
| 328 |
+
pasar si yo multiplico b por ABYC? Bueno,
|
| 329 |
+
|
| 330 |
+
00:06:34.300 --> 00:06:39.660
|
| 331 |
+
algebraicamente simplemente es esto, nos da menos uno
|
| 332 |
+
|
| 333 |
+
00:06:39.660 --> 00:06:45.039
|
| 334 |
+
y menos uno en las dos entradas. B
|
| 335 |
+
|
| 336 |
+
00:06:45.259 --> 00:06:47.740
|
| 337 |
+
por b nos da dos y dos en
|
| 338 |
+
|
| 339 |
+
00:06:47.740 --> 00:06:56.905
|
| 340 |
+
las entradas, YCB por c, una disculpa aquí
|
| 341 |
+
|
| 342 |
+
00:06:56.905 --> 00:07:00.365
|
| 343 |
+
para mí, cero punto uno cero punto uno.
|
| 344 |
+
|
| 345 |
+
00:07:02.840 --> 00:07:07.159
|
| 346 |
+
¿Qué significa esto geométricamente? Porque sí, los vectores
|
| 347 |
+
|
| 348 |
+
00:07:07.159 --> 00:07:10.460
|
| 349 |
+
tienen una interpretación geométrica, así que vamos ahí.
|
| 350 |
+
|
| 351 |
+
00:07:10.919 --> 00:07:13.659
|
| 352 |
+
Los invito a que visiten este sitio, Geogebra
|
| 353 |
+
|
| 354 |
+
00:07:13.719 --> 00:07:17.715
|
| 355 |
+
dot org calculator, y en este sitio nosotros
|
| 356 |
+
|
| 357 |
+
00:07:17.715 --> 00:07:21.955
|
| 358 |
+
vamos a poder acceder a poder ver vectores
|
| 359 |
+
|
| 360 |
+
00:07:21.955 --> 00:07:24.515
|
| 361 |
+
o dos vectores, es decir, vectores en el
|
| 362 |
+
|
| 363 |
+
00:07:24.515 --> 00:07:26.455
|
| 364 |
+
plano, a eso se le llama el plano.
|
| 365 |
+
|
| 366 |
+
00:07:26.595 --> 00:07:29.949
|
| 367 |
+
Vamos a aclarar nuestro vector inicial. Lo declaramos
|
| 368 |
+
|
| 369 |
+
00:07:29.949 --> 00:07:33.750
|
| 370 |
+
metiendo vector uno coma uno, y ahí está
|
| 371 |
+
|
| 372 |
+
00:07:33.750 --> 00:07:37.130
|
| 373 |
+
nuestro vector inicial, ¿lo podemos ver? Los vectores
|
| 374 |
+
|
| 375 |
+
00:07:37.190 --> 00:07:39.849
|
| 376 |
+
los podemos representar dentro del plano como flechas
|
| 377 |
+
|
| 378 |
+
00:07:39.870 --> 00:07:42.470
|
| 379 |
+
y tienen algo que se llama sentido, es
|
| 380 |
+
|
| 381 |
+
00:07:42.470 --> 00:07:44.995
|
| 382 |
+
decir, apuntan hacia un lado, tienen algo que
|
| 383 |
+
|
| 384 |
+
00:07:44.995 --> 00:07:49.495
|
| 385 |
+
se llama magnitud, que es exactamente esto. Ahora,
|
| 386 |
+
|
| 387 |
+
00:07:50.275 --> 00:07:51.634
|
| 388 |
+
¿qué es qué es lo que mide la
|
| 389 |
+
|
| 390 |
+
00:07:51.634 --> 00:07:54.755
|
| 391 |
+
flecha a la magnitud? Ahora, nosotros hace ratito
|
| 392 |
+
|
| 393 |
+
00:07:54.755 --> 00:07:58.675
|
| 394 |
+
multiplicándolo llegamos a dos resultados distintos. ¿Cuáles fueron
|
| 395 |
+
|
| 396 |
+
00:07:58.675 --> 00:08:03.920
|
| 397 |
+
esos resultados? Bueno, regresemos a nuestro notebook. Si
|
| 398 |
+
|
| 399 |
+
00:08:03.920 --> 00:08:08.400
|
| 400 |
+
nosotros lo multiplicábamos por menos uno, por a,
|
| 401 |
+
|
| 402 |
+
00:08:08.400 --> 00:08:11.360
|
| 403 |
+
lo que teníamos era este nuevo vector, el
|
| 404 |
+
|
| 405 |
+
00:08:11.360 --> 00:08:13.375
|
| 406 |
+
menos uno coma menos uno. ¿Cómo se ve
|
| 407 |
+
|
| 408 |
+
00:08:13.375 --> 00:08:22.235
|
| 409 |
+
ese vector? Bueno, ponemos vector menos uno coma
|
| 410 |
+
|
| 411 |
+
00:08:22.235 --> 00:08:26.075
|
| 412 |
+
menos uno. Fíjense que algo muy curioso es
|
| 413 |
+
|
| 414 |
+
00:08:26.075 --> 00:08:28.820
|
| 415 |
+
que, en lugar de que el sentido sea
|
| 416 |
+
|
| 417 |
+
00:08:28.820 --> 00:08:32.919
|
| 418 |
+
este, se cambia totalmente el sentido, es decir,
|
| 419 |
+
|
| 420 |
+
00:08:33.299 --> 00:08:37.460
|
| 421 |
+
multiplicar por un escalar negativo cambia el sentido
|
| 422 |
+
|
| 423 |
+
00:08:37.460 --> 00:08:40.765
|
| 424 |
+
del vector. Si nosotros lo multiplicáramos a este
|
| 425 |
+
|
| 426 |
+
00:08:40.765 --> 00:08:43.245
|
| 427 |
+
vector b, el menos uno menos uno, nuevamente
|
| 428 |
+
|
| 429 |
+
00:08:43.245 --> 00:08:46.765
|
| 430 |
+
por menos uno, nos daría al vector en
|
| 431 |
+
|
| 432 |
+
00:08:46.765 --> 00:08:49.645
|
| 433 |
+
esta dirección, es decir, nos regresaría el vector
|
| 434 |
+
|
| 435 |
+
00:08:49.645 --> 00:08:54.385
|
| 436 |
+
u, ¿vale? Vamos a desaparecer este vector. Ahora,
|
| 437 |
+
|
| 438 |
+
00:08:55.150 --> 00:08:57.710
|
| 439 |
+
¿qué pasa con el vector b? El vector
|
| 440 |
+
|
| 441 |
+
00:08:57.710 --> 00:09:00.830
|
| 442 |
+
b era el vector dos y nos daba
|
| 443 |
+
|
| 444 |
+
00:09:00.830 --> 00:09:03.070
|
| 445 |
+
el vector, no, el escalar dos, y nos
|
| 446 |
+
|
| 447 |
+
00:09:03.070 --> 00:09:06.270
|
| 448 |
+
daba el vector dos coma dos. Entonces, veamos
|
| 449 |
+
|
| 450 |
+
00:09:06.270 --> 00:09:10.050
|
| 451 |
+
cómo se ve ese. Vector dos coma dos.
|
| 452 |
+
|
| 453 |
+
00:09:10.245 --> 00:09:15.305
|
| 454 |
+
Fíjense que, en este caso, el vector b
|
| 455 |
+
|
| 456 |
+
00:09:15.605 --> 00:09:18.565
|
| 457 |
+
es dos veces la magnitud que tenía el
|
| 458 |
+
|
| 459 |
+
00:09:18.565 --> 00:09:22.404
|
| 460 |
+
vector u. Está en el mismo sentido, tiene
|
| 461 |
+
|
| 462 |
+
00:09:22.404 --> 00:09:27.670
|
| 463 |
+
la misma dirección, pero tiene una magnitud mucho
|
| 464 |
+
|
| 465 |
+
00:09:27.670 --> 00:09:30.949
|
| 466 |
+
mayor, tiene un tamaño mucho más grande, es
|
| 467 |
+
|
| 468 |
+
00:09:30.949 --> 00:09:36.870
|
| 469 |
+
decir, que multiplicarlo por un escalar positivo lo
|
| 470 |
+
|
| 471 |
+
00:09:36.870 --> 00:09:41.945
|
| 472 |
+
hace más grande. Regresando, multiplicarlo por un vector
|
| 473 |
+
|
| 474 |
+
00:09:41.945 --> 00:09:44.825
|
| 475 |
+
negativo le va a cambiar el sentido. Pero
|
| 476 |
+
|
| 477 |
+
00:09:44.825 --> 00:09:47.865
|
| 478 |
+
¿qué pasa ahora si nosotros, regresamos al vector
|
| 479 |
+
|
| 480 |
+
00:09:47.865 --> 00:09:50.505
|
| 481 |
+
que teníamos originalmente, el uno coma uno, si
|
| 482 |
+
|
| 483 |
+
00:09:50.505 --> 00:09:53.885
|
| 484 |
+
nosotros lo multiplicamos por este número de aquí,
|
| 485 |
+
|
| 486 |
+
00:09:54.449 --> 00:09:58.529
|
| 487 |
+
cero punto uno. Bueno, pues eso nos daba
|
| 488 |
+
|
| 489 |
+
00:09:58.529 --> 00:10:00.930
|
| 490 |
+
el vector cero punto uno coma cero punto
|
| 491 |
+
|
| 492 |
+
00:10:00.930 --> 00:10:08.255
|
| 493 |
+
uno. Vamos a declararlo aquí. Cero punto uno
|
| 494 |
+
|
| 495 |
+
00:10:08.255 --> 00:10:12.415
|
| 496 |
+
coma cero punto uno. ¿Qué es lo que
|
| 497 |
+
|
| 498 |
+
00:10:12.415 --> 00:10:16.015
|
| 499 |
+
pasó? Bueno, obtuvimos este vector, que es un
|
| 500 |
+
|
| 501 |
+
00:10:16.015 --> 00:10:18.755
|
| 502 |
+
vector súper pequeño. Fíjense que lo que hicimos
|
| 503 |
+
|
| 504 |
+
00:10:18.895 --> 00:10:22.730
|
| 505 |
+
fue encoger el vector original. Nuestro vector original
|
| 506 |
+
|
| 507 |
+
00:10:22.950 --> 00:10:29.190
|
| 508 |
+
es muchísimo más grande. Entonces, básicamente, lo que
|
| 509 |
+
|
| 510 |
+
00:10:29.190 --> 00:10:32.390
|
| 511 |
+
tenemos es que, si nosotros multiplicamos a nuestro
|
| 512 |
+
|
| 513 |
+
00:10:32.390 --> 00:10:35.270
|
| 514 |
+
vector por un número positivo, si el número
|
| 515 |
+
|
| 516 |
+
00:10:35.270 --> 00:10:37.755
|
| 517 |
+
es mayor que uno, entonces lo que nos
|
| 518 |
+
|
| 519 |
+
00:10:37.755 --> 00:10:41.835
|
| 520 |
+
va a causar es hacer la magnitud mucho
|
| 521 |
+
|
| 522 |
+
00:10:41.835 --> 00:10:48.714
|
| 523 |
+
más grande de nuestro vector, digamos, amplificar. Si
|
| 524 |
+
|
| 525 |
+
00:10:48.714 --> 00:10:52.150
|
| 526 |
+
nuestro escalar es menor que uno, pero sigue
|
| 527 |
+
|
| 528 |
+
00:10:52.150 --> 00:10:57.830
|
| 529 |
+
siendo positivo, lo que va a hacer es
|
| 530 |
+
|
| 531 |
+
00:10:57.830 --> 00:11:01.290
|
| 532 |
+
hacerlo más pequeño, podríamos decir encogerlo o comprimirlo.
|
| 533 |
+
|
| 534 |
+
00:11:02.150 --> 00:11:07.165
|
| 535 |
+
Lo vemos acá. Y si nuestro vector es
|
| 536 |
+
|
| 537 |
+
00:11:07.165 --> 00:11:10.285
|
| 538 |
+
menor que cero, es decir, negativo, lo que
|
| 539 |
+
|
| 540 |
+
00:11:10.285 --> 00:11:14.845
|
| 541 |
+
hace es que le cambia la dirección, le
|
| 542 |
+
|
| 543 |
+
00:11:14.845 --> 00:11:19.779
|
| 544 |
+
cambia el sentido. Ahora bien, ¿qué pasa si
|
| 545 |
+
|
| 546 |
+
00:11:19.779 --> 00:11:23.160
|
| 547 |
+
nosotros lo multiplicamos, pero que sea un vector
|
| 548 |
+
|
| 549 |
+
00:11:24.260 --> 00:11:28.200
|
| 550 |
+
menor que menos uno, pero que sea negativo?
|
| 551 |
+
|
| 552 |
+
00:11:31.384 --> 00:11:33.865
|
| 553 |
+
Es decir, mayor que menos uno, menor que
|
| 554 |
+
|
| 555 |
+
00:11:33.865 --> 00:11:37.384
|
| 556 |
+
cero. Por ejemplo, consideramos que lo multiplicamos por
|
| 557 |
+
|
| 558 |
+
00:11:37.384 --> 00:11:39.625
|
| 559 |
+
menos cero punto uno, esto nos daría el
|
| 560 |
+
|
| 561 |
+
00:11:39.625 --> 00:11:42.185
|
| 562 |
+
vector menos cero punto uno menos cero punto
|
| 563 |
+
|
| 564 |
+
00:11:42.185 --> 00:11:45.464
|
| 565 |
+
uno. Vamos a ver cómo se ve este
|
| 566 |
+
|
| 567 |
+
00:11:45.464 --> 00:11:49.840
|
| 568 |
+
vector. Y fíjense que si tenemos este vector
|
| 569 |
+
|
| 570 |
+
00:11:49.840 --> 00:11:53.220
|
| 571 |
+
original o ese vector original lo multiplicado por
|
| 572 |
+
|
| 573 |
+
00:11:53.760 --> 00:11:58.420
|
| 574 |
+
el menos cero punto uno, nos da exactamente
|
| 575 |
+
|
| 576 |
+
00:11:58.560 --> 00:12:01.435
|
| 577 |
+
lo mismo que en el caso positivo, simplemente
|
| 578 |
+
|
| 579 |
+
00:12:01.575 --> 00:12:05.895
|
| 580 |
+
se encogió nuestro vector, miren. Partimos de nuestro
|
| 581 |
+
|
| 582 |
+
00:12:05.895 --> 00:12:11.895
|
| 583 |
+
vector u, lo multiplicamos por menos uno y
|
| 584 |
+
|
| 585 |
+
00:12:11.895 --> 00:12:15.095
|
| 586 |
+
nos da este vector encogido a, pero en
|
| 587 |
+
|
| 588 |
+
00:12:15.095 --> 00:12:18.990
|
| 589 |
+
sentido contrario. Esta es la noción que tenemos
|
| 590 |
+
|
| 591 |
+
00:12:18.990 --> 00:12:23.170
|
| 592 |
+
que tener geométricamente cuando operamos escalares con vectores.
|
| 593 |
+
|
| 594 |
+
00:12:23.630 --> 00:12:27.709
|
| 595 |
+
Los vectores van a sufrir una magnificación, es
|
| 596 |
+
|
| 597 |
+
00:12:27.709 --> 00:12:32.145
|
| 598 |
+
decir, se van a hacer más grandes, su
|
| 599 |
+
|
| 600 |
+
00:12:32.145 --> 00:12:35.445
|
| 601 |
+
magnitud va a cambiar, van a también hacerse
|
| 602 |
+
|
| 603 |
+
00:12:36.305 --> 00:12:40.545
|
| 604 |
+
más pequeños si los multiplicamos por escalares entre
|
| 605 |
+
|
| 606 |
+
00:12:40.545 --> 00:12:43.905
|
| 607 |
+
menos uno y uno. Si son negativos, hay
|
| 608 |
+
|
| 609 |
+
00:12:43.905 --> 00:12:47.050
|
| 610 |
+
que recordar que se van a hacer, se
|
| 611 |
+
|
| 612 |
+
00:12:47.050 --> 00:12:50.089
|
| 613 |
+
va a cambiar el sentido y, además, si
|
| 614 |
+
|
| 615 |
+
00:12:50.089 --> 00:12:52.250
|
| 616 |
+
es negativo y es mayor que uno, cambia
|
| 617 |
+
|
| 618 |
+
00:12:52.250 --> 00:12:55.610
|
| 619 |
+
el sentido y lo magnifica, pero en el
|
| 620 |
+
|
| 621 |
+
00:12:55.610 --> 00:12:58.889
|
| 622 |
+
sentido contrario. Es decir, si lo multiplicáramos por
|
| 623 |
+
|
| 624 |
+
00:12:58.889 --> 00:13:04.065
|
| 625 |
+
menos dos, en lugar de dos, este vector
|
| 626 |
+
|
| 627 |
+
00:13:04.605 --> 00:13:07.645
|
| 628 |
+
w ya no apuntaría hacia acá, sino apuntaría
|
| 629 |
+
|
| 630 |
+
00:13:07.645 --> 00:13:11.345
|
| 631 |
+
en la dirección opuesta. Por ejemplo, menos dos,
|
| 632 |
+
|
| 633 |
+
00:13:14.940 --> 00:13:20.700
|
| 634 |
+
menos dos y menos dos. Entonces, ese era
|
| 635 |
+
|
| 636 |
+
00:13:20.700 --> 00:13:23.980
|
| 637 |
+
nuestro vector original y la magnitud de esta
|
| 638 |
+
|
| 639 |
+
00:13:23.980 --> 00:13:26.634
|
| 640 |
+
es del doble, pero ahora está en la
|
| 641 |
+
|
| 642 |
+
00:13:26.634 --> 00:13:32.654
|
| 643 |
+
dirección opuesta. Apunta en la dirección opuesta. Perfecto,
|
| 644 |
+
|
| 645 |
+
00:13:32.954 --> 00:13:36.254
|
| 646 |
+
regresemos a nuestro notebook. Para terminar esta clase,
|
| 647 |
+
|
| 648 |
+
00:13:36.714 --> 00:13:41.610
|
| 649 |
+
me gustaría que realizaras esos ejercicios. Primero, escribe
|
| 650 |
+
|
| 651 |
+
00:13:41.610 --> 00:13:44.550
|
| 652 |
+
todos los vectores unitarios estándar de r cuatro.
|
| 653 |
+
|
| 654 |
+
00:13:45.090 --> 00:13:51.010
|
| 655 |
+
Nosotros acá dijimos que un espacio vectorial de
|
| 656 |
+
|
| 657 |
+
00:13:51.010 --> 00:13:55.670
|
| 658 |
+
dimensión n tenía hasta n vectores unitarios estándar.
|
| 659 |
+
|
| 660 |
+
00:13:56.335 --> 00:13:58.654
|
| 661 |
+
Tú vas a tener que construirlos para un
|
| 662 |
+
|
| 663 |
+
00:13:58.654 --> 00:14:01.935
|
| 664 |
+
espacio de dimensión cuatro. El gint es que
|
| 665 |
+
|
| 666 |
+
00:14:01.935 --> 00:14:04.495
|
| 667 |
+
son cuatro y, además, te puedes basar en
|
| 668 |
+
|
| 669 |
+
00:14:04.495 --> 00:14:07.375
|
| 670 |
+
la construcción que ya habíamos hecho para los
|
| 671 |
+
|
| 672 |
+
00:14:07.375 --> 00:14:10.195
|
| 673 |
+
de r tres, que son estos de aquí.
|
| 674 |
+
|
| 675 |
+
00:14:13.860 --> 00:14:18.040
|
| 676 |
+
Ahora bien, escribe tres combinaciones lineales también de
|
| 677 |
+
|
| 678 |
+
00:14:18.100 --> 00:14:20.420
|
| 679 |
+
vectores, ahora en r tres, no en r
|
| 680 |
+
|
| 681 |
+
00:14:20.420 --> 00:14:23.380
|
| 682 |
+
cuatro, para poder expresar al vector uno coma
|
| 683 |
+
|
| 684 |
+
00:14:23.380 --> 00:14:27.555
|
| 685 |
+
uno coma uno. Si recordamos, acá vimos una
|
| 686 |
+
|
| 687 |
+
00:14:27.555 --> 00:14:31.714
|
| 688 |
+
combinación para poder expresar a este vector en
|
| 689 |
+
|
| 690 |
+
00:14:31.714 --> 00:14:34.935
|
| 691 |
+
término de los vectores unitarios, pero la combinación
|
| 692 |
+
|
| 693 |
+
00:14:35.235 --> 00:14:37.795
|
| 694 |
+
lineal no necesariamente tiene que ser en término
|
| 695 |
+
|
| 696 |
+
00:14:37.795 --> 00:14:41.210
|
| 697 |
+
de los vectores unitarios. Una, la más sencilla,
|
| 698 |
+
|
| 699 |
+
00:14:41.210 --> 00:14:43.690
|
| 700 |
+
sería en función de las de los vectores
|
| 701 |
+
|
| 702 |
+
00:14:43.690 --> 00:14:48.570
|
| 703 |
+
unitarios. Pero el reto aquí es que escribas
|
| 704 |
+
|
| 705 |
+
00:14:48.570 --> 00:14:54.005
|
| 706 |
+
tres combinaciones. Por último, uno de los problemas
|
| 707 |
+
|
| 708 |
+
00:14:54.144 --> 00:14:58.404
|
| 709 |
+
será que escribas tres combinaciones afines con vectores
|
| 710 |
+
|
| 711 |
+
00:14:58.545 --> 00:15:01.105
|
| 712 |
+
de r tres, donde b cero, b uno
|
| 713 |
+
|
| 714 |
+
00:15:01.105 --> 00:15:04.545
|
| 715 |
+
y b dos sean distintos, pero que se
|
| 716 |
+
|
| 717 |
+
00:15:04.545 --> 00:15:07.010
|
| 718 |
+
cumpla que la suma de ellos, b cero
|
| 719 |
+
|
| 720 |
+
00:15:07.010 --> 00:15:09.090
|
| 721 |
+
más b uno más b dos sea igual
|
| 722 |
+
|
| 723 |
+
00:15:09.090 --> 00:15:11.410
|
| 724 |
+
a uno. Un hind será que si no
|
| 725 |
+
|
| 726 |
+
00:15:11.410 --> 00:15:14.530
|
| 727 |
+
se te ocurre ninguna combinación de coeficientes que
|
| 728 |
+
|
| 729 |
+
00:15:14.530 --> 00:15:17.970
|
| 730 |
+
te dé un uno, esta ecuación realmente tiene
|
| 731 |
+
|
| 732 |
+
00:15:17.970 --> 00:15:21.735
|
| 733 |
+
infinitas soluciones, y una forma de poder acceder
|
| 734 |
+
|
| 735 |
+
00:15:21.735 --> 00:15:23.895
|
| 736 |
+
a ellas es a través de un programa,
|
| 737 |
+
|
| 738 |
+
00:15:23.895 --> 00:15:26.135
|
| 739 |
+
es que hagas un programa. Voy a hacer
|
| 740 |
+
|
| 741 |
+
00:15:26.135 --> 00:15:29.735
|
| 742 |
+
un ejemplo en r dos, o bueno, buscando
|
| 743 |
+
|
| 744 |
+
00:15:29.735 --> 00:15:32.455
|
| 745 |
+
nada más resolverla para b cero más b
|
| 746 |
+
|
| 747 |
+
00:15:32.455 --> 00:15:36.920
|
| 748 |
+
uno igual a uno. El agente que te
|
| 749 |
+
|
| 750 |
+
00:15:36.920 --> 00:15:39.800
|
| 751 |
+
voy a dar es utilizar esta función, se
|
| 752 |
+
|
| 753 |
+
00:15:39.800 --> 00:15:44.680
|
| 754 |
+
llama n p linkspace. Nosotros le damos un
|
| 755 |
+
|
| 756 |
+
00:15:44.680 --> 00:15:49.365
|
| 757 |
+
punto de partida, un punto final, y además
|
| 758 |
+
|
| 759 |
+
00:15:49.365 --> 00:15:53.524
|
| 760 |
+
le decimos cuántos elementos queremos. Lo que va
|
| 761 |
+
|
| 762 |
+
00:15:53.524 --> 00:15:56.264
|
| 763 |
+
a hacer va a ser partir la distancia
|
| 764 |
+
|
| 765 |
+
00:15:57.204 --> 00:15:59.445
|
| 766 |
+
entre el cero y el cinco en mil
|
| 767 |
+
|
| 768 |
+
00:15:59.445 --> 00:16:02.567
|
| 769 |
+
cachos, en donde el cacho cero y el
|
| 770 |
+
|
| 771 |
+
00:16:02.567 --> 00:16:05.081
|
| 772 |
+
cacho uno van a estar separados a la
|
| 773 |
+
|
| 774 |
+
00:16:05.081 --> 00:16:08.290
|
| 775 |
+
misma distancia. Veamos los elementos. Si nosotros ejecutamos
|
| 776 |
+
|
| 777 |
+
00:16:08.430 --> 00:16:12.510
|
| 778 |
+
esta instrucción, veamos que nos arroja mil elementos,
|
| 779 |
+
|
| 780 |
+
00:16:12.510 --> 00:16:15.334
|
| 781 |
+
un vector con mil elementos, y que son
|
| 782 |
+
|
| 783 |
+
00:16:15.475 --> 00:16:20.274
|
| 784 |
+
exactamente los números del cero al cinco. Si
|
| 785 |
+
|
| 786 |
+
00:16:20.274 --> 00:16:24.935
|
| 787 |
+
nosotros le calculamos su longitud, nos daremos cuenta
|
| 788 |
+
|
| 789 |
+
00:16:25.394 --> 00:16:28.980
|
| 790 |
+
que la longitud es exactamente mil. Ahora, voy
|
| 791 |
+
|
| 792 |
+
00:16:28.980 --> 00:16:32.340
|
| 793 |
+
a asignar este vector a una variable, digamos
|
| 794 |
+
|
| 795 |
+
00:16:32.340 --> 00:16:37.560
|
| 796 |
+
a. Notemos que este vector cumple que a
|
| 797 |
+
|
| 798 |
+
00:16:38.420 --> 00:16:43.214
|
| 799 |
+
cero, que es la primera entrada, restada de
|
| 800 |
+
|
| 801 |
+
00:16:43.214 --> 00:16:49.135
|
| 802 |
+
la entrada a uno, es simplemente cero punto
|
| 803 |
+
|
| 804 |
+
00:16:49.135 --> 00:16:52.195
|
| 805 |
+
cero cinco. Veamos qué pasa con la entrada
|
| 806 |
+
|
| 807 |
+
00:16:52.255 --> 00:17:02.110
|
| 808 |
+
siguiente. A la entrada tres menos la entrada
|
| 809 |
+
|
| 810 |
+
00:17:02.410 --> 00:17:07.369
|
| 811 |
+
dos. Nos da exactamente el mismo número, es
|
| 812 |
+
|
| 813 |
+
00:17:07.369 --> 00:17:11.205
|
| 814 |
+
decir, todos los elementos de esta de este
|
| 815 |
+
|
| 816 |
+
00:17:11.585 --> 00:17:15.765
|
| 817 |
+
vector cumplen que están separados o distan exactamente
|
| 818 |
+
|
| 819 |
+
00:17:16.305 --> 00:17:19.105
|
| 820 |
+
este número, ¿vale? Y lo mismo lo podemos
|
| 821 |
+
|
| 822 |
+
00:17:19.105 --> 00:17:21.744
|
| 823 |
+
hacer con los dos últimos. Sabemos que la
|
| 824 |
+
|
| 825 |
+
00:17:21.744 --> 00:17:25.150
|
| 826 |
+
longitud del vector es mil, entonces, como el
|
| 827 |
+
|
| 828 |
+
00:17:25.150 --> 00:17:28.430
|
| 829 |
+
índice va desde cero hasta n menos uno,
|
| 830 |
+
|
| 831 |
+
00:17:28.430 --> 00:17:31.390
|
| 832 |
+
nuestros índices irían de cero hasta novecientos noventa
|
| 833 |
+
|
| 834 |
+
00:17:31.390 --> 00:17:36.050
|
| 835 |
+
y nueve. Entonces, a novecientos noventa y nueve
|
| 836 |
+
|
| 837 |
+
00:17:38.975 --> 00:17:42.674
|
| 838 |
+
menos el novecientos noventa y ocho, nos da
|
| 839 |
+
|
| 840 |
+
00:17:43.054 --> 00:17:46.095
|
| 841 |
+
casi el mismo número. Estas variaciones tan pequeñas
|
| 842 |
+
|
| 843 |
+
00:17:46.095 --> 00:17:48.735
|
| 844 |
+
son normales, pero si nos fijamos en los
|
| 845 |
+
|
| 846 |
+
00:17:48.735 --> 00:17:52.540
|
| 847 |
+
tres primeros dígitos como dígitos significativos, es exactamente
|
| 848 |
+
|
| 849 |
+
00:17:52.919 --> 00:17:55.400
|
| 850 |
+
la misma diferencia. Y es que, a veces,
|
| 851 |
+
|
| 852 |
+
00:17:55.400 --> 00:17:57.880
|
| 853 |
+
por la precisión, no se puede partir todos
|
| 854 |
+
|
| 855 |
+
00:17:57.880 --> 00:18:01.880
|
| 856 |
+
los cachos a esta precisión en el mismo
|
| 857 |
+
|
| 858 |
+
00:18:01.880 --> 00:18:07.020
|
| 859 |
+
tamaño. Sin embargo, son considerablemente iguales los cachos.
|
| 860 |
+
|
| 861 |
+
00:18:09.105 --> 00:18:12.065
|
| 862 |
+
Y una cosa más, si nosotros llamamos al
|
| 863 |
+
|
| 864 |
+
00:18:12.065 --> 00:18:14.645
|
| 865 |
+
a cero, este debería de ser el cero,
|
| 866 |
+
|
| 867 |
+
00:18:14.705 --> 00:18:18.465
|
| 868 |
+
y si nosotros llamamos al a novecientos noventa
|
| 869 |
+
|
| 870 |
+
00:18:18.465 --> 00:18:21.365
|
| 871 |
+
y nueve, este debería ser el cinco exactamente.
|
| 872 |
+
|
| 873 |
+
00:18:23.520 --> 00:18:29.120
|
| 874 |
+
Entonces, tu reto será utilizar esta función para
|
| 875 |
+
|
| 876 |
+
00:18:29.120 --> 00:18:33.760
|
| 877 |
+
poder encontrar una solución a esta ecuación. Eso
|
| 878 |
+
|
| 879 |
+
00:18:33.760 --> 00:18:35.679
|
| 880 |
+
es todo por mi parte. Nos vemos en
|
| 881 |
+
|
| 882 |
+
00:18:35.679 --> 00:18:36.740
|
| 883 |
+
la próxima clase.
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/07-producto_escalar_ca62b4c4-85e7-449a-8a01-424da3f688a7.ipynb
ADDED
|
@@ -0,0 +1,472 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 3. Producto por un escalar o multiplicación escalar-vector."
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"Otra operación es el *producto por un escalar* o *multiplicación escalar-vector* en la cual un vector es multiplicado por un escalar. La operación se hace elemento a elemento. Sea $\\vec{v}$ un vector de $\\mathbb{R}^{n}$ y $\\alpha \\in \\mathbb{R}$. Si $\\vec{x} = \\alpha \\vec{v}$ entonces:\n",
|
| 15 |
+
"$$\n",
|
| 16 |
+
"\\vec{x} = \\alpha \\vec{v} = \\alpha\\begin{bmatrix}v_{0}\\\\ v_{1}\\\\ \\vdots \\\\ v_{n-1}\\end{bmatrix} = \\begin{bmatrix}\\alpha \\cdot v_{0}\\\\ \\alpha \\cdot v_{1}\\\\ \\vdots \\\\ \\alpha \\cdot v_{n-1}\\end{bmatrix}\n",
|
| 17 |
+
"$$"
|
| 18 |
+
]
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"cell_type": "markdown",
|
| 22 |
+
"metadata": {},
|
| 23 |
+
"source": [
|
| 24 |
+
"Por ejemplo, si $\\vec{v} = (0,1,-2.3)$ y $\\alpha = -1.1$ entonces $\\alpha \\vec{v} = (0,-1.1,2.53)$"
|
| 25 |
+
]
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"cell_type": "markdown",
|
| 29 |
+
"metadata": {},
|
| 30 |
+
"source": [
|
| 31 |
+
"## 3.1 Propiedades del producto por un escalar-vector"
|
| 32 |
+
]
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"cell_type": "markdown",
|
| 36 |
+
"metadata": {},
|
| 37 |
+
"source": [
|
| 38 |
+
"Sean $\\vec{x},\\vec{y}$ dos vectores y $\\alpha, \\beta$ dos escalares cualquiera. Las propiedades que cumple el producto escalar-vector son las siguientes:\n",
|
| 39 |
+
"* Conmutatividad: $\\alpha \\vec{x} = \\vec{x}\\alpha $\n",
|
| 40 |
+
"\n",
|
| 41 |
+
"* Asociatividad: $(\\beta \\alpha)\\vec{x} = \\beta (\\alpha\\vec{x})$\n",
|
| 42 |
+
"\n",
|
| 43 |
+
"* Distribución sobre suma escalar: $(\\alpha + \\beta)\\vec{x} = \\alpha \\vec{x} + \\beta\\vec{x} =\\beta\\vec{x} + \\alpha\\vec{x} = \\vec{x}(\\alpha + \\beta) $\n",
|
| 44 |
+
"\n",
|
| 45 |
+
"* Distribución sobre suma de vectores: $\\alpha (\\vec{x}+\\vec{y}) = \\alpha\\vec{x} + \\alpha\\vec{y}$"
|
| 46 |
+
]
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"cell_type": "markdown",
|
| 50 |
+
"metadata": {},
|
| 51 |
+
"source": [
|
| 52 |
+
"## 3.2 Algunas consideraciones"
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"cell_type": "markdown",
|
| 57 |
+
"metadata": {},
|
| 58 |
+
"source": [
|
| 59 |
+
"**Combinaciones lineales**. Sean $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$ $n$-vectores y $\\beta_{0},\\beta_{1},\\dots,\\beta_{m-1}$ escalares entonces podemos definir el siguiente $n$-vector:\n",
|
| 60 |
+
"\n",
|
| 61 |
+
"$$\n",
|
| 62 |
+
"\\beta_{0}\\vec{a}_{0}+\\beta_{1}\\vec{a}_{1}+\\cdots+\\beta_{m-1}\\vec{a}_{m-1}\n",
|
| 63 |
+
"$$\n",
|
| 64 |
+
"\n",
|
| 65 |
+
"Es llamado una *combinación lineal* de los vectores $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$. Los escalares $\\beta_{0},\\beta_{1},\\dots,\\beta_{m-1}$ son llamados los *coeficientes* de la combinación lineal."
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
{
|
| 69 |
+
"cell_type": "markdown",
|
| 70 |
+
"metadata": {},
|
| 71 |
+
"source": [
|
| 72 |
+
" "
|
| 73 |
+
]
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"cell_type": "markdown",
|
| 77 |
+
"metadata": {},
|
| 78 |
+
"source": [
|
| 79 |
+
"**Combinaciones lineales de vectores unitarios**. Es posible escribir cualquier $\\vec{b}$ $n$-vector como combinación lineal de los vectores unitarios estándar:\n",
|
| 80 |
+
"\n",
|
| 81 |
+
"$$\n",
|
| 82 |
+
"\\vec{b} = b_{0}\\hat{e}_{0}+b_{1}\\hat{e}_{1} + \\cdots +b_{n-1}\\hat{e}_{n-1}\n",
|
| 83 |
+
"$$\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"Con $b_{i}$ escalares y $\\hat{e}_{i}$ el i-ésimo vector unitario. Un ejemplo específico sería:\n",
|
| 86 |
+
"\n",
|
| 87 |
+
"$$\n",
|
| 88 |
+
"\\begin{bmatrix}1\\\\ -1\\\\ 0\\end{bmatrix} = (1)\\begin{bmatrix}1\\\\ 0\\\\ 0\\end{bmatrix} + (-1)\\begin{bmatrix}0\\\\ 1\\\\ 0\\end{bmatrix} + (0)\\begin{bmatrix}0\\\\ 0\\\\ 1\\end{bmatrix}\n",
|
| 89 |
+
"$$\n",
|
| 90 |
+
"\n",
|
| 91 |
+
"Como nota final aquí, notemos que si el espacio vectorial es de dimensión $n$ entonces tiene $n$ vectores unitarios $\\hat{e}_{i}$\n"
|
| 92 |
+
]
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"cell_type": "markdown",
|
| 96 |
+
"metadata": {},
|
| 97 |
+
"source": [
|
| 98 |
+
" "
|
| 99 |
+
]
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"cell_type": "markdown",
|
| 103 |
+
"metadata": {},
|
| 104 |
+
"source": [
|
| 105 |
+
"**Combinaciones lineales especiales**. Algunas combinaciones de $n$-vectores $\\vec{a}_{0},\\vec{a}_{1},\\dots,\\vec{a}_{m-1}$ tienen nombres especiales. Por ejemplo, si los coeficientes de la combinación lineal son tales que $\\beta_{0}=\\beta_{1}=\\cdots=\\beta_{m-1} = 1$ entonces simplemente es una suma de vectores. Si en cambio $\\beta_{0}=\\beta_{1}=\\cdots=\\beta_{m-1} = 1/m$ entonces la combinación lineal se llama el *promedio de vectores*. \n",
|
| 106 |
+
"Cuando $\\beta_{0}+\\beta_{1}+\\cdots+\\beta_{m-1}=1$ entonces la combinación lineal se llama *combinación afín*, cuando los coeficientes $\\beta_{i}$ son no-negativos entonces la combinación lineal es llamada una *mezcla*, *combinación convexa* o un *promedio pesado*."
|
| 107 |
+
]
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"cell_type": "markdown",
|
| 111 |
+
"metadata": {},
|
| 112 |
+
"source": [
|
| 113 |
+
"## 3.3 Producto por un escalar-vector en Python"
|
| 114 |
+
]
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"cell_type": "markdown",
|
| 118 |
+
"metadata": {},
|
| 119 |
+
"source": [
|
| 120 |
+
"Desde la clase pasada introducimos Numpy para manejo de vectores. Una de las fortunas de usar numpy sobre listas es la simpleta de este tipo de operaciones. Realizar esta operación será tan sencillo como usar el operador $*$. "
|
| 121 |
+
]
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"cell_type": "markdown",
|
| 125 |
+
"metadata": {},
|
| 126 |
+
"source": [
|
| 127 |
+
"Partamos del vector $\\vec{x}= (1,-1,1)$ y del escalar $a = 3.1$ entonces, realicemos las operaciones $a\\vec{x}$ y $\\vec{x}a$"
|
| 128 |
+
]
|
| 129 |
+
},
|
| 130 |
+
{
|
| 131 |
+
"cell_type": "code",
|
| 132 |
+
"execution_count": 18,
|
| 133 |
+
"metadata": {},
|
| 134 |
+
"outputs": [],
|
| 135 |
+
"source": [
|
| 136 |
+
"import numpy as np #primero importamos numpy"
|
| 137 |
+
]
|
| 138 |
+
},
|
| 139 |
+
{
|
| 140 |
+
"cell_type": "code",
|
| 141 |
+
"execution_count": 19,
|
| 142 |
+
"metadata": {},
|
| 143 |
+
"outputs": [],
|
| 144 |
+
"source": [
|
| 145 |
+
"x = np.array([1,-1,1]) #declaramos el vector x\n",
|
| 146 |
+
"\n",
|
| 147 |
+
"a = 3.1 #declaramos el escalar a"
|
| 148 |
+
]
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"cell_type": "code",
|
| 152 |
+
"execution_count": 20,
|
| 153 |
+
"metadata": {},
|
| 154 |
+
"outputs": [
|
| 155 |
+
{
|
| 156 |
+
"name": "stdout",
|
| 157 |
+
"output_type": "stream",
|
| 158 |
+
"text": [
|
| 159 |
+
"ax es [ 3.1 -3.1 3.1]\n"
|
| 160 |
+
]
|
| 161 |
+
}
|
| 162 |
+
],
|
| 163 |
+
"source": [
|
| 164 |
+
"print('ax es',a*x)"
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"cell_type": "code",
|
| 169 |
+
"execution_count": 21,
|
| 170 |
+
"metadata": {},
|
| 171 |
+
"outputs": [
|
| 172 |
+
{
|
| 173 |
+
"name": "stdout",
|
| 174 |
+
"output_type": "stream",
|
| 175 |
+
"text": [
|
| 176 |
+
"xa es [ 3.1 -3.1 3.1]\n"
|
| 177 |
+
]
|
| 178 |
+
}
|
| 179 |
+
],
|
| 180 |
+
"source": [
|
| 181 |
+
"print('xa es',x*a)"
|
| 182 |
+
]
|
| 183 |
+
},
|
| 184 |
+
{
|
| 185 |
+
"cell_type": "code",
|
| 186 |
+
"execution_count": 9,
|
| 187 |
+
"metadata": {},
|
| 188 |
+
"outputs": [],
|
| 189 |
+
"source": [
|
| 190 |
+
"b = -a"
|
| 191 |
+
]
|
| 192 |
+
},
|
| 193 |
+
{
|
| 194 |
+
"cell_type": "code",
|
| 195 |
+
"execution_count": 22,
|
| 196 |
+
"metadata": {},
|
| 197 |
+
"outputs": [
|
| 198 |
+
{
|
| 199 |
+
"name": "stdout",
|
| 200 |
+
"output_type": "stream",
|
| 201 |
+
"text": [
|
| 202 |
+
"(b+a)x es [ 0. -0. 0.]\n"
|
| 203 |
+
]
|
| 204 |
+
}
|
| 205 |
+
],
|
| 206 |
+
"source": [
|
| 207 |
+
"print('(b+a)x es',(b+a)*x)"
|
| 208 |
+
]
|
| 209 |
+
},
|
| 210 |
+
{
|
| 211 |
+
"cell_type": "code",
|
| 212 |
+
"execution_count": 23,
|
| 213 |
+
"metadata": {},
|
| 214 |
+
"outputs": [
|
| 215 |
+
{
|
| 216 |
+
"name": "stdout",
|
| 217 |
+
"output_type": "stream",
|
| 218 |
+
"text": [
|
| 219 |
+
"xa+xb es [0. 0. 0.]\n"
|
| 220 |
+
]
|
| 221 |
+
}
|
| 222 |
+
],
|
| 223 |
+
"source": [
|
| 224 |
+
"print('xa+xb es',b*x+ x*a)"
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"cell_type": "markdown",
|
| 229 |
+
"metadata": {},
|
| 230 |
+
"source": [
|
| 231 |
+
"Ahora un ejecio más $\\vec{v} = (1,1)$. Si consideramos a = -1, b = 2, c = 0.1"
|
| 232 |
+
]
|
| 233 |
+
},
|
| 234 |
+
{
|
| 235 |
+
"cell_type": "code",
|
| 236 |
+
"execution_count": 24,
|
| 237 |
+
"metadata": {},
|
| 238 |
+
"outputs": [],
|
| 239 |
+
"source": [
|
| 240 |
+
"v = np.array([1,1])\n",
|
| 241 |
+
"a = -1\n",
|
| 242 |
+
"b = 2\n",
|
| 243 |
+
"c = 0.1"
|
| 244 |
+
]
|
| 245 |
+
},
|
| 246 |
+
{
|
| 247 |
+
"cell_type": "code",
|
| 248 |
+
"execution_count": 25,
|
| 249 |
+
"metadata": {},
|
| 250 |
+
"outputs": [
|
| 251 |
+
{
|
| 252 |
+
"data": {
|
| 253 |
+
"text/plain": [
|
| 254 |
+
"array([-1, -1])"
|
| 255 |
+
]
|
| 256 |
+
},
|
| 257 |
+
"execution_count": 25,
|
| 258 |
+
"metadata": {},
|
| 259 |
+
"output_type": "execute_result"
|
| 260 |
+
}
|
| 261 |
+
],
|
| 262 |
+
"source": [
|
| 263 |
+
"v*a"
|
| 264 |
+
]
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"cell_type": "code",
|
| 268 |
+
"execution_count": 26,
|
| 269 |
+
"metadata": {},
|
| 270 |
+
"outputs": [
|
| 271 |
+
{
|
| 272 |
+
"data": {
|
| 273 |
+
"text/plain": [
|
| 274 |
+
"array([2, 2])"
|
| 275 |
+
]
|
| 276 |
+
},
|
| 277 |
+
"execution_count": 26,
|
| 278 |
+
"metadata": {},
|
| 279 |
+
"output_type": "execute_result"
|
| 280 |
+
}
|
| 281 |
+
],
|
| 282 |
+
"source": [
|
| 283 |
+
"v*b"
|
| 284 |
+
]
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"cell_type": "code",
|
| 288 |
+
"execution_count": 28,
|
| 289 |
+
"metadata": {},
|
| 290 |
+
"outputs": [
|
| 291 |
+
{
|
| 292 |
+
"data": {
|
| 293 |
+
"text/plain": [
|
| 294 |
+
"array([0.1, 0.1])"
|
| 295 |
+
]
|
| 296 |
+
},
|
| 297 |
+
"execution_count": 28,
|
| 298 |
+
"metadata": {},
|
| 299 |
+
"output_type": "execute_result"
|
| 300 |
+
}
|
| 301 |
+
],
|
| 302 |
+
"source": [
|
| 303 |
+
"v*c"
|
| 304 |
+
]
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"cell_type": "markdown",
|
| 308 |
+
"metadata": {},
|
| 309 |
+
"source": [
|
| 310 |
+
"## 3.3 Ejercicios"
|
| 311 |
+
]
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"cell_type": "markdown",
|
| 315 |
+
"metadata": {},
|
| 316 |
+
"source": [
|
| 317 |
+
"**Problema 1**. Escribe TODOS los vectores unitarios estándar de $\\mathbb{R}^{4}$. *Hint:* son cuatro. "
|
| 318 |
+
]
|
| 319 |
+
},
|
| 320 |
+
{
|
| 321 |
+
"cell_type": "markdown",
|
| 322 |
+
"metadata": {},
|
| 323 |
+
"source": [
|
| 324 |
+
"**Problema 2**. Escribe tres combinaciones lineales de vectores en $\\mathbb{R}^{3}$ para expresar el vector $[1,1,1]$."
|
| 325 |
+
]
|
| 326 |
+
},
|
| 327 |
+
{
|
| 328 |
+
"cell_type": "markdown",
|
| 329 |
+
"metadata": {},
|
| 330 |
+
"source": [
|
| 331 |
+
"**Problema 3.** Escribe tres combinaciones afines con vectores de $\\mathbb{R}^{3}$ donde $\\beta_{0}\\neq\\beta_{1}\\neq\\beta_{2}$ pero que se cumpla que $\\beta_{0}+\\beta_{1}+\\beta_{2}=1$. *HINT*: Si no se te ocurre ninguna combinación para los coeficientes la ecuación $\\beta_{0}+\\beta_{1}+\\beta_{2}=1$ tiene infinitas soluciones, puedes hacer un programa para encontrar tres. "
|
| 332 |
+
]
|
| 333 |
+
},
|
| 334 |
+
{
|
| 335 |
+
"cell_type": "code",
|
| 336 |
+
"execution_count": 31,
|
| 337 |
+
"metadata": {},
|
| 338 |
+
"outputs": [],
|
| 339 |
+
"source": [
|
| 340 |
+
"a = np.linspace(0,5,1000)"
|
| 341 |
+
]
|
| 342 |
+
},
|
| 343 |
+
{
|
| 344 |
+
"cell_type": "code",
|
| 345 |
+
"execution_count": 32,
|
| 346 |
+
"metadata": {},
|
| 347 |
+
"outputs": [
|
| 348 |
+
{
|
| 349 |
+
"data": {
|
| 350 |
+
"text/plain": [
|
| 351 |
+
"0.005005005005005005"
|
| 352 |
+
]
|
| 353 |
+
},
|
| 354 |
+
"execution_count": 32,
|
| 355 |
+
"metadata": {},
|
| 356 |
+
"output_type": "execute_result"
|
| 357 |
+
}
|
| 358 |
+
],
|
| 359 |
+
"source": [
|
| 360 |
+
"a[1]-a[0]"
|
| 361 |
+
]
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"cell_type": "code",
|
| 365 |
+
"execution_count": 33,
|
| 366 |
+
"metadata": {},
|
| 367 |
+
"outputs": [
|
| 368 |
+
{
|
| 369 |
+
"data": {
|
| 370 |
+
"text/plain": [
|
| 371 |
+
"0.005005005005005005"
|
| 372 |
+
]
|
| 373 |
+
},
|
| 374 |
+
"execution_count": 33,
|
| 375 |
+
"metadata": {},
|
| 376 |
+
"output_type": "execute_result"
|
| 377 |
+
}
|
| 378 |
+
],
|
| 379 |
+
"source": [
|
| 380 |
+
"a[2]-a[1]"
|
| 381 |
+
]
|
| 382 |
+
},
|
| 383 |
+
{
|
| 384 |
+
"cell_type": "code",
|
| 385 |
+
"execution_count": 34,
|
| 386 |
+
"metadata": {},
|
| 387 |
+
"outputs": [
|
| 388 |
+
{
|
| 389 |
+
"data": {
|
| 390 |
+
"text/plain": [
|
| 391 |
+
"0.005005005005005003"
|
| 392 |
+
]
|
| 393 |
+
},
|
| 394 |
+
"execution_count": 34,
|
| 395 |
+
"metadata": {},
|
| 396 |
+
"output_type": "execute_result"
|
| 397 |
+
}
|
| 398 |
+
],
|
| 399 |
+
"source": [
|
| 400 |
+
"a[999]-a[998]"
|
| 401 |
+
]
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"cell_type": "code",
|
| 405 |
+
"execution_count": 35,
|
| 406 |
+
"metadata": {},
|
| 407 |
+
"outputs": [
|
| 408 |
+
{
|
| 409 |
+
"data": {
|
| 410 |
+
"text/plain": [
|
| 411 |
+
"0.0"
|
| 412 |
+
]
|
| 413 |
+
},
|
| 414 |
+
"execution_count": 35,
|
| 415 |
+
"metadata": {},
|
| 416 |
+
"output_type": "execute_result"
|
| 417 |
+
}
|
| 418 |
+
],
|
| 419 |
+
"source": [
|
| 420 |
+
"a[0]"
|
| 421 |
+
]
|
| 422 |
+
},
|
| 423 |
+
{
|
| 424 |
+
"cell_type": "code",
|
| 425 |
+
"execution_count": 36,
|
| 426 |
+
"metadata": {},
|
| 427 |
+
"outputs": [
|
| 428 |
+
{
|
| 429 |
+
"data": {
|
| 430 |
+
"text/plain": [
|
| 431 |
+
"5.0"
|
| 432 |
+
]
|
| 433 |
+
},
|
| 434 |
+
"execution_count": 36,
|
| 435 |
+
"metadata": {},
|
| 436 |
+
"output_type": "execute_result"
|
| 437 |
+
}
|
| 438 |
+
],
|
| 439 |
+
"source": [
|
| 440 |
+
"a[999]"
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"cell_type": "code",
|
| 445 |
+
"execution_count": null,
|
| 446 |
+
"metadata": {},
|
| 447 |
+
"outputs": [],
|
| 448 |
+
"source": []
|
| 449 |
+
}
|
| 450 |
+
],
|
| 451 |
+
"metadata": {
|
| 452 |
+
"kernelspec": {
|
| 453 |
+
"display_name": "Python 3",
|
| 454 |
+
"language": "python",
|
| 455 |
+
"name": "python3"
|
| 456 |
+
},
|
| 457 |
+
"language_info": {
|
| 458 |
+
"codemirror_mode": {
|
| 459 |
+
"name": "ipython",
|
| 460 |
+
"version": 3
|
| 461 |
+
},
|
| 462 |
+
"file_extension": ".py",
|
| 463 |
+
"mimetype": "text/x-python",
|
| 464 |
+
"name": "python",
|
| 465 |
+
"nbconvert_exporter": "python",
|
| 466 |
+
"pygments_lexer": "ipython3",
|
| 467 |
+
"version": "3.7.3"
|
| 468 |
+
}
|
| 469 |
+
},
|
| 470 |
+
"nbformat": 4,
|
| 471 |
+
"nbformat_minor": 4
|
| 472 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1zLgEfmILRmfGXpHHsH5e6gYc9kM7qT5S?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Producto Interno de Vectores Definición y Propiedades.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cd4581b5df4a5a13cb4ebd082774ab547bc2005fae5c247e23706365a9f94d81
|
| 3 |
+
size 121998230
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Producto Interno de Vectores Definición y Propiedades.vtt
ADDED
|
@@ -0,0 +1,712 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.439 --> 00:00:05.359
|
| 4 |
+
Te doy la bienvenida de nuevo. Esta es
|
| 5 |
+
|
| 6 |
+
00:00:05.359 --> 00:00:08.100
|
| 7 |
+
la clase de producto interno. El producto interno
|
| 8 |
+
|
| 9 |
+
00:00:08.160 --> 00:00:12.340
|
| 10 |
+
es una operación especial entre vectores. Ya vimos
|
| 11 |
+
|
| 12 |
+
00:00:12.639 --> 00:00:15.219
|
| 13 |
+
operaciones entre vectores, como la suma de vectores,
|
| 14 |
+
|
| 15 |
+
00:00:15.315 --> 00:00:18.195
|
| 16 |
+
y también ya vimos operaciones entre escalares y
|
| 17 |
+
|
| 18 |
+
00:00:18.195 --> 00:00:20.435
|
| 19 |
+
vectores, el producto escalar y vector. Lo vimos
|
| 20 |
+
|
| 21 |
+
00:00:20.435 --> 00:00:22.994
|
| 22 |
+
la clase pasada. Te invito a que si
|
| 23 |
+
|
| 24 |
+
00:00:22.994 --> 00:00:26.355
|
| 25 |
+
has tenido algún problema o has tenido dudas
|
| 26 |
+
|
| 27 |
+
00:00:26.355 --> 00:00:28.733
|
| 28 |
+
respecto al contenido que hemos visto, lo dejes
|
| 29 |
+
|
| 30 |
+
00:00:28.733 --> 00:00:31.080
|
| 31 |
+
en los comentarios y tanto la comunidad de
|
| 32 |
+
|
| 33 |
+
00:00:31.080 --> 00:00:33.320
|
| 34 |
+
Platzi como yo estaremos al pendiente para poder
|
| 35 |
+
|
| 36 |
+
00:00:33.320 --> 00:00:37.480
|
| 37 |
+
responderte tus dudas. Ahora, sin más, te voy
|
| 38 |
+
|
| 39 |
+
00:00:37.480 --> 00:00:40.520
|
| 40 |
+
a presentar esta nueva operación. Vamos a la
|
| 41 |
+
|
| 42 |
+
00:00:40.520 --> 00:00:44.585
|
| 43 |
+
computadora. Este es el notebook de producto interno
|
| 44 |
+
|
| 45 |
+
00:00:44.585 --> 00:00:46.985
|
| 46 |
+
y, como siempre, no te preocupes, este notebook
|
| 47 |
+
|
| 48 |
+
00:00:46.985 --> 00:00:48.505
|
| 49 |
+
va a estar disponible para que tú lo
|
| 50 |
+
|
| 51 |
+
00:00:48.505 --> 00:00:52.825
|
| 52 |
+
consultes. Ahora bien, a este le llamamos producto
|
| 53 |
+
|
| 54 |
+
00:00:52.825 --> 00:00:56.265
|
| 55 |
+
interno o producto interno estándar, o simplemente producto
|
| 56 |
+
|
| 57 |
+
00:00:56.265 --> 00:00:59.410
|
| 58 |
+
punto, a la operación entre dos n vectores,
|
| 59 |
+
|
| 60 |
+
00:00:59.630 --> 00:01:01.550
|
| 61 |
+
recuerden que tienen que ser los dos n
|
| 62 |
+
|
| 63 |
+
00:01:01.550 --> 00:01:04.430
|
| 64 |
+
vectores, y que vamos a definir como el
|
| 65 |
+
|
| 66 |
+
00:01:04.430 --> 00:01:07.310
|
| 67 |
+
siguiente escalar. La notación para el producto punto
|
| 68 |
+
|
| 69 |
+
00:01:07.310 --> 00:01:11.305
|
| 70 |
+
pueden ser esta clase de corchetes o simplemente
|
| 71 |
+
|
| 72 |
+
00:01:11.305 --> 00:01:14.985
|
| 73 |
+
un punto en medio, y se define como
|
| 74 |
+
|
| 75 |
+
00:01:14.985 --> 00:01:17.965
|
| 76 |
+
la suma de la multiplicación de sus entradas
|
| 77 |
+
|
| 78 |
+
00:01:18.505 --> 00:01:22.345
|
| 79 |
+
entrada por entrada. Es decir, el producto punto
|
| 80 |
+
|
| 81 |
+
00:01:22.345 --> 00:01:25.990
|
| 82 |
+
o el producto interno entre AYB es a
|
| 83 |
+
|
| 84 |
+
00:01:25.990 --> 00:01:28.710
|
| 85 |
+
cero por b cero más a uno por
|
| 86 |
+
|
| 87 |
+
00:01:28.710 --> 00:01:30.890
|
| 88 |
+
b uno más a dos por b dos
|
| 89 |
+
|
| 90 |
+
00:01:31.110 --> 00:01:33.270
|
| 91 |
+
más a tres por b tres más an
|
| 92 |
+
|
| 93 |
+
00:01:33.270 --> 00:01:37.825
|
| 94 |
+
por b n. Esto se denota matemáticamente como
|
| 95 |
+
|
| 96 |
+
00:01:37.825 --> 00:01:41.104
|
| 97 |
+
la suma desde I igual a cero hasta
|
| 98 |
+
|
| 99 |
+
00:01:41.104 --> 00:01:43.665
|
| 100 |
+
n menos uno de a I por b
|
| 101 |
+
|
| 102 |
+
00:01:43.665 --> 00:01:47.765
|
| 103 |
+
I. Simplemente, lo que esto denota es que
|
| 104 |
+
|
| 105 |
+
00:01:47.825 --> 00:01:50.865
|
| 106 |
+
este índice, el I, va a correr desde
|
| 107 |
+
|
| 108 |
+
00:01:50.865 --> 00:01:54.180
|
| 109 |
+
cero hasta n menos uno, porque son n
|
| 110 |
+
|
| 111 |
+
00:01:54.180 --> 00:01:57.000
|
| 112 |
+
vectores, y además que vas a multiplicar a
|
| 113 |
+
|
| 114 |
+
00:01:57.000 --> 00:02:00.759
|
| 115 |
+
los elementos AYB, los AIY los b I,
|
| 116 |
+
|
| 117 |
+
00:02:00.979 --> 00:02:03.940
|
| 118 |
+
que de ese índice los vas a sumar
|
| 119 |
+
|
| 120 |
+
00:02:03.940 --> 00:02:06.180
|
| 121 |
+
hasta el n menos uno, es decir, toda
|
| 122 |
+
|
| 123 |
+
00:02:06.180 --> 00:02:09.394
|
| 124 |
+
esta operación de aquí la podemos comprimir en
|
| 125 |
+
|
| 126 |
+
00:02:09.394 --> 00:02:15.315
|
| 127 |
+
este simple anotación de aquí. Por ejemplo, si
|
| 128 |
+
|
| 129 |
+
00:02:15.315 --> 00:02:17.474
|
| 130 |
+
a es igual al vector uno coma dos
|
| 131 |
+
|
| 132 |
+
00:02:17.474 --> 00:02:19.635
|
| 133 |
+
coma tres y b es igual al vector
|
| 134 |
+
|
| 135 |
+
00:02:19.635 --> 00:02:22.530
|
| 136 |
+
cuatro coma cinco coma seis, entonces, tendemos que
|
| 137 |
+
|
| 138 |
+
00:02:22.530 --> 00:02:27.330
|
| 139 |
+
el producto punto será simplemente a punto b,
|
| 140 |
+
|
| 141 |
+
00:02:27.330 --> 00:02:30.770
|
| 142 |
+
uno coma dos coma tres punto cuatro coma
|
| 143 |
+
|
| 144 |
+
00:02:30.770 --> 00:02:33.510
|
| 145 |
+
cinco coma seis igual a uno por cuatro,
|
| 146 |
+
|
| 147 |
+
00:02:33.810 --> 00:02:38.485
|
| 148 |
+
uno por cuatro, dos por cinco, más dos
|
| 149 |
+
|
| 150 |
+
00:02:38.485 --> 00:02:41.444
|
| 151 |
+
por cinco, más tres por seis, más tres
|
| 152 |
+
|
| 153 |
+
00:02:41.444 --> 00:02:44.405
|
| 154 |
+
por seis. Y esto nos da aquí, esto
|
| 155 |
+
|
| 156 |
+
00:02:44.405 --> 00:02:47.525
|
| 157 |
+
de aquí son cuatro, esto de aquí nos
|
| 158 |
+
|
| 159 |
+
00:02:47.525 --> 00:02:51.100
|
| 160 |
+
da un diez, y esto de aquí nos
|
| 161 |
+
|
| 162 |
+
00:02:51.100 --> 00:02:55.340
|
| 163 |
+
da un dieciocho, y eso es simplemente treinta
|
| 164 |
+
|
| 165 |
+
00:02:55.340 --> 00:02:58.540
|
| 166 |
+
y dos. Entonces, el producto punto de a
|
| 167 |
+
|
| 168 |
+
00:02:58.540 --> 00:03:01.280
|
| 169 |
+
por b nos da treinta y dos. Notemos
|
| 170 |
+
|
| 171 |
+
00:03:01.420 --> 00:03:04.625
|
| 172 |
+
otra vez y esto es muy importante. Otras
|
| 173 |
+
|
| 174 |
+
00:03:05.005 --> 00:03:07.505
|
| 175 |
+
operaciones entre vectores que habíamos visto, la suma,
|
| 176 |
+
|
| 177 |
+
00:03:07.725 --> 00:03:10.045
|
| 178 |
+
nos daba un n vector, si sumábamos dos
|
| 179 |
+
|
| 180 |
+
00:03:10.045 --> 00:03:12.605
|
| 181 |
+
n vectores, nos daba un n vector. En
|
| 182 |
+
|
| 183 |
+
00:03:12.605 --> 00:03:15.165
|
| 184 |
+
el caso del producto de escalar vector, también
|
| 185 |
+
|
| 186 |
+
00:03:15.165 --> 00:03:17.565
|
| 187 |
+
nos daba un n vector, multiplicar un escalar
|
| 188 |
+
|
| 189 |
+
00:03:17.565 --> 00:03:20.069
|
| 190 |
+
por un n vector nos daba un n
|
| 191 |
+
|
| 192 |
+
00:03:20.069 --> 00:03:23.670
|
| 193 |
+
vector. En este caso, el producto punto de
|
| 194 |
+
|
| 195 |
+
00:03:23.670 --> 00:03:26.069
|
| 196 |
+
dos n vectores nos va a dar un
|
| 197 |
+
|
| 198 |
+
00:03:26.069 --> 00:03:28.310
|
| 199 |
+
número, nos va a dar un escalar. Es
|
| 200 |
+
|
| 201 |
+
00:03:28.310 --> 00:03:30.230
|
| 202 |
+
por eso que a esto se le refiere
|
| 203 |
+
|
| 204 |
+
00:03:30.230 --> 00:03:35.205
|
| 205 |
+
también como el producto escalar. Bien, hasta este
|
| 206 |
+
|
| 207 |
+
00:03:35.205 --> 00:03:38.085
|
| 208 |
+
momento tenemos que, a este momento tenemos que
|
| 209 |
+
|
| 210 |
+
00:03:38.085 --> 00:03:41.465
|
| 211 |
+
hacer una nueva definición o una nueva revisión
|
| 212 |
+
|
| 213 |
+
00:03:41.525 --> 00:03:45.060
|
| 214 |
+
de notación. Y es que para nosotros jugar
|
| 215 |
+
|
| 216 |
+
00:03:45.060 --> 00:03:47.620
|
| 217 |
+
o hablar de vectores columna, es decir, vectores
|
| 218 |
+
|
| 219 |
+
00:03:47.620 --> 00:03:50.260
|
| 220 |
+
en esta representación, o vectores en la forma
|
| 221 |
+
|
| 222 |
+
00:03:50.260 --> 00:03:52.740
|
| 223 |
+
de un renglón, como esta representación de aquí,
|
| 224 |
+
|
| 225 |
+
00:03:52.740 --> 00:03:55.540
|
| 226 |
+
era lo mismo. A partir de este momento,
|
| 227 |
+
|
| 228 |
+
00:03:55.540 --> 00:03:57.585
|
| 229 |
+
vamos a definir el estándar de un vector
|
| 230 |
+
|
| 231 |
+
00:03:57.665 --> 00:04:00.625
|
| 232 |
+
como un vector columna, es decir, siempre que
|
| 233 |
+
|
| 234 |
+
00:04:00.625 --> 00:04:03.025
|
| 235 |
+
nos refiramos a un n vector a, hay
|
| 236 |
+
|
| 237 |
+
00:04:03.025 --> 00:04:05.445
|
| 238 |
+
que pensar al vector en forma de columna.
|
| 239 |
+
|
| 240 |
+
00:04:07.425 --> 00:04:09.825
|
| 241 |
+
Y esto nos va a permitir hablar de
|
| 242 |
+
|
| 243 |
+
00:04:09.825 --> 00:04:13.550
|
| 244 |
+
la operación de transposición. Una cosa muy importante
|
| 245 |
+
|
| 246 |
+
00:04:13.550 --> 00:04:15.090
|
| 247 |
+
es que antes de hablar de la transposición,
|
| 248 |
+
|
| 249 |
+
00:04:15.709 --> 00:04:17.709
|
| 250 |
+
va a dar lo mismo si nosotros le
|
| 251 |
+
|
| 252 |
+
00:04:17.709 --> 00:04:22.930
|
| 253 |
+
ponemos paréntesis cuadrados, paréntesis normales o corchetes. Estaremos
|
| 254 |
+
|
| 255 |
+
00:04:22.990 --> 00:04:27.074
|
| 256 |
+
hablando siempre de vectores columna. La forma de
|
| 257 |
+
|
| 258 |
+
00:04:27.074 --> 00:04:29.074
|
| 259 |
+
los paréntesis, de lo que nos delimite la
|
| 260 |
+
|
| 261 |
+
00:04:29.074 --> 00:04:31.715
|
| 262 |
+
lista, no nos va a cambiar para nada
|
| 263 |
+
|
| 264 |
+
00:04:31.715 --> 00:04:34.275
|
| 265 |
+
de qué tipo de elemento estemos hablando. Ahora
|
| 266 |
+
|
| 267 |
+
00:04:34.275 --> 00:04:37.715
|
| 268 |
+
bien, regresando a la transposición, tomemos el vector
|
| 269 |
+
|
| 270 |
+
00:04:37.715 --> 00:04:39.715
|
| 271 |
+
a, es decir, este vector que tenemos aquí
|
| 272 |
+
|
| 273 |
+
00:04:39.715 --> 00:04:42.620
|
| 274 |
+
arriba, y el vector transpuesto o la transposición
|
| 275 |
+
|
| 276 |
+
00:04:42.920 --> 00:04:45.240
|
| 277 |
+
del vector a lo vamos a denotar como
|
| 278 |
+
|
| 279 |
+
00:04:45.240 --> 00:04:49.080
|
| 280 |
+
a con este índice arriba t, este es
|
| 281 |
+
|
| 282 |
+
00:04:49.080 --> 00:04:52.280
|
| 283 |
+
súper índice. Y esto se lee como a
|
| 284 |
+
|
| 285 |
+
00:04:52.280 --> 00:04:55.025
|
| 286 |
+
transpuesto, y a transpuesto se ve como viene
|
| 287 |
+
|
| 288 |
+
00:04:55.025 --> 00:04:58.085
|
| 289 |
+
aquí. A transpuesto es igual a este vector,
|
| 290 |
+
|
| 291 |
+
00:04:58.465 --> 00:05:00.625
|
| 292 |
+
con la t arriba también, porque estamos indicando
|
| 293 |
+
|
| 294 |
+
00:05:00.625 --> 00:05:04.164
|
| 295 |
+
la la operación de transposición, y esto es
|
| 296 |
+
|
| 297 |
+
00:05:04.305 --> 00:05:08.350
|
| 298 |
+
simplemente el vector renglón. Es decir, transponer un
|
| 299 |
+
|
| 300 |
+
00:05:08.350 --> 00:05:11.970
|
| 301 |
+
vector columna nos da un vector renglón, ¿vale?
|
| 302 |
+
|
| 303 |
+
00:05:12.510 --> 00:05:14.350
|
| 304 |
+
Y hay algo muy interesante, y es que
|
| 305 |
+
|
| 306 |
+
00:05:14.350 --> 00:05:16.669
|
| 307 |
+
la transposición de la transposición nos da el
|
| 308 |
+
|
| 309 |
+
00:05:16.669 --> 00:05:19.970
|
| 310 |
+
vector original. Esto lo podemos obtener de nuevo.
|
| 311 |
+
|
| 312 |
+
00:05:20.375 --> 00:05:23.675
|
| 313 |
+
A traspuesta traspuesta es igual a a traspuesta
|
| 314 |
+
|
| 315 |
+
00:05:24.055 --> 00:05:28.215
|
| 316 |
+
traspuesta, que es igual a este renglón, sabemos
|
| 317 |
+
|
| 318 |
+
00:05:28.215 --> 00:05:31.115
|
| 319 |
+
que lo de aquí adentro es este renglón,
|
| 320 |
+
|
| 321 |
+
00:05:31.895 --> 00:05:34.710
|
| 322 |
+
y si nosotros transponemos este renglón, lo que
|
| 323 |
+
|
| 324 |
+
00:05:34.710 --> 00:05:36.570
|
| 325 |
+
nos va a dar es un vector columna,
|
| 326 |
+
|
| 327 |
+
00:05:36.870 --> 00:05:39.510
|
| 328 |
+
es decir, transponer un renglón nos da una
|
| 329 |
+
|
| 330 |
+
00:05:39.510 --> 00:05:41.750
|
| 331 |
+
columna y, trasponer una columna, nos da un
|
| 332 |
+
|
| 333 |
+
00:05:41.750 --> 00:05:45.750
|
| 334 |
+
renglón. Notemos que en esta operación no modificamos
|
| 335 |
+
|
| 336 |
+
00:05:45.750 --> 00:05:48.884
|
| 337 |
+
para nada a los elementos de a, simplemente
|
| 338 |
+
|
| 339 |
+
00:05:48.944 --> 00:05:52.324
|
| 340 |
+
se va a modificar, por una forma simplificada
|
| 341 |
+
|
| 342 |
+
00:05:52.384 --> 00:05:55.985
|
| 343 |
+
de decirlo, su representación, es decir, estaríamos hablando
|
| 344 |
+
|
| 345 |
+
00:05:55.985 --> 00:05:58.224
|
| 346 |
+
de una columna o estaríamos hablando de un
|
| 347 |
+
|
| 348 |
+
00:05:58.224 --> 00:06:05.330
|
| 349 |
+
renglón. Así pues, vamos a considerar con el
|
| 350 |
+
|
| 351 |
+
00:06:05.330 --> 00:06:09.330
|
| 352 |
+
ejemplo anterior dos vectores AYBY vamos a definir
|
| 353 |
+
|
| 354 |
+
00:06:09.330 --> 00:06:14.985
|
| 355 |
+
la operación a traspuesta b como a traspuesto
|
| 356 |
+
|
| 357 |
+
00:06:15.285 --> 00:06:18.165
|
| 358 |
+
b igual a este vector renglón, ya vimos
|
| 359 |
+
|
| 360 |
+
00:06:18.165 --> 00:06:21.845
|
| 361 |
+
que a traspuesto era este de aquí, y
|
| 362 |
+
|
| 363 |
+
00:06:21.845 --> 00:06:25.170
|
| 364 |
+
bit es simplemente este vector de aquí. Nosotros
|
| 365 |
+
|
| 366 |
+
00:06:25.170 --> 00:06:27.010
|
| 367 |
+
dijimos desde acá que el estándar iba a
|
| 368 |
+
|
| 369 |
+
00:06:27.010 --> 00:06:31.090
|
| 370 |
+
ser pensar en vectores columna. Ahora bien, esto
|
| 371 |
+
|
| 372 |
+
00:06:31.090 --> 00:06:33.010
|
| 373 |
+
que sucede aquí es lo que se llama
|
| 374 |
+
|
| 375 |
+
00:06:33.010 --> 00:06:36.370
|
| 376 |
+
la ley del caratazo. Imagina que tienes este
|
| 377 |
+
|
| 378 |
+
00:06:36.370 --> 00:06:39.215
|
| 379 |
+
abrazo aquí y tienes el otro brazo aquí,
|
| 380 |
+
|
| 381 |
+
00:06:39.435 --> 00:06:41.695
|
| 382 |
+
entonces vas a cambiar la posición del brazo.
|
| 383 |
+
|
| 384 |
+
00:06:41.995 --> 00:06:44.255
|
| 385 |
+
La ley del caratazo es algo muy sencillo,
|
| 386 |
+
|
| 387 |
+
00:06:44.555 --> 00:06:46.955
|
| 388 |
+
vas a empezar con un vector renglón y
|
| 389 |
+
|
| 390 |
+
00:06:46.955 --> 00:06:49.294
|
| 391 |
+
lo vas a multiplicar por un vector columna.
|
| 392 |
+
|
| 393 |
+
00:06:49.770 --> 00:06:52.650
|
| 394 |
+
Es decir, cada uno de estos elementos del
|
| 395 |
+
|
| 396 |
+
00:06:52.650 --> 00:06:55.050
|
| 397 |
+
renglón lo vas a multiplicar por cada uno
|
| 398 |
+
|
| 399 |
+
00:06:55.050 --> 00:06:57.450
|
| 400 |
+
de los elementos de este vector columna y
|
| 401 |
+
|
| 402 |
+
00:06:57.450 --> 00:07:00.490
|
| 403 |
+
adivina cuál va a ser el resultado. Un
|
| 404 |
+
|
| 405 |
+
00:07:00.490 --> 00:07:05.645
|
| 406 |
+
escalar. Regresemos a la computadora. Ahora bien, esto
|
| 407 |
+
|
| 408 |
+
00:07:05.645 --> 00:07:08.685
|
| 409 |
+
quiere decir que tomemos el a, y el
|
| 410 |
+
|
| 411 |
+
00:07:08.685 --> 00:07:10.945
|
| 412 |
+
a lo vamos a multiplicar por el b
|
| 413 |
+
|
| 414 |
+
00:07:11.245 --> 00:07:13.745
|
| 415 |
+
cero, a cero por b cero, aquí está.
|
| 416 |
+
|
| 417 |
+
00:07:14.044 --> 00:07:15.645
|
| 418 |
+
Y a eso le vamos a sumar el
|
| 419 |
+
|
| 420 |
+
00:07:15.645 --> 00:07:17.665
|
| 421 |
+
a uno por el b uno, aquí está,
|
| 422 |
+
|
| 423 |
+
00:07:17.805 --> 00:07:19.099
|
| 424 |
+
y a eso le vamos a sumar el
|
| 425 |
+
|
| 426 |
+
00:07:19.099 --> 00:07:21.140
|
| 427 |
+
a dos por el b dos, y así
|
| 428 |
+
|
| 429 |
+
00:07:21.140 --> 00:07:23.460
|
| 430 |
+
hasta el enésimo elemento, que sería el a
|
| 431 |
+
|
| 432 |
+
00:07:23.460 --> 00:07:25.620
|
| 433 |
+
n por el b n, que es esta
|
| 434 |
+
|
| 435 |
+
00:07:25.620 --> 00:07:28.340
|
| 436 |
+
suma de aquí. Y otra vez, esto lo
|
| 437 |
+
|
| 438 |
+
00:07:28.340 --> 00:07:32.995
|
| 439 |
+
podemos denotar con esta anotación de aquí. Ahora
|
| 440 |
+
|
| 441 |
+
00:07:33.535 --> 00:07:36.895
|
| 442 |
+
bien, esto de aquí coincide exactamente con la
|
| 443 |
+
|
| 444 |
+
00:07:36.895 --> 00:07:41.475
|
| 445 |
+
definición que nosotros dimos de producto punto. Entonces,
|
| 446 |
+
|
| 447 |
+
00:07:41.775 --> 00:07:44.095
|
| 448 |
+
otra forma de poder representar el producto punto
|
| 449 |
+
|
| 450 |
+
00:07:44.095 --> 00:07:47.750
|
| 451 |
+
entre vectores será esta, un vector transpuesto por
|
| 452 |
+
|
| 453 |
+
00:07:47.750 --> 00:07:51.370
|
| 454 |
+
un vector. Es justamente lo que mencionamos aquí.
|
| 455 |
+
|
| 456 |
+
00:07:52.790 --> 00:07:56.550
|
| 457 |
+
El producto interno denotado así, con un producto
|
| 458 |
+
|
| 459 |
+
00:07:56.550 --> 00:07:59.365
|
| 460 |
+
medio, o como la multiplicación de dos vectores
|
| 461 |
+
|
| 462 |
+
00:07:59.365 --> 00:08:03.205
|
| 463 |
+
de esta forma, es exactamente lo mismo, es
|
| 464 |
+
|
| 465 |
+
00:08:03.205 --> 00:08:09.205
|
| 466 |
+
la multiplicación de sus elementos y la suma
|
| 467 |
+
|
| 468 |
+
00:08:09.205 --> 00:08:12.245
|
| 469 |
+
de estos, que es exactamente eso lo que
|
| 470 |
+
|
| 471 |
+
00:08:12.245 --> 00:08:16.389
|
| 472 |
+
nos dice. Ahora bien, vamos a ver algunas
|
| 473 |
+
|
| 474 |
+
00:08:16.389 --> 00:08:20.870
|
| 475 |
+
propiedades del producto interno. Vamos a definir AAYB
|
| 476 |
+
|
| 477 |
+
00:08:20.870 --> 00:08:23.030
|
| 478 |
+
dos n vectores cualesquiera y a alfa un
|
| 479 |
+
|
| 480 |
+
00:08:23.030 --> 00:08:26.710
|
| 481 |
+
escalar cualquiera. Sabemos que el producto interno entre
|
| 482 |
+
|
| 483 |
+
00:08:26.710 --> 00:08:31.545
|
| 484 |
+
AYB va a cumplir las siguientes propiedades. Este
|
| 485 |
+
|
| 486 |
+
00:08:31.545 --> 00:08:34.905
|
| 487 |
+
también cumple la conmutatividad, pero hay que tener
|
| 488 |
+
|
| 489 |
+
00:08:34.905 --> 00:08:39.065
|
| 490 |
+
mucho cuidado. En este caso, la conmutatividad se
|
| 491 |
+
|
| 492 |
+
00:08:39.065 --> 00:08:41.870
|
| 493 |
+
da de esta forma, a traspuesto b es
|
| 494 |
+
|
| 495 |
+
00:08:41.870 --> 00:08:45.070
|
| 496 |
+
igual, sabemos, por este de aquí arriba, a
|
| 497 |
+
|
| 498 |
+
00:08:45.070 --> 00:08:48.450
|
| 499 |
+
la suma de la multiplicación de los elementos
|
| 500 |
+
|
| 501 |
+
00:08:49.709 --> 00:08:51.950
|
| 502 |
+
de la de las de los coeficientes, de
|
| 503 |
+
|
| 504 |
+
00:08:51.950 --> 00:08:54.910
|
| 505 |
+
las entradas individuales de AYB, es decir, los
|
| 506 |
+
|
| 507 |
+
00:08:54.910 --> 00:08:57.765
|
| 508 |
+
AIY los b I. Ahora, sabemos que estos
|
| 509 |
+
|
| 510 |
+
00:08:57.765 --> 00:09:00.405
|
| 511 |
+
de aquí son escalares y la multiplicación entre
|
| 512 |
+
|
| 513 |
+
00:09:00.405 --> 00:09:03.365
|
| 514 |
+
escalares siempre conmuta, es decir, a I por
|
| 515 |
+
|
| 516 |
+
00:09:03.365 --> 00:09:04.965
|
| 517 |
+
b I es lo mismo que b I
|
| 518 |
+
|
| 519 |
+
00:09:04.965 --> 00:09:08.745
|
| 520 |
+
por a I. Usando ese hecho podemos escribir
|
| 521 |
+
|
| 522 |
+
00:09:09.045 --> 00:09:12.120
|
| 523 |
+
esta relación de aquí también. Entonces, da lo
|
| 524 |
+
|
| 525 |
+
00:09:12.120 --> 00:09:15.660
|
| 526 |
+
mismo si multiplicamos a I por BIY sumamos
|
| 527 |
+
|
| 528 |
+
00:09:16.120 --> 00:09:18.620
|
| 529 |
+
los a I por los BI0 si sumamos
|
| 530 |
+
|
| 531 |
+
00:09:18.760 --> 00:09:22.600
|
| 532 |
+
los b I por los AIY esto de
|
| 533 |
+
|
| 534 |
+
00:09:22.600 --> 00:09:25.660
|
| 535 |
+
aquí es exactamente la representación de b traspuesta
|
| 536 |
+
|
| 537 |
+
00:09:25.880 --> 00:09:28.995
|
| 538 |
+
por a. Entonces conmuta de la siguiente forma,
|
| 539 |
+
|
| 540 |
+
00:09:29.055 --> 00:09:31.215
|
| 541 |
+
a traspuesta por b es igual a b
|
| 542 |
+
|
| 543 |
+
00:09:31.215 --> 00:09:36.415
|
| 544 |
+
traspuesta por a. Ahora, viene la asociatividad con
|
| 545 |
+
|
| 546 |
+
00:09:36.415 --> 00:09:41.730
|
| 547 |
+
multiplicación escalar. En esta asociatividad nosotros tenemos que
|
| 548 |
+
|
| 549 |
+
00:09:41.870 --> 00:09:44.910
|
| 550 |
+
a por alfa por a sabemos que esto
|
| 551 |
+
|
| 552 |
+
00:09:44.910 --> 00:09:48.750
|
| 553 |
+
es un n vector, entonces transponemos toda esta
|
| 554 |
+
|
| 555 |
+
00:09:48.750 --> 00:09:50.510
|
| 556 |
+
operación de aquí porque este es un n
|
| 557 |
+
|
| 558 |
+
00:09:50.510 --> 00:09:53.310
|
| 559 |
+
vector, y este n vector lo multiplicamos por
|
| 560 |
+
|
| 561 |
+
00:09:53.310 --> 00:09:56.535
|
| 562 |
+
b. Lo que nos dice la asociatividad con
|
| 563 |
+
|
| 564 |
+
00:09:56.535 --> 00:10:00.475
|
| 565 |
+
la multiplicación escalar es que da lo mismo
|
| 566 |
+
|
| 567 |
+
00:10:01.335 --> 00:10:04.855
|
| 568 |
+
que multipliquemos primero este escalar, es decir, que
|
| 569 |
+
|
| 570 |
+
00:10:04.855 --> 00:10:09.079
|
| 571 |
+
escalemos este vector, y después lo transpongamos y
|
| 572 |
+
|
| 573 |
+
00:10:09.079 --> 00:10:12.040
|
| 574 |
+
después lo multipliquemos por b, que si hacemos
|
| 575 |
+
|
| 576 |
+
00:10:12.040 --> 00:10:15.959
|
| 577 |
+
la multiplicación a traspuesta por b y después
|
| 578 |
+
|
| 579 |
+
00:10:15.959 --> 00:10:21.565
|
| 580 |
+
lo escalamos por el escalar alfa. Una forma
|
| 581 |
+
|
| 582 |
+
00:10:21.565 --> 00:10:24.445
|
| 583 |
+
de decirlo, y que también se suele utilizar,
|
| 584 |
+
|
| 585 |
+
00:10:24.445 --> 00:10:29.185
|
| 586 |
+
es que el escalar saca escalares, la transposición
|
| 587 |
+
|
| 588 |
+
00:10:29.644 --> 00:10:32.785
|
| 589 |
+
saca escalares. Ahora, vamos a ver la distribución
|
| 590 |
+
|
| 591 |
+
00:10:32.925 --> 00:10:36.170
|
| 592 |
+
en la adición de vectores. Notemos que si
|
| 593 |
+
|
| 594 |
+
00:10:36.170 --> 00:10:38.850
|
| 595 |
+
sumamos AYB, esto nos va a dar un
|
| 596 |
+
|
| 597 |
+
00:10:38.850 --> 00:10:41.570
|
| 598 |
+
n vector, y todo este n vector lo
|
| 599 |
+
|
| 600 |
+
00:10:41.570 --> 00:10:46.470
|
| 601 |
+
podemos transponer. Y toda esa transposición la multiplicamos
|
| 602 |
+
|
| 603 |
+
00:10:46.850 --> 00:10:49.654
|
| 604 |
+
por c, y eso nos daría un escalar,
|
| 605 |
+
|
| 606 |
+
00:10:50.915 --> 00:10:54.115
|
| 607 |
+
donde tanto c como b como a son
|
| 608 |
+
|
| 609 |
+
00:10:54.115 --> 00:10:58.375
|
| 610 |
+
n vectores. Así bien, lo que la distribución
|
| 611 |
+
|
| 612 |
+
00:10:58.514 --> 00:11:00.274
|
| 613 |
+
en la adición de vectores nos dice es
|
| 614 |
+
|
| 615 |
+
00:11:00.274 --> 00:11:03.410
|
| 616 |
+
que da lo mismo sumarlo y después transponerlo
|
| 617 |
+
|
| 618 |
+
00:11:03.410 --> 00:11:07.650
|
| 619 |
+
y después multiplicarlo por c, que si sumamos
|
| 620 |
+
|
| 621 |
+
00:11:07.650 --> 00:11:10.130
|
| 622 |
+
la multiplicación de la transposición de a por
|
| 623 |
+
|
| 624 |
+
00:11:10.130 --> 00:11:12.930
|
| 625 |
+
c y la de la transposición de b
|
| 626 |
+
|
| 627 |
+
00:11:12.930 --> 00:11:16.705
|
| 628 |
+
por c. Esto será exactamente lo mismo. Hasta
|
| 629 |
+
|
| 630 |
+
00:11:16.705 --> 00:11:19.665
|
| 631 |
+
aquí llega esta clase. Hay que hacer un
|
| 632 |
+
|
| 633 |
+
00:11:19.665 --> 00:11:21.505
|
| 634 |
+
pequeño recap de lo que hemos visto hasta
|
| 635 |
+
|
| 636 |
+
00:11:21.505 --> 00:11:24.145
|
| 637 |
+
ahora. Hasta el momento ya vimos tres tipos
|
| 638 |
+
|
| 639 |
+
00:11:24.145 --> 00:11:26.705
|
| 640 |
+
de operaciones con los vectores súper importantes, que
|
| 641 |
+
|
| 642 |
+
00:11:26.705 --> 00:11:30.020
|
| 643 |
+
es la suma de vectores, la multiplicación de
|
| 644 |
+
|
| 645 |
+
00:11:30.020 --> 00:11:33.380
|
| 646 |
+
escalares por vectores, y ahora vimos esta nueva
|
| 647 |
+
|
| 648 |
+
00:11:33.380 --> 00:11:36.520
|
| 649 |
+
operación entre vectores que se denomina producto escalar.
|
| 650 |
+
|
| 651 |
+
00:11:37.220 --> 00:11:41.800
|
| 652 |
+
Solamente para recapitular, la operación suma entre vectores
|
| 653 |
+
|
| 654 |
+
00:11:42.735 --> 00:11:45.135
|
| 655 |
+
nos daba un vector más, es decir, si
|
| 656 |
+
|
| 657 |
+
00:11:45.135 --> 00:11:48.175
|
| 658 |
+
sumábamos dos n vectores, lo que obteníamos como
|
| 659 |
+
|
| 660 |
+
00:11:48.175 --> 00:11:50.815
|
| 661 |
+
respuesta era un n vector. En el caso
|
| 662 |
+
|
| 663 |
+
00:11:50.815 --> 00:11:52.735
|
| 664 |
+
de la multiplicación de un escalar por un
|
| 665 |
+
|
| 666 |
+
00:11:52.735 --> 00:11:55.455
|
| 667 |
+
n vector, sabíamos que nos daba también un
|
| 668 |
+
|
| 669 |
+
00:11:55.455 --> 00:11:57.839
|
| 670 |
+
escalar, y como vimos, lo que hace multiplicarlo
|
| 671 |
+
|
| 672 |
+
00:11:58.060 --> 00:12:00.000
|
| 673 |
+
por un escalar es que lo puede magnificar,
|
| 674 |
+
|
| 675 |
+
00:12:00.220 --> 00:12:04.000
|
| 676 |
+
es decir, crece su magnitud, lo puede también
|
| 677 |
+
|
| 678 |
+
00:12:04.220 --> 00:12:07.740
|
| 679 |
+
achicar, puede hacer que su magnitud decrezca y,
|
| 680 |
+
|
| 681 |
+
00:12:07.740 --> 00:12:10.905
|
| 682 |
+
de igual manera, le puede cambiar su sentido,
|
| 683 |
+
|
| 684 |
+
00:12:10.905 --> 00:12:14.025
|
| 685 |
+
es decir, puede apuntar en el sentido contrario,
|
| 686 |
+
|
| 687 |
+
00:12:14.025 --> 00:12:17.565
|
| 688 |
+
y lo puede magnificar o lo puede encoger
|
| 689 |
+
|
| 690 |
+
00:12:17.625 --> 00:12:23.625
|
| 691 |
+
en el sentido contrario. El producto interno lo
|
| 692 |
+
|
| 693 |
+
00:12:23.625 --> 00:12:26.860
|
| 694 |
+
que nos dará, entonces, será un escalar, es
|
| 695 |
+
|
| 696 |
+
00:12:26.860 --> 00:12:30.540
|
| 697 |
+
decir, tomará dos n vectores, los juntará y
|
| 698 |
+
|
| 699 |
+
00:12:30.540 --> 00:12:34.380
|
| 700 |
+
nos dará un número. Esa es la diferencia
|
| 701 |
+
|
| 702 |
+
00:12:34.380 --> 00:12:36.540
|
| 703 |
+
entre las tres operaciones que hemos visto hasta
|
| 704 |
+
|
| 705 |
+
00:12:36.540 --> 00:12:39.933
|
| 706 |
+
ahora. Nos vemos en la próxima clase, en
|
| 707 |
+
|
| 708 |
+
00:12:39.933 --> 00:12:42.893
|
| 709 |
+
donde veremos algunas consideraciones y cómo realizar estas
|
| 710 |
+
|
| 711 |
+
00:12:42.893 --> 00:12:45.633
|
| 712 |
+
operaciones en Python. Nos vemos allá.
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/08-producto_interno_a8f30484-9414-46fd-849b-c4125cd68a19.ipynb
ADDED
|
@@ -0,0 +1,447 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 4. Producto Interno"
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"El *producto interno* (estándar) o simplemente *producto punto* de dos $n$-vectores $\\vec{a},\\vec{b}$ se define como el escalar:\n",
|
| 15 |
+
"\n",
|
| 16 |
+
"$$\n",
|
| 17 |
+
"<\\vec{a},\\vec{b}> = \\vec{a} \\cdot \\vec{b} = a_{0}b_{0}+a_{1}b_{1}+\\cdots+a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 18 |
+
"$$\n",
|
| 19 |
+
"\n",
|
| 20 |
+
"Que es simplemente la suma del producto de sus entradas."
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"cell_type": "markdown",
|
| 25 |
+
"metadata": {},
|
| 26 |
+
"source": [
|
| 27 |
+
"Por ejemplo, si $\\vec{a}=(1,2,3)$ y $\\vec{b}=(4,5,6)$ entonces el producto punto será:\n",
|
| 28 |
+
"\n",
|
| 29 |
+
"$$\n",
|
| 30 |
+
"\\vec{a}\\cdot\\vec{b} = (1,2,3)\\cdot (4,5,6) = 1\\cdot 4+2\\cdot 5 + 3\\cdot 6 = 4+10+18=32\n",
|
| 31 |
+
"$$"
|
| 32 |
+
]
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"cell_type": "markdown",
|
| 36 |
+
"metadata": {},
|
| 37 |
+
"source": [
|
| 38 |
+
"Hasta ahora trabajamos de forma indiferente con *vectores columna* y *vectores renglón*, a partir de este momento **el estándar serán los vectores columna** entonces simpre que hablemos de un vector, dígamos $\\vec{a}$ entonces estaremos hablando del vector columna:\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"$$\n",
|
| 41 |
+
"\\vec{a} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}\n",
|
| 42 |
+
"$$\n",
|
| 43 |
+
"\n",
|
| 44 |
+
"Esto también nos permite introducir una nueva operación: **la transposición**. Retomemos el vector $\\vec{a}$, denotaremos como $\\vec{a}^{T}$ al vector transpuesto de $\\vec{a}$:\n",
|
| 45 |
+
"\n",
|
| 46 |
+
"$$\n",
|
| 47 |
+
"\\vec{a}^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]\n",
|
| 48 |
+
"$$\n",
|
| 49 |
+
"\n",
|
| 50 |
+
"La operación de transposición nos permite cambiar de vectores columna a vectores renglón sin modificar al vector que se transponga. Notemos que es posible poder transponer un vector transpuesto_\n",
|
| 51 |
+
"\n",
|
| 52 |
+
"$$\n",
|
| 53 |
+
"\\left(\\vec{a}^{T}\\right)^{T} = \\left(\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T}\\right)^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix} = \\vec{a}\n",
|
| 54 |
+
"$$"
|
| 55 |
+
]
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"cell_type": "markdown",
|
| 59 |
+
"metadata": {},
|
| 60 |
+
"source": [
|
| 61 |
+
"Así pues, consideremos el ejemplo anterior de los vectores $\\vec{a}$ y $\\vec{b}$. Definimos la operación $\\vec{a}^{T}\\vec{b}$ como:\n",
|
| 62 |
+
"\n",
|
| 63 |
+
"$$\n",
|
| 64 |
+
"\\vec{a}^{T}\\; \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}] \\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{n-1}\\end{bmatrix} = a_{0}b_{0} + a_{1}b_{1} + \\cdots + a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 65 |
+
"$$\n",
|
| 66 |
+
"\n",
|
| 67 |
+
"Lo cual coincide con la definición del producto interno. Así pues $<\\vec{a},\\vec{b}> = \\vec{a}\\cdot \\vec{b} = \\vec{a}^{T} \\;\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}$"
|
| 68 |
+
]
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"cell_type": "markdown",
|
| 72 |
+
"metadata": {},
|
| 73 |
+
"source": [
|
| 74 |
+
"## 4.1 Propiedades del producto interno"
|
| 75 |
+
]
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"cell_type": "markdown",
|
| 79 |
+
"metadata": {},
|
| 80 |
+
"source": [
|
| 81 |
+
"Sean $\\vec{a},\\vec{b}$ dos $n$-vectores y $\\alpha$ un escalar. El producto interno entre $\\vec{a}$ y $\\vec{b}$ cumple las siguientes propiedades:\n",
|
| 82 |
+
"\n",
|
| 83 |
+
"* Conmutatividad: $\\vec{a}^{T}\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i} = \\displaystyle\\sum_{i=0}^{n-1} b_{i}a_{i} = \\vec{b}^{T}\\vec{a}$\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"* Asociatividad con multiplicación escalar: $\\left(\\alpha \\vec{a}\\right)^{T}\\vec{b} = \\alpha\\left(\\vec{a}^{T}\\vec{b}\\right)$\n",
|
| 86 |
+
"\n",
|
| 87 |
+
"* Distribución en la adición de vectores: $\\left(\\vec{a} + \\vec{b}\\right)^{T}\\vec{c} = \\vec{a}^{T}\\vec{c} + \\vec{b}^{T}\\vec{c}$"
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"cell_type": "markdown",
|
| 92 |
+
"metadata": {},
|
| 93 |
+
"source": [
|
| 94 |
+
"## 4.2 Consideraciones adicionales"
|
| 95 |
+
]
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"cell_type": "markdown",
|
| 99 |
+
"metadata": {},
|
| 100 |
+
"source": [
|
| 101 |
+
"**Proyección**. Si $\\vec{a}$ es un $n$-vector entonces $\\hat{e}_{i}^{T}\\vec{a} = a_{i}$"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"cell_type": "markdown",
|
| 106 |
+
"metadata": {},
|
| 107 |
+
"source": [
|
| 108 |
+
"**Suma de elementos de un vector.** $\\mathbf{1}^{T}a = a_{0}+a_{1}+\\cdots+a_{n-1}$ "
|
| 109 |
+
]
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"cell_type": "markdown",
|
| 113 |
+
"metadata": {},
|
| 114 |
+
"source": [
|
| 115 |
+
"**Promedio de entradas de un vector.** $(\\mathbf{1}/n)^{T}\\vec{a} = (a_{0}+a_{1}+\\cdots+a_{n-1})/n$"
|
| 116 |
+
]
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"cell_type": "markdown",
|
| 120 |
+
"metadata": {},
|
| 121 |
+
"source": [
|
| 122 |
+
"**Suma de cuadrados de un vector.** $\\vec{a}^{T} \\;\\vec{a} = a_{0}^{2}+a_{1}^{2}+\\cdots+a_{n-1}^{2}$"
|
| 123 |
+
]
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"cell_type": "markdown",
|
| 127 |
+
"metadata": {},
|
| 128 |
+
"source": [
|
| 129 |
+
"**Producto interno de bloques de vectores**. Sean $\\vec{a},\\vec{b}$ $k$-vectores formados por concatenar los $n$-vectores $a_{i},b_{i}$:\n",
|
| 130 |
+
"\n",
|
| 131 |
+
"$$\n",
|
| 132 |
+
"\\vec{a}=\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{k-1}\\end{bmatrix},\\qquad \\vec{b}=\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix}\n",
|
| 133 |
+
"$$\n",
|
| 134 |
+
"\n",
|
| 135 |
+
"Entonces el producto punto entre estos vectores va como:\n",
|
| 136 |
+
"\n",
|
| 137 |
+
"$$\n",
|
| 138 |
+
"\\vec{a}^{T} \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{k-1}]\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix} = a_{0}^{T}b_{0}+a_{1}^{T}b_{1} + \\cdots + a_{k-1}^{T}b_{k-1}\n",
|
| 139 |
+
"$$"
|
| 140 |
+
]
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"cell_type": "markdown",
|
| 144 |
+
"metadata": {},
|
| 145 |
+
"source": [
|
| 146 |
+
"## 4.3 Producto interno en Python. "
|
| 147 |
+
]
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"cell_type": "code",
|
| 151 |
+
"execution_count": 1,
|
| 152 |
+
"metadata": {},
|
| 153 |
+
"outputs": [],
|
| 154 |
+
"source": [
|
| 155 |
+
"import numpy as np"
|
| 156 |
+
]
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"cell_type": "markdown",
|
| 160 |
+
"metadata": {},
|
| 161 |
+
"source": [
|
| 162 |
+
"Sean $\\vec{a},\\vec{b}$ vectores en $\\mathbb{R}^{4}$. Diremos que los vectores son **ortogonales** o **perpendiculares** si $\\vec{a}\\cdot \\vec{b}= 0$\n",
|
| 163 |
+
"\n",
|
| 164 |
+
"Consideremos entonces $\\vec{a}=\\hat{e}_{0}$ y $\\vec{b} = \\hat{e}_{2}$. Vamos a realizar el producto punto en Python"
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"cell_type": "code",
|
| 169 |
+
"execution_count": 3,
|
| 170 |
+
"metadata": {},
|
| 171 |
+
"outputs": [],
|
| 172 |
+
"source": [
|
| 173 |
+
"a = np.array([1,0,0,0]) #declaramos el vector e_1\n",
|
| 174 |
+
"\n",
|
| 175 |
+
"b = np.array([0,0,1,0]) #declaramos el vector e_2"
|
| 176 |
+
]
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"cell_type": "markdown",
|
| 180 |
+
"metadata": {},
|
| 181 |
+
"source": [
|
| 182 |
+
"Para realizar el producto punto llamaremos a la función *numpy.dot*"
|
| 183 |
+
]
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"cell_type": "code",
|
| 187 |
+
"execution_count": 16,
|
| 188 |
+
"metadata": {},
|
| 189 |
+
"outputs": [
|
| 190 |
+
{
|
| 191 |
+
"name": "stdout",
|
| 192 |
+
"output_type": "stream",
|
| 193 |
+
"text": [
|
| 194 |
+
"<a,b> = 0\n"
|
| 195 |
+
]
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"source": [
|
| 199 |
+
"print('<a,b> =',np.dot(a,b))"
|
| 200 |
+
]
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"cell_type": "markdown",
|
| 204 |
+
"metadata": {},
|
| 205 |
+
"source": [
|
| 206 |
+
"De igual manera también podemos usar el operador $@$"
|
| 207 |
+
]
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"cell_type": "code",
|
| 211 |
+
"execution_count": 21,
|
| 212 |
+
"metadata": {},
|
| 213 |
+
"outputs": [
|
| 214 |
+
{
|
| 215 |
+
"name": "stdout",
|
| 216 |
+
"output_type": "stream",
|
| 217 |
+
"text": [
|
| 218 |
+
"<a,b> = 0\n"
|
| 219 |
+
]
|
| 220 |
+
}
|
| 221 |
+
],
|
| 222 |
+
"source": [
|
| 223 |
+
"print('<a,b> =',a.T@b)"
|
| 224 |
+
]
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"cell_type": "markdown",
|
| 228 |
+
"metadata": {},
|
| 229 |
+
"source": [
|
| 230 |
+
" "
|
| 231 |
+
]
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"cell_type": "markdown",
|
| 235 |
+
"metadata": {},
|
| 236 |
+
"source": [
|
| 237 |
+
"**Evaluación de polinomios**. Un polinomio de grado $n-1$ se puede expresar como $p(x) = c_{0} + c_{1}x + c_{2}x^{2} + \\cdots + c_{n-1}x^{n-1}$. Si consideramos los $n$-vectores $\\vec{c},\\vec{x}$ tales que:\n",
|
| 238 |
+
"\n",
|
| 239 |
+
"$$\n",
|
| 240 |
+
"\\vec{c} = \\begin{bmatrix}c_{0}\\\\ c_{1}\\\\ \\vdots \\\\ c_{n-1}\\end{bmatrix},\\qquad \\vec{x}(x) = \\begin{bmatrix}x^{0}\\\\ x^{1}\\\\ \\vdots \\\\ x^{n-1}\\end{bmatrix}\n",
|
| 241 |
+
"$$\n",
|
| 242 |
+
"\n",
|
| 243 |
+
"Así pues, usando estos vectores es posible expresar $p(x) = \\vec{c}^{T}\\vec{x}(x)$. Un ejemplo más concreto sería $p(x)=1+2x$, usando los vectores:\n",
|
| 244 |
+
"\n",
|
| 245 |
+
"$$\n",
|
| 246 |
+
"\\vec{c} = \\begin{bmatrix}1\\\\ 2 \\end{bmatrix}, \\qquad \\vec{x}(x) = \\begin{bmatrix}1\\\\ x \\end{bmatrix}\n",
|
| 247 |
+
"$$\n",
|
| 248 |
+
"\n",
|
| 249 |
+
"Entonces podemos escribir:\n",
|
| 250 |
+
"$$\n",
|
| 251 |
+
"p(x) = \\vec{c}^{T}\\vec{x}(x) = [1 \\; 2] \\begin{bmatrix}1\\\\ x \\end{bmatrix} = 1\\cdot 1 + 2\\cdot x = 1 + 2x\n",
|
| 252 |
+
"$$"
|
| 253 |
+
]
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"cell_type": "markdown",
|
| 257 |
+
"metadata": {},
|
| 258 |
+
"source": [
|
| 259 |
+
"Así pues en Python podemos escribir el polinomio como:"
|
| 260 |
+
]
|
| 261 |
+
},
|
| 262 |
+
{
|
| 263 |
+
"cell_type": "code",
|
| 264 |
+
"execution_count": 2,
|
| 265 |
+
"metadata": {},
|
| 266 |
+
"outputs": [],
|
| 267 |
+
"source": [
|
| 268 |
+
"def p(x):\n",
|
| 269 |
+
" return np.array([1,2])@np.array([1,x])"
|
| 270 |
+
]
|
| 271 |
+
},
|
| 272 |
+
{
|
| 273 |
+
"cell_type": "code",
|
| 274 |
+
"execution_count": 5,
|
| 275 |
+
"metadata": {},
|
| 276 |
+
"outputs": [
|
| 277 |
+
{
|
| 278 |
+
"name": "stdout",
|
| 279 |
+
"output_type": "stream",
|
| 280 |
+
"text": [
|
| 281 |
+
"p(0) = 1\n",
|
| 282 |
+
"p(1) = 3\n",
|
| 283 |
+
"p(2) = 5\n"
|
| 284 |
+
]
|
| 285 |
+
}
|
| 286 |
+
],
|
| 287 |
+
"source": [
|
| 288 |
+
"print('p(0) = ',p(0))\n",
|
| 289 |
+
"print('p(1) = ',p(1))\n",
|
| 290 |
+
"print('p(2) = ',p(2))"
|
| 291 |
+
]
|
| 292 |
+
},
|
| 293 |
+
{
|
| 294 |
+
"cell_type": "markdown",
|
| 295 |
+
"metadata": {},
|
| 296 |
+
"source": [
|
| 297 |
+
"## 4.4 Ejercicios."
|
| 298 |
+
]
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"cell_type": "markdown",
|
| 302 |
+
"metadata": {},
|
| 303 |
+
"source": [
|
| 304 |
+
"**Problema 1: Análisis de sentimientos de tweets.** Vamos a crear un máquina que pueda decirnos qué tan positivo, neutral o negativo son una serie de respuestas de twitter. \n",
|
| 305 |
+
"Las respuestas son:\n",
|
| 306 |
+
"> Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\n",
|
| 307 |
+
"\n",
|
| 308 |
+
"> Vaya señora que bueno que se asesora por alguien inteligente no por el ignorante del Gatt.\n",
|
| 309 |
+
"\n",
|
| 310 |
+
"> Se me ocurre y sin ver todos los videos de Plazti que me informéis por dónde empiezo. Entiendo que os tendría que decir quién soy y que quiero, vamos conocerme para asesorarme bien.\n",
|
| 311 |
+
"Un saludo\n",
|
| 312 |
+
"\n",
|
| 313 |
+
"> Soy docente universitario, estoy intentando preparar mis clases en modo platzi bien didáctico, (le llamo modo noticiero), descargue una plataforma gratuita de grabación y transmisión de vídeo, se llama Obs estudio!bueno la sigo remando con sus funciones pero sé que saldrá algo!"
|
| 314 |
+
]
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"cell_type": "code",
|
| 318 |
+
"execution_count": 7,
|
| 319 |
+
"metadata": {},
|
| 320 |
+
"outputs": [],
|
| 321 |
+
"source": [
|
| 322 |
+
"a = \"Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\"\n",
|
| 323 |
+
"a = a.replace(\"!\",\"\").replace(\",\",\"\").split(\" \")"
|
| 324 |
+
]
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"cell_type": "code",
|
| 328 |
+
"execution_count": 8,
|
| 329 |
+
"metadata": {},
|
| 330 |
+
"outputs": [
|
| 331 |
+
{
|
| 332 |
+
"data": {
|
| 333 |
+
"text/plain": [
|
| 334 |
+
"['Gran',\n",
|
| 335 |
+
" 'mexicano',\n",
|
| 336 |
+
" 'y',\n",
|
| 337 |
+
" 'excelente',\n",
|
| 338 |
+
" 'en',\n",
|
| 339 |
+
" 'su',\n",
|
| 340 |
+
" 'área',\n",
|
| 341 |
+
" 'su',\n",
|
| 342 |
+
" 'muerte',\n",
|
| 343 |
+
" 'es',\n",
|
| 344 |
+
" 'una',\n",
|
| 345 |
+
" 'enorme',\n",
|
| 346 |
+
" 'perdida',\n",
|
| 347 |
+
" 'y',\n",
|
| 348 |
+
" 'debería',\n",
|
| 349 |
+
" 'ser',\n",
|
| 350 |
+
" 'luto',\n",
|
| 351 |
+
" 'nacional']"
|
| 352 |
+
]
|
| 353 |
+
},
|
| 354 |
+
"execution_count": 8,
|
| 355 |
+
"metadata": {},
|
| 356 |
+
"output_type": "execute_result"
|
| 357 |
+
}
|
| 358 |
+
],
|
| 359 |
+
"source": [
|
| 360 |
+
"a"
|
| 361 |
+
]
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"cell_type": "code",
|
| 365 |
+
"execution_count": 9,
|
| 366 |
+
"metadata": {},
|
| 367 |
+
"outputs": [
|
| 368 |
+
{
|
| 369 |
+
"name": "stdout",
|
| 370 |
+
"output_type": "stream",
|
| 371 |
+
"text": [
|
| 372 |
+
"Sí\n"
|
| 373 |
+
]
|
| 374 |
+
}
|
| 375 |
+
],
|
| 376 |
+
"source": [
|
| 377 |
+
"if 'muerte' in a:\n",
|
| 378 |
+
" print(\"Sí\")"
|
| 379 |
+
]
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"cell_type": "markdown",
|
| 383 |
+
"metadata": {},
|
| 384 |
+
"source": [
|
| 385 |
+
"Ahora bien, no podemos sacar toda la información de los textos sino vamos a buscar cadenas (strings) específicas. Así pues vamos a construir una función de Python que cuente la cantidad de veces que aparece cierta cadena. Como ejemplo, supongamos que las palabras que vamos a contar son *muerte*, *pérdida*, *luto*, *excelente*,*gran* y *positivo*, y además esto lo queremos expresar como vector en orden respectivo, así pues el primer comentario lo podemos expresar como el siguiente vector:\n",
|
| 386 |
+
"$$\n",
|
| 387 |
+
"\\vec{w} = \\begin{bmatrix}1\\\\ 1 \\\\ 1\\\\ 1\\\\ 1 \\\\0 \\end{bmatrix}\n",
|
| 388 |
+
"$$\n",
|
| 389 |
+
"Ahora, vamos a crear otra función en la que tendremos el vector con entradas de cantidad de palabras positivas, negativas y neutras. Siguiendo con el ejemplo vamos a sumar un uno a la primer entrada si aparece alguna de las siguientes palabras *excelente*,*gran* y *positivo*, un uno en la segunda por cada vez que aparezca la palabra *pérdida* y un uno a la última entrada si aparecen las palabras *muerte* y *luto*. Así pues, el primer twett lo podemos representar como:\n",
|
| 390 |
+
"\n",
|
| 391 |
+
"$$\n",
|
| 392 |
+
"\\vec{s} = \\begin{bmatrix} 2 \\\\ 1 \\\\2 \\end{bmatrix}\n",
|
| 393 |
+
"$$\n",
|
| 394 |
+
"\n",
|
| 395 |
+
"Ahora, para ver la *calidad* del resultado que tendremos para un twett conviene calcular el promedio de las entradas de un vector de palabras\n",
|
| 396 |
+
"$$avg(\\vec{w}) = (\\mathbf{1}/n)^{T}\\vec{w}$$\n",
|
| 397 |
+
"Y después calcularás el promedio del sentimiento de cada tweet $avg(\\vec{s})$ y de igual manera el *score sentimental* que se define como \n",
|
| 398 |
+
"$$score(\\vec{s}) = [1\\; 0\\; -1] \\begin{bmatrix} s_{0} \\\\ s_{1} \\\\s_{2} \\end{bmatrix}$$"
|
| 399 |
+
]
|
| 400 |
+
},
|
| 401 |
+
{
|
| 402 |
+
"cell_type": "markdown",
|
| 403 |
+
"metadata": {},
|
| 404 |
+
"source": [
|
| 405 |
+
"Leyendo los tuits decide el conjunto mínimo de palabras que vas a contar en todos los tuits, solamente deberás hacer una función para contar palabras para todos los tuits, no hagas un función por enunciado. Según tu esquema reponde lo siguiente:\n",
|
| 406 |
+
"\n",
|
| 407 |
+
"* ¿Qué tuit es más positivo?\n",
|
| 408 |
+
"\n",
|
| 409 |
+
"* ¿Qué tuit es más negativo?\n",
|
| 410 |
+
"\n",
|
| 411 |
+
"* ¿Cuál es tu calidad promedio?\n",
|
| 412 |
+
"\n",
|
| 413 |
+
"* ¿Cómo interpretas $avg(\\vec{s})$ y $score(\\vec{s})$?\n",
|
| 414 |
+
"\n",
|
| 415 |
+
"* ¿Cómo relacionas la calidad con $score(\\vec{s})$ y $avg(\\vec{s})$?"
|
| 416 |
+
]
|
| 417 |
+
},
|
| 418 |
+
{
|
| 419 |
+
"cell_type": "code",
|
| 420 |
+
"execution_count": null,
|
| 421 |
+
"metadata": {},
|
| 422 |
+
"outputs": [],
|
| 423 |
+
"source": []
|
| 424 |
+
}
|
| 425 |
+
],
|
| 426 |
+
"metadata": {
|
| 427 |
+
"kernelspec": {
|
| 428 |
+
"display_name": "Python 3",
|
| 429 |
+
"language": "python",
|
| 430 |
+
"name": "python3"
|
| 431 |
+
},
|
| 432 |
+
"language_info": {
|
| 433 |
+
"codemirror_mode": {
|
| 434 |
+
"name": "ipython",
|
| 435 |
+
"version": 3
|
| 436 |
+
},
|
| 437 |
+
"file_extension": ".py",
|
| 438 |
+
"mimetype": "text/x-python",
|
| 439 |
+
"name": "python",
|
| 440 |
+
"nbconvert_exporter": "python",
|
| 441 |
+
"pygments_lexer": "ipython3",
|
| 442 |
+
"version": "3.7.3"
|
| 443 |
+
}
|
| 444 |
+
},
|
| 445 |
+
"nbformat": 4,
|
| 446 |
+
"nbformat_minor": 4
|
| 447 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1zLgEfmILRmfGXpHHsH5e6gYc9kM7qT5S?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Producto Interno de Vectores en Python con NumPy.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2c432aba0dacd891b93d54e99ab58804e292e23b2746088018d16717886712ce
|
| 3 |
+
size 114255941
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Producto Interno de Vectores en Python con NumPy.vtt
ADDED
|
@@ -0,0 +1,604 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.120 --> 00:00:05.120
|
| 4 |
+
Te doy la bienvenida de nuevo. En la
|
| 5 |
+
|
| 6 |
+
00:00:05.120 --> 00:00:07.919
|
| 7 |
+
clase pasada, lo que vimos fue un breve
|
| 8 |
+
|
| 9 |
+
00:00:07.919 --> 00:00:10.400
|
| 10 |
+
repaso de otras operaciones que hemos visto entre
|
| 11 |
+
|
| 12 |
+
00:00:10.400 --> 00:00:13.245
|
| 13 |
+
vectores y escalares, y también vimos e introdujimos
|
| 14 |
+
|
| 15 |
+
00:00:13.465 --> 00:00:17.225
|
| 16 |
+
una nueva operación, se llama producto interno. Vimos
|
| 17 |
+
|
| 18 |
+
00:00:17.225 --> 00:00:19.465
|
| 19 |
+
cómo se realiza de manera algebraica y realizamos
|
| 20 |
+
|
| 21 |
+
00:00:19.465 --> 00:00:21.865
|
| 22 |
+
algunos ejercicios a mano. Te invito a que
|
| 23 |
+
|
| 24 |
+
00:00:21.865 --> 00:00:24.345
|
| 25 |
+
ahora lo hagamos y aprendamos a hacerlo en
|
| 26 |
+
|
| 27 |
+
00:00:24.345 --> 00:00:27.890
|
| 28 |
+
Python. Sin más, vamos a la computadora. Ahora,
|
| 29 |
+
|
| 30 |
+
00:00:28.270 --> 00:00:31.869
|
| 31 |
+
antes de llegar a las operaciones en Python,
|
| 32 |
+
|
| 33 |
+
00:00:31.869 --> 00:00:34.110
|
| 34 |
+
el producto interno en Python, vamos a ver
|
| 35 |
+
|
| 36 |
+
00:00:34.110 --> 00:00:38.290
|
| 37 |
+
algunas consideraciones adicionales. Fíjense que si nosotros tenemos
|
| 38 |
+
|
| 39 |
+
00:00:38.350 --> 00:00:40.430
|
| 40 |
+
a como un n vector y hacemos la
|
| 41 |
+
|
| 42 |
+
00:00:40.430 --> 00:00:44.495
|
| 43 |
+
multiplicación de el vector unitario estándar e I
|
| 44 |
+
|
| 45 |
+
00:00:44.495 --> 00:00:47.875
|
| 46 |
+
traspuesto por a, esto nos da la componente
|
| 47 |
+
|
| 48 |
+
00:00:48.015 --> 00:00:50.175
|
| 49 |
+
a I del vector a. A esto le
|
| 50 |
+
|
| 51 |
+
00:00:50.175 --> 00:00:54.170
|
| 52 |
+
vamos a llamar una proyección. Es decir, solamente
|
| 53 |
+
|
| 54 |
+
00:00:54.170 --> 00:00:57.949
|
| 55 |
+
estamos viendo la iésima componente de este vector
|
| 56 |
+
|
| 57 |
+
00:00:58.329 --> 00:01:02.570
|
| 58 |
+
y, como siempre, nos da un escalar. También
|
| 59 |
+
|
| 60 |
+
00:01:02.570 --> 00:01:04.729
|
| 61 |
+
vamos a ver que podemos expresar la suma
|
| 62 |
+
|
| 63 |
+
00:01:04.729 --> 00:01:06.729
|
| 64 |
+
de los elementos de un vector como la
|
| 65 |
+
|
| 66 |
+
00:01:06.729 --> 00:01:11.505
|
| 67 |
+
multiplicación de vectores, es decir, si tomamos el
|
| 68 |
+
|
| 69 |
+
00:01:11.505 --> 00:01:14.865
|
| 70 |
+
vector uno, el n vector uno y lo
|
| 71 |
+
|
| 72 |
+
00:01:14.865 --> 00:01:18.645
|
| 73 |
+
transponemos, y tenemos a este n vector a,
|
| 74 |
+
|
| 75 |
+
00:01:19.104 --> 00:01:21.985
|
| 76 |
+
esto va a ser simplemente la suma de
|
| 77 |
+
|
| 78 |
+
00:01:21.985 --> 00:01:25.110
|
| 79 |
+
las componentes del vector a, es decir, a
|
| 80 |
+
|
| 81 |
+
00:01:25.110 --> 00:01:27.270
|
| 82 |
+
cero, a uno, a dos, a tres, a
|
| 83 |
+
|
| 84 |
+
00:01:27.270 --> 00:01:30.950
|
| 85 |
+
n. Te invito a que realices esta operación
|
| 86 |
+
|
| 87 |
+
00:01:30.950 --> 00:01:33.190
|
| 88 |
+
a mano y de manera explícita, al igual
|
| 89 |
+
|
| 90 |
+
00:01:33.190 --> 00:01:36.710
|
| 91 |
+
que esta, para que compruebes que el resultado
|
| 92 |
+
|
| 93 |
+
00:01:36.710 --> 00:01:42.015
|
| 94 |
+
es correcto. De igual manera, si nosotros tomamos
|
| 95 |
+
|
| 96 |
+
00:01:42.075 --> 00:01:45.435
|
| 97 |
+
el vector uno y lo multiplicamos por el
|
| 98 |
+
|
| 99 |
+
00:01:45.435 --> 00:01:50.820
|
| 100 |
+
escalar uno sobre n, y además esto lo
|
| 101 |
+
|
| 102 |
+
00:01:50.820 --> 00:01:53.720
|
| 103 |
+
transponemos y lo multiplicamos por el vector a,
|
| 104 |
+
|
| 105 |
+
00:01:54.180 --> 00:01:58.360
|
| 106 |
+
vamos a obtener el promedio de las entradas
|
| 107 |
+
|
| 108 |
+
00:01:58.500 --> 00:02:01.060
|
| 109 |
+
de un vector, o el promedio de un
|
| 110 |
+
|
| 111 |
+
00:02:01.060 --> 00:02:04.035
|
| 112 |
+
vector. Esta operación ya la habíamos visto antes,
|
| 113 |
+
|
| 114 |
+
00:02:04.035 --> 00:02:06.455
|
| 115 |
+
pero es bueno recordarle y volverla a introducir
|
| 116 |
+
|
| 117 |
+
00:02:06.515 --> 00:02:11.315
|
| 118 |
+
aquí. También, la suma de los cuadrados de
|
| 119 |
+
|
| 120 |
+
00:02:11.315 --> 00:02:15.075
|
| 121 |
+
un vector se puede expresar como el producto
|
| 122 |
+
|
| 123 |
+
00:02:15.075 --> 00:02:18.375
|
| 124 |
+
interno. En este caso, notemos que a traspuesta
|
| 125 |
+
|
| 126 |
+
00:02:18.835 --> 00:02:21.770
|
| 127 |
+
por a es igual a a cuadrada más
|
| 128 |
+
|
| 129 |
+
00:02:21.770 --> 00:02:24.910
|
| 130 |
+
a uno al cuadrado más a dos cuadrado
|
| 131 |
+
|
| 132 |
+
00:02:25.370 --> 00:02:27.690
|
| 133 |
+
más a tres cuadrado, y así hasta el
|
| 134 |
+
|
| 135 |
+
00:02:27.690 --> 00:02:30.810
|
| 136 |
+
a n menos uno al cuadrado. Te invito
|
| 137 |
+
|
| 138 |
+
00:02:30.810 --> 00:02:33.790
|
| 139 |
+
a que realices todas estas operaciones a mano
|
| 140 |
+
|
| 141 |
+
00:02:34.305 --> 00:02:37.185
|
| 142 |
+
con vectores, digamos, en r tres y que
|
| 143 |
+
|
| 144 |
+
00:02:37.185 --> 00:02:41.265
|
| 145 |
+
puedas verificar que esto es cierto. También otra
|
| 146 |
+
|
| 147 |
+
00:02:41.265 --> 00:02:42.944
|
| 148 |
+
cosa muy interna que en el futuro nos
|
| 149 |
+
|
| 150 |
+
00:02:42.944 --> 00:02:46.144
|
| 151 |
+
servirá es el producto interno entre bloques de
|
| 152 |
+
|
| 153 |
+
00:02:46.144 --> 00:02:50.530
|
| 154 |
+
vectores. Si recordamos, nosotros teníamos la definición de
|
| 155 |
+
|
| 156 |
+
00:02:50.530 --> 00:02:54.050
|
| 157 |
+
bloques de vectores como n vectores, cuyos elementos
|
| 158 |
+
|
| 159 |
+
00:02:54.050 --> 00:02:59.170
|
| 160 |
+
eran k vectores. Entonces, consideremos AYBK vectores formados
|
| 161 |
+
|
| 162 |
+
00:02:59.170 --> 00:03:03.254
|
| 163 |
+
al concatenar los n vectores AIYBI. Vamos a
|
| 164 |
+
|
| 165 |
+
00:03:03.635 --> 00:03:08.915
|
| 166 |
+
considerar que son, como son k vectores, KAIYKBI
|
| 167 |
+
|
| 168 |
+
00:03:08.915 --> 00:03:13.875
|
| 169 |
+
vectores. Entonces, a es un k vector y
|
| 170 |
+
|
| 171 |
+
00:03:13.875 --> 00:03:16.674
|
| 172 |
+
cada una de sus entradas aquí es un
|
| 173 |
+
|
| 174 |
+
00:03:16.674 --> 00:03:19.349
|
| 175 |
+
n vector. Tenemos el n vector a cero,
|
| 176 |
+
|
| 177 |
+
00:03:19.349 --> 00:03:21.430
|
| 178 |
+
el n vector a uno, así hasta el
|
| 179 |
+
|
| 180 |
+
00:03:21.430 --> 00:03:25.590
|
| 181 |
+
n vector k menos uno. De igual manera,
|
| 182 |
+
|
| 183 |
+
00:03:25.590 --> 00:03:28.870
|
| 184 |
+
con b. Tenemos el vector el n vector
|
| 185 |
+
|
| 186 |
+
00:03:28.870 --> 00:03:30.709
|
| 187 |
+
b cero en el n vector b uno
|
| 188 |
+
|
| 189 |
+
00:03:30.709 --> 00:03:33.209
|
| 190 |
+
hasta el n vector b k menos uno.
|
| 191 |
+
|
| 192 |
+
00:03:33.375 --> 00:03:38.035
|
| 193 |
+
AYB son k vectores, mientras que los coeficientes
|
| 194 |
+
|
| 195 |
+
00:03:38.335 --> 00:03:42.975
|
| 196 |
+
de aquí son en realidad n vectores. Así,
|
| 197 |
+
|
| 198 |
+
00:03:42.975 --> 00:03:46.815
|
| 199 |
+
pues, el producto punto entre estos vectores lo
|
| 200 |
+
|
| 201 |
+
00:03:46.815 --> 00:03:50.459
|
| 202 |
+
podemos denotar como a traspuesta por b, como
|
| 203 |
+
|
| 204 |
+
00:03:50.459 --> 00:03:53.260
|
| 205 |
+
hemos visto hasta ahora, que es simplemente este
|
| 206 |
+
|
| 207 |
+
00:03:53.260 --> 00:03:57.120
|
| 208 |
+
vector renglón por este vector columna. Sin embargo,
|
| 209 |
+
|
| 210 |
+
00:03:58.219 --> 00:04:02.334
|
| 211 |
+
esto nos da como resultado este de aquí
|
| 212 |
+
|
| 213 |
+
00:04:02.474 --> 00:04:07.674
|
| 214 |
+
transpuesto por este de aquí normal. Te invito
|
| 215 |
+
|
| 216 |
+
00:04:07.674 --> 00:04:10.415
|
| 217 |
+
a que llegues a este resultado, sin embargo,
|
| 218 |
+
|
| 219 |
+
00:04:10.474 --> 00:04:16.810
|
| 220 |
+
este resultado es cierto. Entonces, el producto interno
|
| 221 |
+
|
| 222 |
+
00:04:17.589 --> 00:04:20.950
|
| 223 |
+
entre dos bloques de vectores será igual a
|
| 224 |
+
|
| 225 |
+
00:04:20.950 --> 00:04:24.550
|
| 226 |
+
la suma de los productos internos entrada por
|
| 227 |
+
|
| 228 |
+
00:04:24.550 --> 00:04:28.544
|
| 229 |
+
entrada de los vectores que componen a esos
|
| 230 |
+
|
| 231 |
+
00:04:30.205 --> 00:04:36.604
|
| 232 |
+
a esos bloques de vectores. Ahora bien, vamos
|
| 233 |
+
|
| 234 |
+
00:04:36.604 --> 00:04:38.444
|
| 235 |
+
a entrar de lleno con el producto interno
|
| 236 |
+
|
| 237 |
+
00:04:38.444 --> 00:04:41.245
|
| 238 |
+
en Python. Para eso primero vamos a importar
|
| 239 |
+
|
| 240 |
+
00:04:41.245 --> 00:04:45.849
|
| 241 |
+
numpy. Después, vamos a aclarar AYB dos vectores
|
| 242 |
+
|
| 243 |
+
00:04:45.849 --> 00:04:49.050
|
| 244 |
+
en r cuatro. Algo muy importante o una
|
| 245 |
+
|
| 246 |
+
00:04:49.050 --> 00:04:51.849
|
| 247 |
+
propiedad importante es que diremos que estos vectores
|
| 248 |
+
|
| 249 |
+
00:04:51.849 --> 00:04:56.694
|
| 250 |
+
son ortogonales o perpendiculares si el producto interno
|
| 251 |
+
|
| 252 |
+
00:04:56.835 --> 00:05:02.294
|
| 253 |
+
de AYB es cero. Así, pues, consideremos entonces
|
| 254 |
+
|
| 255 |
+
00:05:02.754 --> 00:05:05.315
|
| 256 |
+
a a igual a e cero YAB igual
|
| 257 |
+
|
| 258 |
+
00:05:05.315 --> 00:05:08.880
|
| 259 |
+
a e dos, dentro de r cuatro, realicemos
|
| 260 |
+
|
| 261 |
+
00:05:08.940 --> 00:05:12.000
|
| 262 |
+
el producto punto de esos vectores en Python.
|
| 263 |
+
|
| 264 |
+
00:05:12.860 --> 00:05:16.060
|
| 265 |
+
Estos vectores ya los conocemos porque se quedaron
|
| 266 |
+
|
| 267 |
+
00:05:16.060 --> 00:05:19.740
|
| 268 |
+
como ejercicio hace dos clases. Si no, de
|
| 269 |
+
|
| 270 |
+
00:05:19.740 --> 00:05:22.325
|
| 271 |
+
todas maneras lo recuerdo, el vector e uno
|
| 272 |
+
|
| 273 |
+
00:05:22.325 --> 00:05:24.725
|
| 274 |
+
es el vector uno coma cero coma cero
|
| 275 |
+
|
| 276 |
+
00:05:24.725 --> 00:05:26.965
|
| 277 |
+
coma cero, y el vector e dos será
|
| 278 |
+
|
| 279 |
+
00:05:26.965 --> 00:05:29.605
|
| 280 |
+
el vector cero coma cero coma uno coma
|
| 281 |
+
|
| 282 |
+
00:05:29.605 --> 00:05:38.290
|
| 283 |
+
cero. Si nosotros realizamos el producto punto, lo
|
| 284 |
+
|
| 285 |
+
00:05:38.290 --> 00:05:41.370
|
| 286 |
+
podemos realizar a mano, nos daremos cuenta que
|
| 287 |
+
|
| 288 |
+
00:05:41.370 --> 00:05:44.770
|
| 289 |
+
este de aquí nos dará cero, ya que
|
| 290 |
+
|
| 291 |
+
00:05:44.770 --> 00:05:48.450
|
| 292 |
+
uno por cero es cero, más cero por
|
| 293 |
+
|
| 294 |
+
00:05:48.450 --> 00:05:50.844
|
| 295 |
+
cero, que es cero, Cero por cero, que
|
| 296 |
+
|
| 297 |
+
00:05:50.844 --> 00:05:52.525
|
| 298 |
+
es cero, más cero por cero, que es
|
| 299 |
+
|
| 300 |
+
00:05:52.525 --> 00:05:56.365
|
| 301 |
+
cero. Entonces, este producto punto, el producto punto
|
| 302 |
+
|
| 303 |
+
00:05:56.365 --> 00:05:57.805
|
| 304 |
+
entre e uno y e dos, o en
|
| 305 |
+
|
| 306 |
+
00:05:57.805 --> 00:05:59.965
|
| 307 |
+
este caso AYB, nos debería de durar un
|
| 308 |
+
|
| 309 |
+
00:05:59.965 --> 00:06:03.164
|
| 310 |
+
cero. Ahora, la forma de realizar el producto
|
| 311 |
+
|
| 312 |
+
00:06:03.164 --> 00:06:07.389
|
| 313 |
+
punto entre AYB en numpy se llama con
|
| 314 |
+
|
| 315 |
+
00:06:07.389 --> 00:06:14.690
|
| 316 |
+
la función numpy dot. Entonces llamaremos print, el
|
| 317 |
+
|
| 318 |
+
00:06:14.910 --> 00:06:17.355
|
| 319 |
+
producto punto de AYB igual, y esta es
|
| 320 |
+
|
| 321 |
+
00:06:17.355 --> 00:06:20.895
|
| 322 |
+
la operación que hacemos, n p dot AYB.
|
| 323 |
+
|
| 324 |
+
00:06:20.955 --> 00:06:22.955
|
| 325 |
+
Si te das cuenta, no hay necesidad de
|
| 326 |
+
|
| 327 |
+
00:06:22.955 --> 00:06:25.215
|
| 328 |
+
transponer, no hay necesidad de hacer ninguna operación
|
| 329 |
+
|
| 330 |
+
00:06:25.995 --> 00:06:30.790
|
| 331 |
+
adicional, simplemente llamamos n p punto dot a
|
| 332 |
+
|
| 333 |
+
00:06:30.790 --> 00:06:33.270
|
| 334 |
+
coma b, y nos da el resultado que
|
| 335 |
+
|
| 336 |
+
00:06:33.270 --> 00:06:37.990
|
| 337 |
+
estábamos esperando. De igual manera, cuando estemos hablando
|
| 338 |
+
|
| 339 |
+
00:06:37.990 --> 00:06:40.490
|
| 340 |
+
de vectores y en el futuro de matrices,
|
| 341 |
+
|
| 342 |
+
00:06:41.030 --> 00:06:45.074
|
| 343 |
+
podemos utilizar el operador arroba. Este operador dentro
|
| 344 |
+
|
| 345 |
+
00:06:45.074 --> 00:06:48.995
|
| 346 |
+
de NumPy o entre entre elementos de NumPy
|
| 347 |
+
|
| 348 |
+
00:06:48.995 --> 00:06:52.354
|
| 349 |
+
sean matrices o sean vectores, representa para ellos
|
| 350 |
+
|
| 351 |
+
00:06:52.354 --> 00:06:56.835
|
| 352 |
+
la multiplicación. Y entonces, si nosotros agarramos dos
|
| 353 |
+
|
| 354 |
+
00:06:56.835 --> 00:07:00.930
|
| 355 |
+
vectores, en este caso, el vector a y
|
| 356 |
+
|
| 357 |
+
00:07:00.930 --> 00:07:03.330
|
| 358 |
+
el vector b, y además al vector a
|
| 359 |
+
|
| 360 |
+
00:07:03.330 --> 00:07:08.449
|
| 361 |
+
lo transponemos, nos daremos cuenta que el producto
|
| 362 |
+
|
| 363 |
+
00:07:08.449 --> 00:07:12.605
|
| 364 |
+
punto es simplemente cero, y es que esta
|
| 365 |
+
|
| 366 |
+
00:07:12.905 --> 00:07:14.845
|
| 367 |
+
representación que tenemos de aquí es la multiplicación
|
| 368 |
+
|
| 369 |
+
00:07:15.145 --> 00:07:18.665
|
| 370 |
+
entre vectores, exactamente esta que hemos estado viendo
|
| 371 |
+
|
| 372 |
+
00:07:18.665 --> 00:07:23.785
|
| 373 |
+
acá. Ahora bien, vamos a poner un ejemplo
|
| 374 |
+
|
| 375 |
+
00:07:23.785 --> 00:07:27.380
|
| 376 |
+
más claro. Un polinomio de grado n menos
|
| 377 |
+
|
| 378 |
+
00:07:27.380 --> 00:07:30.760
|
| 379 |
+
uno se puede expresar como esta combinación lineal,
|
| 380 |
+
|
| 381 |
+
00:07:33.860 --> 00:07:39.080
|
| 382 |
+
donde los c ceros son constantes ya dadas
|
| 383 |
+
|
| 384 |
+
00:07:40.005 --> 00:07:46.805
|
| 385 |
+
y los x son el número que estamos
|
| 386 |
+
|
| 387 |
+
00:07:46.805 --> 00:07:52.264
|
| 388 |
+
introduciendo. Por ejemplo, si este fuera un cero,
|
| 389 |
+
|
| 390 |
+
00:07:53.150 --> 00:07:56.349
|
| 391 |
+
este de aquí sería cero por c uno,
|
| 392 |
+
|
| 393 |
+
00:07:56.349 --> 00:07:59.710
|
| 394 |
+
cero por c dos, cero por c n
|
| 395 |
+
|
| 396 |
+
00:07:59.710 --> 00:08:03.330
|
| 397 |
+
menos uno, y nos daría únicamente c cero.
|
| 398 |
+
|
| 399 |
+
00:08:04.990 --> 00:08:09.685
|
| 400 |
+
Ahora, si consideramos dos n vectores CYX, tales
|
| 401 |
+
|
| 402 |
+
00:08:09.685 --> 00:08:14.005
|
| 403 |
+
que esos n vectores son c cero, c
|
| 404 |
+
|
| 405 |
+
00:08:14.005 --> 00:08:16.824
|
| 406 |
+
uno, c dos, hasta c n menos uno,
|
| 407 |
+
|
| 408 |
+
00:08:17.044 --> 00:08:21.625
|
| 409 |
+
y consideramos también un vector función, más adelante
|
| 410 |
+
|
| 411 |
+
00:08:22.085 --> 00:08:24.370
|
| 412 |
+
veremos cómo definir estos de manera correcta, pero
|
| 413 |
+
|
| 414 |
+
00:08:24.370 --> 00:08:26.530
|
| 415 |
+
simplemente lo que nosotros le vamos a meter
|
| 416 |
+
|
| 417 |
+
00:08:26.530 --> 00:08:29.330
|
| 418 |
+
a este vector es un número. Si le
|
| 419 |
+
|
| 420 |
+
00:08:29.330 --> 00:08:31.570
|
| 421 |
+
ponemos un cero, por ejemplo, aquí sería cero
|
| 422 |
+
|
| 423 |
+
00:08:31.570 --> 00:08:34.929
|
| 424 |
+
a la cero, que es un cero. Cero
|
| 425 |
+
|
| 426 |
+
00:08:34.929 --> 00:08:37.169
|
| 427 |
+
a la uno, que es un cero, y
|
| 428 |
+
|
| 429 |
+
00:08:37.169 --> 00:08:39.010
|
| 430 |
+
cero a la n menos uno, que nos
|
| 431 |
+
|
| 432 |
+
00:08:39.010 --> 00:08:43.145
|
| 433 |
+
dará un cero. Entonces, en ese caso, si
|
| 434 |
+
|
| 435 |
+
00:08:43.145 --> 00:08:46.425
|
| 436 |
+
nosotros ponemos un uno, nos dará c uno
|
| 437 |
+
|
| 438 |
+
00:08:46.425 --> 00:08:50.665
|
| 439 |
+
a la cero, que es Ese te lo
|
| 440 |
+
|
| 441 |
+
00:08:50.665 --> 00:08:53.225
|
| 442 |
+
dejo a ti. Uno a la uno, que
|
| 443 |
+
|
| 444 |
+
00:08:53.225 --> 00:08:55.540
|
| 445 |
+
es uno, y uno a la n menos
|
| 446 |
+
|
| 447 |
+
00:08:55.540 --> 00:09:00.180
|
| 448 |
+
uno, que será uno también, y así podemos
|
| 449 |
+
|
| 450 |
+
00:09:00.180 --> 00:09:11.345
|
| 451 |
+
seguirlo haciendo. Ahora bien, usando estos vectores, el
|
| 452 |
+
|
| 453 |
+
00:09:11.345 --> 00:09:15.584
|
| 454 |
+
vector c y el vector XDX, va a
|
| 455 |
+
|
| 456 |
+
00:09:15.584 --> 00:09:20.520
|
| 457 |
+
ser posible expresar este polinomio de aquí como
|
| 458 |
+
|
| 459 |
+
00:09:20.580 --> 00:09:24.820
|
| 460 |
+
esta multiplicación de vectores de acá. Si ponemos
|
| 461 |
+
|
| 462 |
+
00:09:24.820 --> 00:09:28.280
|
| 463 |
+
un ejemplo más concreto o mucho más tangible,
|
| 464 |
+
|
| 465 |
+
00:09:28.820 --> 00:09:31.780
|
| 466 |
+
lo podríamos poner como el polinomio uno más
|
| 467 |
+
|
| 468 |
+
00:09:31.780 --> 00:09:37.065
|
| 469 |
+
dos x. Usando los vectores c igual a
|
| 470 |
+
|
| 471 |
+
00:09:37.065 --> 00:09:39.785
|
| 472 |
+
uno dos y x de x igual a
|
| 473 |
+
|
| 474 |
+
00:09:39.785 --> 00:09:46.125
|
| 475 |
+
uno x. Y así podemos escribir p igual
|
| 476 |
+
|
| 477 |
+
00:09:46.340 --> 00:09:49.640
|
| 478 |
+
a c traspuesta por XDX, que es igual
|
| 479 |
+
|
| 480 |
+
00:09:49.700 --> 00:09:53.140
|
| 481 |
+
al uno dos, por el uno x, y
|
| 482 |
+
|
| 483 |
+
00:09:53.140 --> 00:09:55.060
|
| 484 |
+
esto es igual a uno por uno, que
|
| 485 |
+
|
| 486 |
+
00:09:55.060 --> 00:09:57.780
|
| 487 |
+
es uno por uno, más dos por x,
|
| 488 |
+
|
| 489 |
+
00:09:57.780 --> 00:10:00.065
|
| 490 |
+
dos por x. Y esto nos da uno
|
| 491 |
+
|
| 492 |
+
00:10:00.065 --> 00:10:03.285
|
| 493 |
+
más dos x, que es exactamente nuestro polinomio.
|
| 494 |
+
|
| 495 |
+
00:10:03.345 --> 00:10:08.964
|
| 496 |
+
Ahora, vamos a definir este polinomio en Python.
|
| 497 |
+
|
| 498 |
+
00:10:09.345 --> 00:10:12.305
|
| 499 |
+
¿Cómo lo haríamos? Vamos a definir la función
|
| 500 |
+
|
| 501 |
+
00:10:12.305 --> 00:10:14.404
|
| 502 |
+
pdx y lo que nos va a regresar
|
| 503 |
+
|
| 504 |
+
00:10:14.730 --> 00:10:18.510
|
| 505 |
+
va a ser el array n p uno
|
| 506 |
+
|
| 507 |
+
00:10:18.570 --> 00:10:22.190
|
| 508 |
+
coma dos, que es este de aquí, multiplicado
|
| 509 |
+
|
| 510 |
+
00:10:23.690 --> 00:10:28.810
|
| 511 |
+
por el array uno coma x, que es
|
| 512 |
+
|
| 513 |
+
00:10:28.810 --> 00:10:32.725
|
| 514 |
+
este de aquí. Y ahora, si nosotros evaluamos
|
| 515 |
+
|
| 516 |
+
00:10:33.425 --> 00:10:36.225
|
| 517 |
+
este polinomio en cero, por ejemplo, evaluándolo en
|
| 518 |
+
|
| 519 |
+
00:10:36.225 --> 00:10:39.904
|
| 520 |
+
cero sabemos que cero por dos x, esto
|
| 521 |
+
|
| 522 |
+
00:10:39.904 --> 00:10:41.524
|
| 523 |
+
de aquí nos va a dar un cero
|
| 524 |
+
|
| 525 |
+
00:10:41.584 --> 00:10:47.240
|
| 526 |
+
y nos daría un uno. Entonces, evaluando p
|
| 527 |
+
|
| 528 |
+
00:10:47.240 --> 00:10:50.520
|
| 529 |
+
en cero nos debería de dar uno, y
|
| 530 |
+
|
| 531 |
+
00:10:50.520 --> 00:10:54.620
|
| 532 |
+
aquí está exactamente. Y no hicimos esta función,
|
| 533 |
+
|
| 534 |
+
00:10:54.680 --> 00:10:57.980
|
| 535 |
+
sino hicimos esta multiplicación de vectores de acá.
|
| 536 |
+
|
| 537 |
+
00:10:58.465 --> 00:11:02.225
|
| 538 |
+
Ahora, vamos a ver qué nos daría evaluarlo
|
| 539 |
+
|
| 540 |
+
00:11:02.225 --> 00:11:06.225
|
| 541 |
+
en el uno. Si nosotros evaluamos en el
|
| 542 |
+
|
| 543 |
+
00:11:06.225 --> 00:11:09.425
|
| 544 |
+
uno, veamos de la fórmula de aquí, tenemos
|
| 545 |
+
|
| 546 |
+
00:11:09.425 --> 00:11:12.645
|
| 547 |
+
uno más dos por uno, que sería tres.
|
| 548 |
+
|
| 549 |
+
00:11:13.140 --> 00:11:16.020
|
| 550 |
+
Entonces, esto, p de uno, nos estaría dando
|
| 551 |
+
|
| 552 |
+
00:11:16.020 --> 00:11:19.220
|
| 553 |
+
tres, y ya tenemos que p cero es
|
| 554 |
+
|
| 555 |
+
00:11:19.220 --> 00:11:22.360
|
| 556 |
+
uno, y que p en uno es tres.
|
| 557 |
+
|
| 558 |
+
00:11:22.820 --> 00:11:27.485
|
| 559 |
+
Veamos un ejemplo más. Evaluémoslo en dos. Vamos
|
| 560 |
+
|
| 561 |
+
00:11:27.485 --> 00:11:29.084
|
| 562 |
+
a ver qué pasa en esta fórmula si
|
| 563 |
+
|
| 564 |
+
00:11:29.084 --> 00:11:31.985
|
| 565 |
+
yo lo pongo el dos aquí. Eso significaría
|
| 566 |
+
|
| 567 |
+
00:11:32.445 --> 00:11:34.785
|
| 568 |
+
que nos quedaría un dos por dos aquí,
|
| 569 |
+
|
| 570 |
+
00:11:34.925 --> 00:11:37.245
|
| 571 |
+
que sería un cuatro, y sumado a un
|
| 572 |
+
|
| 573 |
+
00:11:37.245 --> 00:11:40.125
|
| 574 |
+
uno nos daría un cinco. Entonces, p de
|
| 575 |
+
|
| 576 |
+
00:11:40.125 --> 00:11:45.620
|
| 577 |
+
dos sería cinco, y exactamente nos da este
|
| 578 |
+
|
| 579 |
+
00:11:45.620 --> 00:11:49.480
|
| 580 |
+
resultado. Entonces, como vemos, es posible poder expresar
|
| 581 |
+
|
| 582 |
+
00:11:49.940 --> 00:11:56.095
|
| 583 |
+
estos polinomios utilizando esta clase de vectores en
|
| 584 |
+
|
| 585 |
+
00:11:56.095 --> 00:12:01.315
|
| 586 |
+
forma de una multiplicación de esos vectores. Aquí
|
| 587 |
+
|
| 588 |
+
00:12:02.255 --> 00:12:06.495
|
| 589 |
+
llega esta clase. Ahora, la próxima clase vamos
|
| 590 |
+
|
| 591 |
+
00:12:06.495 --> 00:12:09.589
|
| 592 |
+
a hacer el primer miniproyecto. Este primer miniproyecto
|
| 593 |
+
|
| 594 |
+
00:12:09.890 --> 00:12:12.450
|
| 595 |
+
consistirá en hacer un modelo muy sencillo de
|
| 596 |
+
|
| 597 |
+
00:12:12.450 --> 00:12:16.450
|
| 598 |
+
análisis de sentimientos sobre algunos tweets. Espero que
|
| 599 |
+
|
| 600 |
+
00:12:16.450 --> 00:12:19.010
|
| 601 |
+
estés igual de emocionado que yo. Nos vemos
|
| 602 |
+
|
| 603 |
+
00:12:19.010 --> 00:12:19.510
|
| 604 |
+
allá.
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/09-producto_interno_554a11a7-c20a-4a1c-99e8-4408610d53ae.ipynb
ADDED
|
@@ -0,0 +1,447 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 4. Producto Interno"
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"El *producto interno* (estándar) o simplemente *producto punto* de dos $n$-vectores $\\vec{a},\\vec{b}$ se define como el escalar:\n",
|
| 15 |
+
"\n",
|
| 16 |
+
"$$\n",
|
| 17 |
+
"<\\vec{a},\\vec{b}> = \\vec{a} \\cdot \\vec{b} = a_{0}b_{0}+a_{1}b_{1}+\\cdots+a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 18 |
+
"$$\n",
|
| 19 |
+
"\n",
|
| 20 |
+
"Que es simplemente la suma del producto de sus entradas."
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"cell_type": "markdown",
|
| 25 |
+
"metadata": {},
|
| 26 |
+
"source": [
|
| 27 |
+
"Por ejemplo, si $\\vec{a}=(1,2,3)$ y $\\vec{b}=(4,5,6)$ entonces el producto punto será:\n",
|
| 28 |
+
"\n",
|
| 29 |
+
"$$\n",
|
| 30 |
+
"\\vec{a}\\cdot\\vec{b} = (1,2,3)\\cdot (4,5,6) = 1\\cdot 4+2\\cdot 5 + 3\\cdot 6 = 4+10+18=32\n",
|
| 31 |
+
"$$"
|
| 32 |
+
]
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"cell_type": "markdown",
|
| 36 |
+
"metadata": {},
|
| 37 |
+
"source": [
|
| 38 |
+
"Hasta ahora trabajamos de forma indiferente con *vectores columna* y *vectores renglón*, a partir de este momento **el estándar serán los vectores columna** entonces simpre que hablemos de un vector, dígamos $\\vec{a}$ entonces estaremos hablando del vector columna:\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"$$\n",
|
| 41 |
+
"\\vec{a} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}\n",
|
| 42 |
+
"$$\n",
|
| 43 |
+
"\n",
|
| 44 |
+
"Esto también nos permite introducir una nueva operación: **la transposición**. Retomemos el vector $\\vec{a}$, denotaremos como $\\vec{a}^{T}$ al vector transpuesto de $\\vec{a}$:\n",
|
| 45 |
+
"\n",
|
| 46 |
+
"$$\n",
|
| 47 |
+
"\\vec{a}^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]\n",
|
| 48 |
+
"$$\n",
|
| 49 |
+
"\n",
|
| 50 |
+
"La operación de transposición nos permite cambiar de vectores columna a vectores renglón sin modificar al vector que se transponga. Notemos que es posible poder transponer un vector transpuesto_\n",
|
| 51 |
+
"\n",
|
| 52 |
+
"$$\n",
|
| 53 |
+
"\\left(\\vec{a}^{T}\\right)^{T} = \\left(\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T}\\right)^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix} = \\vec{a}\n",
|
| 54 |
+
"$$"
|
| 55 |
+
]
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"cell_type": "markdown",
|
| 59 |
+
"metadata": {},
|
| 60 |
+
"source": [
|
| 61 |
+
"Así pues, consideremos el ejemplo anterior de los vectores $\\vec{a}$ y $\\vec{b}$. Definimos la operación $\\vec{a}^{T}\\vec{b}$ como:\n",
|
| 62 |
+
"\n",
|
| 63 |
+
"$$\n",
|
| 64 |
+
"\\vec{a}^{T}\\; \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}] \\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{n-1}\\end{bmatrix} = a_{0}b_{0} + a_{1}b_{1} + \\cdots + a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 65 |
+
"$$\n",
|
| 66 |
+
"\n",
|
| 67 |
+
"Lo cual coincide con la definición del producto interno. Así pues $<\\vec{a},\\vec{b}> = \\vec{a}\\cdot \\vec{b} = \\vec{a}^{T} \\;\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}$"
|
| 68 |
+
]
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"cell_type": "markdown",
|
| 72 |
+
"metadata": {},
|
| 73 |
+
"source": [
|
| 74 |
+
"## 4.1 Propiedades del producto interno"
|
| 75 |
+
]
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"cell_type": "markdown",
|
| 79 |
+
"metadata": {},
|
| 80 |
+
"source": [
|
| 81 |
+
"Sean $\\vec{a},\\vec{b}$ dos $n$-vectores y $\\alpha$ un escalar. El producto interno entre $\\vec{a}$ y $\\vec{b}$ cumple las siguientes propiedades:\n",
|
| 82 |
+
"\n",
|
| 83 |
+
"* Conmutatividad: $\\vec{a}^{T}\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i} = \\displaystyle\\sum_{i=0}^{n-1} b_{i}a_{i} = \\vec{b}^{T}\\vec{a}$\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"* Asociatividad con multiplicación escalar: $\\left(\\alpha \\vec{a}\\right)^{T}\\vec{b} = \\alpha\\left(\\vec{a}^{T}\\vec{b}\\right)$\n",
|
| 86 |
+
"\n",
|
| 87 |
+
"* Distribución en la adición de vectores: $\\left(\\vec{a} + \\vec{b}\\right)^{T}\\vec{c} = \\vec{a}^{T}\\vec{c} + \\vec{b}^{T}\\vec{c}$"
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"cell_type": "markdown",
|
| 92 |
+
"metadata": {},
|
| 93 |
+
"source": [
|
| 94 |
+
"## 4.2 Consideraciones adicionales"
|
| 95 |
+
]
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"cell_type": "markdown",
|
| 99 |
+
"metadata": {},
|
| 100 |
+
"source": [
|
| 101 |
+
"**Proyección**. Si $\\vec{a}$ es un $n$-vector entonces $\\hat{e}_{i}^{T}\\vec{a} = a_{i}$"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"cell_type": "markdown",
|
| 106 |
+
"metadata": {},
|
| 107 |
+
"source": [
|
| 108 |
+
"**Suma de elementos de un vector.** $\\mathbf{1}^{T}a = a_{0}+a_{1}+\\cdots+a_{n-1}$ "
|
| 109 |
+
]
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"cell_type": "markdown",
|
| 113 |
+
"metadata": {},
|
| 114 |
+
"source": [
|
| 115 |
+
"**Promedio de entradas de un vector.** $(\\mathbf{1}/n)^{T}\\vec{a} = (a_{0}+a_{1}+\\cdots+a_{n-1})/n$"
|
| 116 |
+
]
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"cell_type": "markdown",
|
| 120 |
+
"metadata": {},
|
| 121 |
+
"source": [
|
| 122 |
+
"**Suma de cuadrados de un vector.** $\\vec{a}^{T} \\;\\vec{a} = a_{0}^{2}+a_{1}^{2}+\\cdots+a_{n-1}^{2}$"
|
| 123 |
+
]
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"cell_type": "markdown",
|
| 127 |
+
"metadata": {},
|
| 128 |
+
"source": [
|
| 129 |
+
"**Producto interno de bloques de vectores**. Sean $\\vec{a},\\vec{b}$ $k$-vectores formados por concatenar los $n$-vectores $a_{i},b_{i}$:\n",
|
| 130 |
+
"\n",
|
| 131 |
+
"$$\n",
|
| 132 |
+
"\\vec{a}=\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{k-1}\\end{bmatrix},\\qquad \\vec{b}=\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix}\n",
|
| 133 |
+
"$$\n",
|
| 134 |
+
"\n",
|
| 135 |
+
"Entonces el producto punto entre estos vectores va como:\n",
|
| 136 |
+
"\n",
|
| 137 |
+
"$$\n",
|
| 138 |
+
"\\vec{a}^{T} \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{k-1}]\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix} = a_{0}^{T}b_{0}+a_{1}^{T}b_{1} + \\cdots + a_{k-1}^{T}b_{k-1}\n",
|
| 139 |
+
"$$"
|
| 140 |
+
]
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"cell_type": "markdown",
|
| 144 |
+
"metadata": {},
|
| 145 |
+
"source": [
|
| 146 |
+
"## 4.3 Producto interno en Python. "
|
| 147 |
+
]
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"cell_type": "code",
|
| 151 |
+
"execution_count": 1,
|
| 152 |
+
"metadata": {},
|
| 153 |
+
"outputs": [],
|
| 154 |
+
"source": [
|
| 155 |
+
"import numpy as np"
|
| 156 |
+
]
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"cell_type": "markdown",
|
| 160 |
+
"metadata": {},
|
| 161 |
+
"source": [
|
| 162 |
+
"Sean $\\vec{a},\\vec{b}$ vectores en $\\mathbb{R}^{4}$. Diremos que los vectores son **ortogonales** o **perpendiculares** si $\\vec{a}\\cdot \\vec{b}= 0$\n",
|
| 163 |
+
"\n",
|
| 164 |
+
"Consideremos entonces $\\vec{a}=\\hat{e}_{0}$ y $\\vec{b} = \\hat{e}_{2}$. Vamos a realizar el producto punto en Python"
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"cell_type": "code",
|
| 169 |
+
"execution_count": 3,
|
| 170 |
+
"metadata": {},
|
| 171 |
+
"outputs": [],
|
| 172 |
+
"source": [
|
| 173 |
+
"a = np.array([1,0,0,0]) #declaramos el vector e_1\n",
|
| 174 |
+
"\n",
|
| 175 |
+
"b = np.array([0,0,1,0]) #declaramos el vector e_2"
|
| 176 |
+
]
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"cell_type": "markdown",
|
| 180 |
+
"metadata": {},
|
| 181 |
+
"source": [
|
| 182 |
+
"Para realizar el producto punto llamaremos a la función *numpy.dot*"
|
| 183 |
+
]
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"cell_type": "code",
|
| 187 |
+
"execution_count": 16,
|
| 188 |
+
"metadata": {},
|
| 189 |
+
"outputs": [
|
| 190 |
+
{
|
| 191 |
+
"name": "stdout",
|
| 192 |
+
"output_type": "stream",
|
| 193 |
+
"text": [
|
| 194 |
+
"<a,b> = 0\n"
|
| 195 |
+
]
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"source": [
|
| 199 |
+
"print('<a,b> =',np.dot(a,b))"
|
| 200 |
+
]
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"cell_type": "markdown",
|
| 204 |
+
"metadata": {},
|
| 205 |
+
"source": [
|
| 206 |
+
"De igual manera también podemos usar el operador $@$"
|
| 207 |
+
]
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"cell_type": "code",
|
| 211 |
+
"execution_count": 21,
|
| 212 |
+
"metadata": {},
|
| 213 |
+
"outputs": [
|
| 214 |
+
{
|
| 215 |
+
"name": "stdout",
|
| 216 |
+
"output_type": "stream",
|
| 217 |
+
"text": [
|
| 218 |
+
"<a,b> = 0\n"
|
| 219 |
+
]
|
| 220 |
+
}
|
| 221 |
+
],
|
| 222 |
+
"source": [
|
| 223 |
+
"print('<a,b> =',a.T@b)"
|
| 224 |
+
]
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"cell_type": "markdown",
|
| 228 |
+
"metadata": {},
|
| 229 |
+
"source": [
|
| 230 |
+
" "
|
| 231 |
+
]
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"cell_type": "markdown",
|
| 235 |
+
"metadata": {},
|
| 236 |
+
"source": [
|
| 237 |
+
"**Evaluación de polinomios**. Un polinomio de grado $n-1$ se puede expresar como $p(x) = c_{0} + c_{1}x + c_{2}x^{2} + \\cdots + c_{n-1}x^{n-1}$. Si consideramos los $n$-vectores $\\vec{c},\\vec{x}$ tales que:\n",
|
| 238 |
+
"\n",
|
| 239 |
+
"$$\n",
|
| 240 |
+
"\\vec{c} = \\begin{bmatrix}c_{0}\\\\ c_{1}\\\\ \\vdots \\\\ c_{n-1}\\end{bmatrix},\\qquad \\vec{x}(x) = \\begin{bmatrix}x^{0}\\\\ x^{1}\\\\ \\vdots \\\\ x^{n-1}\\end{bmatrix}\n",
|
| 241 |
+
"$$\n",
|
| 242 |
+
"\n",
|
| 243 |
+
"Así pues, usando estos vectores es posible expresar $p(x) = \\vec{c}^{T}\\vec{x}(x)$. Un ejemplo más concreto sería $p(x)=1+2x$, usando los vectores:\n",
|
| 244 |
+
"\n",
|
| 245 |
+
"$$\n",
|
| 246 |
+
"\\vec{c} = \\begin{bmatrix}1\\\\ 2 \\end{bmatrix}, \\qquad \\vec{x}(x) = \\begin{bmatrix}1\\\\ x \\end{bmatrix}\n",
|
| 247 |
+
"$$\n",
|
| 248 |
+
"\n",
|
| 249 |
+
"Entonces podemos escribir:\n",
|
| 250 |
+
"$$\n",
|
| 251 |
+
"p(x) = \\vec{c}^{T}\\vec{x}(x) = [1 \\; 2] \\begin{bmatrix}1\\\\ x \\end{bmatrix} = 1\\cdot 1 + 2\\cdot x = 1 + 2x\n",
|
| 252 |
+
"$$"
|
| 253 |
+
]
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"cell_type": "markdown",
|
| 257 |
+
"metadata": {},
|
| 258 |
+
"source": [
|
| 259 |
+
"Así pues en Python podemos escribir el polinomio como:"
|
| 260 |
+
]
|
| 261 |
+
},
|
| 262 |
+
{
|
| 263 |
+
"cell_type": "code",
|
| 264 |
+
"execution_count": 2,
|
| 265 |
+
"metadata": {},
|
| 266 |
+
"outputs": [],
|
| 267 |
+
"source": [
|
| 268 |
+
"def p(x):\n",
|
| 269 |
+
" return np.array([1,2])@np.array([1,x])"
|
| 270 |
+
]
|
| 271 |
+
},
|
| 272 |
+
{
|
| 273 |
+
"cell_type": "code",
|
| 274 |
+
"execution_count": 5,
|
| 275 |
+
"metadata": {},
|
| 276 |
+
"outputs": [
|
| 277 |
+
{
|
| 278 |
+
"name": "stdout",
|
| 279 |
+
"output_type": "stream",
|
| 280 |
+
"text": [
|
| 281 |
+
"p(0) = 1\n",
|
| 282 |
+
"p(1) = 3\n",
|
| 283 |
+
"p(2) = 5\n"
|
| 284 |
+
]
|
| 285 |
+
}
|
| 286 |
+
],
|
| 287 |
+
"source": [
|
| 288 |
+
"print('p(0) = ',p(0))\n",
|
| 289 |
+
"print('p(1) = ',p(1))\n",
|
| 290 |
+
"print('p(2) = ',p(2))"
|
| 291 |
+
]
|
| 292 |
+
},
|
| 293 |
+
{
|
| 294 |
+
"cell_type": "markdown",
|
| 295 |
+
"metadata": {},
|
| 296 |
+
"source": [
|
| 297 |
+
"## 4.4 Ejercicios."
|
| 298 |
+
]
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"cell_type": "markdown",
|
| 302 |
+
"metadata": {},
|
| 303 |
+
"source": [
|
| 304 |
+
"**Problema 1: Análisis de sentimientos de tweets.** Vamos a crear un máquina que pueda decirnos qué tan positivo, neutral o negativo son una serie de respuestas de twitter. \n",
|
| 305 |
+
"Las respuestas son:\n",
|
| 306 |
+
"> Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\n",
|
| 307 |
+
"\n",
|
| 308 |
+
"> Vaya señora que bueno que se asesora por alguien inteligente no por el ignorante del Gatt.\n",
|
| 309 |
+
"\n",
|
| 310 |
+
"> Se me ocurre y sin ver todos los videos de Plazti que me informéis por dónde empiezo. Entiendo que os tendría que decir quién soy y que quiero, vamos conocerme para asesorarme bien.\n",
|
| 311 |
+
"Un saludo\n",
|
| 312 |
+
"\n",
|
| 313 |
+
"> Soy docente universitario, estoy intentando preparar mis clases en modo platzi bien didáctico, (le llamo modo noticiero), descargue una plataforma gratuita de grabación y transmisión de vídeo, se llama Obs estudio!bueno la sigo remando con sus funciones pero sé que saldrá algo!"
|
| 314 |
+
]
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"cell_type": "code",
|
| 318 |
+
"execution_count": 7,
|
| 319 |
+
"metadata": {},
|
| 320 |
+
"outputs": [],
|
| 321 |
+
"source": [
|
| 322 |
+
"a = \"Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\"\n",
|
| 323 |
+
"a = a.replace(\"!\",\"\").replace(\",\",\"\").split(\" \")"
|
| 324 |
+
]
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"cell_type": "code",
|
| 328 |
+
"execution_count": 8,
|
| 329 |
+
"metadata": {},
|
| 330 |
+
"outputs": [
|
| 331 |
+
{
|
| 332 |
+
"data": {
|
| 333 |
+
"text/plain": [
|
| 334 |
+
"['Gran',\n",
|
| 335 |
+
" 'mexicano',\n",
|
| 336 |
+
" 'y',\n",
|
| 337 |
+
" 'excelente',\n",
|
| 338 |
+
" 'en',\n",
|
| 339 |
+
" 'su',\n",
|
| 340 |
+
" 'área',\n",
|
| 341 |
+
" 'su',\n",
|
| 342 |
+
" 'muerte',\n",
|
| 343 |
+
" 'es',\n",
|
| 344 |
+
" 'una',\n",
|
| 345 |
+
" 'enorme',\n",
|
| 346 |
+
" 'perdida',\n",
|
| 347 |
+
" 'y',\n",
|
| 348 |
+
" 'debería',\n",
|
| 349 |
+
" 'ser',\n",
|
| 350 |
+
" 'luto',\n",
|
| 351 |
+
" 'nacional']"
|
| 352 |
+
]
|
| 353 |
+
},
|
| 354 |
+
"execution_count": 8,
|
| 355 |
+
"metadata": {},
|
| 356 |
+
"output_type": "execute_result"
|
| 357 |
+
}
|
| 358 |
+
],
|
| 359 |
+
"source": [
|
| 360 |
+
"a"
|
| 361 |
+
]
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"cell_type": "code",
|
| 365 |
+
"execution_count": 9,
|
| 366 |
+
"metadata": {},
|
| 367 |
+
"outputs": [
|
| 368 |
+
{
|
| 369 |
+
"name": "stdout",
|
| 370 |
+
"output_type": "stream",
|
| 371 |
+
"text": [
|
| 372 |
+
"Sí\n"
|
| 373 |
+
]
|
| 374 |
+
}
|
| 375 |
+
],
|
| 376 |
+
"source": [
|
| 377 |
+
"if 'muerte' in a:\n",
|
| 378 |
+
" print(\"Sí\")"
|
| 379 |
+
]
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"cell_type": "markdown",
|
| 383 |
+
"metadata": {},
|
| 384 |
+
"source": [
|
| 385 |
+
"Ahora bien, no podemos sacar toda la información de los textos sino vamos a buscar cadenas (strings) específicas. Así pues vamos a construir una función de Python que cuente la cantidad de veces que aparece cierta cadena. Como ejemplo, supongamos que las palabras que vamos a contar son *muerte*, *pérdida*, *luto*, *excelente*,*gran* y *positivo*, y además esto lo queremos expresar como vector en orden respectivo, así pues el primer comentario lo podemos expresar como el siguiente vector:\n",
|
| 386 |
+
"$$\n",
|
| 387 |
+
"\\vec{w} = \\begin{bmatrix}1\\\\ 1 \\\\ 1\\\\ 1\\\\ 1 \\\\0 \\end{bmatrix}\n",
|
| 388 |
+
"$$\n",
|
| 389 |
+
"Ahora, vamos a crear otra función en la que tendremos el vector con entradas de cantidad de palabras positivas, negativas y neutras. Siguiendo con el ejemplo vamos a sumar un uno a la primer entrada si aparece alguna de las siguientes palabras *excelente*,*gran* y *positivo*, un uno en la segunda por cada vez que aparezca la palabra *pérdida* y un uno a la última entrada si aparecen las palabras *muerte* y *luto*. Así pues, el primer twett lo podemos representar como:\n",
|
| 390 |
+
"\n",
|
| 391 |
+
"$$\n",
|
| 392 |
+
"\\vec{s} = \\begin{bmatrix} 2 \\\\ 1 \\\\2 \\end{bmatrix}\n",
|
| 393 |
+
"$$\n",
|
| 394 |
+
"\n",
|
| 395 |
+
"Ahora, para ver la *calidad* del resultado que tendremos para un twett conviene calcular el promedio de las entradas de un vector de palabras\n",
|
| 396 |
+
"$$avg(\\vec{w}) = (\\mathbf{1}/n)^{T}\\vec{w}$$\n",
|
| 397 |
+
"Y después calcularás el promedio del sentimiento de cada tweet $avg(\\vec{s})$ y de igual manera el *score sentimental* que se define como \n",
|
| 398 |
+
"$$score(\\vec{s}) = [1\\; 0\\; -1] \\begin{bmatrix} s_{0} \\\\ s_{1} \\\\s_{2} \\end{bmatrix}$$"
|
| 399 |
+
]
|
| 400 |
+
},
|
| 401 |
+
{
|
| 402 |
+
"cell_type": "markdown",
|
| 403 |
+
"metadata": {},
|
| 404 |
+
"source": [
|
| 405 |
+
"Leyendo los tuits decide el conjunto mínimo de palabras que vas a contar en todos los tuits, solamente deberás hacer una función para contar palabras para todos los tuits, no hagas un función por enunciado. Según tu esquema reponde lo siguiente:\n",
|
| 406 |
+
"\n",
|
| 407 |
+
"* ¿Qué tuit es más positivo?\n",
|
| 408 |
+
"\n",
|
| 409 |
+
"* ¿Qué tuit es más negativo?\n",
|
| 410 |
+
"\n",
|
| 411 |
+
"* ¿Cuál es tu calidad promedio?\n",
|
| 412 |
+
"\n",
|
| 413 |
+
"* ¿Cómo interpretas $avg(\\vec{s})$ y $score(\\vec{s})$?\n",
|
| 414 |
+
"\n",
|
| 415 |
+
"* ¿Cómo relacionas la calidad con $score(\\vec{s})$ y $avg(\\vec{s})$?"
|
| 416 |
+
]
|
| 417 |
+
},
|
| 418 |
+
{
|
| 419 |
+
"cell_type": "code",
|
| 420 |
+
"execution_count": null,
|
| 421 |
+
"metadata": {},
|
| 422 |
+
"outputs": [],
|
| 423 |
+
"source": []
|
| 424 |
+
}
|
| 425 |
+
],
|
| 426 |
+
"metadata": {
|
| 427 |
+
"kernelspec": {
|
| 428 |
+
"display_name": "Python 3",
|
| 429 |
+
"language": "python",
|
| 430 |
+
"name": "python3"
|
| 431 |
+
},
|
| 432 |
+
"language_info": {
|
| 433 |
+
"codemirror_mode": {
|
| 434 |
+
"name": "ipython",
|
| 435 |
+
"version": 3
|
| 436 |
+
},
|
| 437 |
+
"file_extension": ".py",
|
| 438 |
+
"mimetype": "text/x-python",
|
| 439 |
+
"name": "python",
|
| 440 |
+
"nbconvert_exporter": "python",
|
| 441 |
+
"pygments_lexer": "ipython3",
|
| 442 |
+
"version": "3.7.3"
|
| 443 |
+
}
|
| 444 |
+
},
|
| 445 |
+
"nbformat": 4,
|
| 446 |
+
"nbformat_minor": 4
|
| 447 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Análisis de Sentimientos de Tweets con Vectores de Palabras.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0201a390f7fb810abbee5722892a354e88e69b41f15119ce0c983477abbb8c68
|
| 3 |
+
size 142527775
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Análisis de Sentimientos de Tweets con Vectores de Palabras.vtt
ADDED
|
@@ -0,0 +1,787 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.439 --> 00:00:07.520
|
| 4 |
+
Hola, te doy la bienvenida de nuevo. Estoy
|
| 5 |
+
|
| 6 |
+
00:00:07.520 --> 00:00:10.719
|
| 7 |
+
muy emocionado de que estés aquí. El camino
|
| 8 |
+
|
| 9 |
+
00:00:10.719 --> 00:00:13.840
|
| 10 |
+
fue largo y es un poco más largo
|
| 11 |
+
|
| 12 |
+
00:00:13.840 --> 00:00:16.785
|
| 13 |
+
todavía, pero en esta clase vas a ver
|
| 14 |
+
|
| 15 |
+
00:00:16.785 --> 00:00:18.785
|
| 16 |
+
lo que tienes ahora ya y de lo
|
| 17 |
+
|
| 18 |
+
00:00:18.785 --> 00:00:21.605
|
| 19 |
+
que eres capaz de hacer con las habilidades
|
| 20 |
+
|
| 21 |
+
00:00:21.665 --> 00:00:25.345
|
| 22 |
+
que has adquirido hasta ahora. Lo que vamos
|
| 23 |
+
|
| 24 |
+
00:00:25.345 --> 00:00:27.205
|
| 25 |
+
a hacer va a ser una pequeña máquina
|
| 26 |
+
|
| 27 |
+
00:00:27.585 --> 00:00:32.440
|
| 28 |
+
de análisis de sentimiento de unos tweets. No
|
| 29 |
+
|
| 30 |
+
00:00:32.440 --> 00:00:35.320
|
| 31 |
+
vamos a hacer procesamiento de lenguaje natural, vamos
|
| 32 |
+
|
| 33 |
+
00:00:35.320 --> 00:00:37.240
|
| 34 |
+
a hacer algo más rústico, algo un poco
|
| 35 |
+
|
| 36 |
+
00:00:37.240 --> 00:00:39.980
|
| 37 |
+
más sencillo, en donde vamos a extraer características
|
| 38 |
+
|
| 39 |
+
00:00:40.280 --> 00:00:42.680
|
| 40 |
+
de los enunciados y a esas las vamos
|
| 41 |
+
|
| 42 |
+
00:00:42.680 --> 00:00:45.525
|
| 43 |
+
a calificar como positivas o negativas, y al
|
| 44 |
+
|
| 45 |
+
00:00:45.525 --> 00:00:47.985
|
| 46 |
+
final nos va a dar eso, un score
|
| 47 |
+
|
| 48 |
+
00:00:48.125 --> 00:00:50.625
|
| 49 |
+
de qué tan positivo o negativo es el
|
| 50 |
+
|
| 51 |
+
00:00:50.645 --> 00:00:52.765
|
| 52 |
+
sentimiento, al mismo tiempo de que vamos a
|
| 53 |
+
|
| 54 |
+
00:00:52.765 --> 00:00:57.725
|
| 55 |
+
analizar la calidad de de nuestro análisis. Sin
|
| 56 |
+
|
| 57 |
+
00:00:57.725 --> 00:01:03.680
|
| 58 |
+
más, vamos al notebook. El problema que vamos
|
| 59 |
+
|
| 60 |
+
00:01:03.680 --> 00:01:05.920
|
| 61 |
+
a tratar ahora es el análisis de sentimientos
|
| 62 |
+
|
| 63 |
+
00:01:05.920 --> 00:01:07.280
|
| 64 |
+
de tweets. Lo que vamos a hacer va
|
| 65 |
+
|
| 66 |
+
00:01:07.280 --> 00:01:08.960
|
| 67 |
+
a ser crear una pequeña máquina que puede
|
| 68 |
+
|
| 69 |
+
00:01:08.960 --> 00:01:11.520
|
| 70 |
+
decirnos qué tan positivo, neutral o negativo son
|
| 71 |
+
|
| 72 |
+
00:01:11.520 --> 00:01:14.125
|
| 73 |
+
una serie de respuestas de Twitter. Las respuestas
|
| 74 |
+
|
| 75 |
+
00:01:14.125 --> 00:01:16.145
|
| 76 |
+
de Twitter que vamos a analizar son estas.
|
| 77 |
+
|
| 78 |
+
00:01:16.365 --> 00:01:18.605
|
| 79 |
+
Gran mexicano y excelente en su área, su
|
| 80 |
+
|
| 81 |
+
00:01:18.605 --> 00:01:20.685
|
| 82 |
+
muerte es una enorme pérdida y breve salud
|
| 83 |
+
|
| 84 |
+
00:01:20.685 --> 00:01:24.045
|
| 85 |
+
nacional. Vaya señora, qué bueno que se asesora
|
| 86 |
+
|
| 87 |
+
00:01:24.045 --> 00:01:26.605
|
| 88 |
+
por alguien inteligente, no por el ignorante del
|
| 89 |
+
|
| 90 |
+
00:01:26.605 --> 00:01:29.490
|
| 91 |
+
gato. Se me ocurre, y sin ver todos
|
| 92 |
+
|
| 93 |
+
00:01:29.490 --> 00:01:31.810
|
| 94 |
+
los videos de Platzi, que me informéis por
|
| 95 |
+
|
| 96 |
+
00:01:31.810 --> 00:01:34.610
|
| 97 |
+
dónde empiezo. Entiendo que os tendría que decir
|
| 98 |
+
|
| 99 |
+
00:01:34.610 --> 00:01:37.510
|
| 100 |
+
quién soy y qué quiero. Vamos a conocerme
|
| 101 |
+
|
| 102 |
+
00:01:37.970 --> 00:01:42.095
|
| 103 |
+
para asesorarme bien. Un saludo. Soy docente universitario,
|
| 104 |
+
|
| 105 |
+
00:01:42.635 --> 00:01:45.115
|
| 106 |
+
estoy intentando preparar mis clases en modo platzi
|
| 107 |
+
|
| 108 |
+
00:01:45.115 --> 00:01:48.555
|
| 109 |
+
bien didáctico, le llamo modo noticiero. Descargué una
|
| 110 |
+
|
| 111 |
+
00:01:48.555 --> 00:01:51.595
|
| 112 |
+
plataforma gratuita de grabación y transmisiones de video,
|
| 113 |
+
|
| 114 |
+
00:01:51.595 --> 00:01:55.750
|
| 115 |
+
se llama OBS Studio. Bueno, la sigo remando
|
| 116 |
+
|
| 117 |
+
00:01:55.970 --> 00:01:58.630
|
| 118 |
+
con sus funciones, pero sé que saldrá algo.
|
| 119 |
+
|
| 120 |
+
00:02:00.850 --> 00:02:03.110
|
| 121 |
+
De estos hay cosas que me gustaría señalar,
|
| 122 |
+
|
| 123 |
+
00:02:03.570 --> 00:02:05.970
|
| 124 |
+
por ejemplo, no se abre ni se cierran
|
| 125 |
+
|
| 126 |
+
00:02:05.970 --> 00:02:08.925
|
| 127 |
+
símbolos de exclamación, tampoco hay un punto que
|
| 128 |
+
|
| 129 |
+
00:02:08.925 --> 00:02:11.945
|
| 130 |
+
nos determine en dónde se acaba la oración.
|
| 131 |
+
|
| 132 |
+
00:02:12.285 --> 00:02:15.085
|
| 133 |
+
En este, por ejemplo, no hay ningún símbolo
|
| 134 |
+
|
| 135 |
+
00:02:15.085 --> 00:02:19.085
|
| 136 |
+
de puntuación. En este de aquí se están
|
| 137 |
+
|
| 138 |
+
00:02:19.085 --> 00:02:22.820
|
| 139 |
+
utilizando formas verbales o conjugaciones que no utilizamos
|
| 140 |
+
|
| 141 |
+
00:02:22.820 --> 00:02:30.420
|
| 142 |
+
regularmente en Latinoamérica, como informéis y os. De
|
| 143 |
+
|
| 144 |
+
00:02:30.420 --> 00:02:33.560
|
| 145 |
+
igual manera, no hay un punto al final,
|
| 146 |
+
|
| 147 |
+
00:02:34.175 --> 00:02:36.195
|
| 148 |
+
además de que hay una serie de puntos,
|
| 149 |
+
|
| 150 |
+
00:02:37.375 --> 00:02:40.115
|
| 151 |
+
y en la esta última, por ejemplo, aquí,
|
| 152 |
+
|
| 153 |
+
00:02:40.255 --> 00:02:43.455
|
| 154 |
+
no hay un espacio, además de que no
|
| 155 |
+
|
| 156 |
+
00:02:43.455 --> 00:02:45.535
|
| 157 |
+
está bien la apertura de este símbolo de
|
| 158 |
+
|
| 159 |
+
00:02:45.535 --> 00:02:49.250
|
| 160 |
+
exclamación. También tenemos la introducción de paréntesis y
|
| 161 |
+
|
| 162 |
+
00:02:49.250 --> 00:02:54.690
|
| 163 |
+
comas. Ahora, lo que vamos a hacer no
|
| 164 |
+
|
| 165 |
+
00:02:54.690 --> 00:02:57.030
|
| 166 |
+
es sacar toda la información de los textos,
|
| 167 |
+
|
| 168 |
+
00:02:57.490 --> 00:03:01.715
|
| 169 |
+
sino vamos a buscar cadenas específicas. Vamos a
|
| 170 |
+
|
| 171 |
+
00:03:01.715 --> 00:03:04.755
|
| 172 |
+
pensar cada uno de esos enunciados como una
|
| 173 |
+
|
| 174 |
+
00:03:04.755 --> 00:03:07.575
|
| 175 |
+
cadena y vamos a sacar características de ellas.
|
| 176 |
+
|
| 177 |
+
00:03:08.035 --> 00:03:11.815
|
| 178 |
+
Por ejemplo, supongamos que del primer enunciado nosotros
|
| 179 |
+
|
| 180 |
+
00:03:11.875 --> 00:03:16.090
|
| 181 |
+
queremos extraer información, pero solamente las palabras que
|
| 182 |
+
|
| 183 |
+
00:03:16.090 --> 00:03:20.170
|
| 184 |
+
nos interesan son muerte, pérdida, luto, excelente gran,
|
| 185 |
+
|
| 186 |
+
00:03:20.170 --> 00:03:24.730
|
| 187 |
+
positivo, y además esto lo queremos expresar como
|
| 188 |
+
|
| 189 |
+
00:03:24.730 --> 00:03:30.485
|
| 190 |
+
un vector en orden respectivo. ¿Cómo vamos a
|
| 191 |
+
|
| 192 |
+
00:03:30.485 --> 00:03:34.325
|
| 193 |
+
hacer esto? Bueno, primero, vamos a tomar cada
|
| 194 |
+
|
| 195 |
+
00:03:34.325 --> 00:03:39.765
|
| 196 |
+
uno de estos elementos como una cadena. Este,
|
| 197 |
+
|
| 198 |
+
00:03:39.765 --> 00:03:49.049
|
| 199 |
+
por ejemplo. Ahora, podemos eliminar algunos elementos, como
|
| 200 |
+
|
| 201 |
+
00:03:49.430 --> 00:03:55.269
|
| 202 |
+
los símbolos de exclamación y las comas, usando
|
| 203 |
+
|
| 204 |
+
00:03:55.269 --> 00:03:59.785
|
| 205 |
+
la función replace. Lo que queremos eliminar es
|
| 206 |
+
|
| 207 |
+
00:03:59.785 --> 00:04:02.345
|
| 208 |
+
este y lo vamos a reemplazar con un
|
| 209 |
+
|
| 210 |
+
00:04:02.345 --> 00:04:06.105
|
| 211 |
+
vacío. De igual manera, queremos reemplazar las comas
|
| 212 |
+
|
| 213 |
+
00:04:06.105 --> 00:04:10.285
|
| 214 |
+
que hayan quedado y las vamos a reemplazar
|
| 215 |
+
|
| 216 |
+
00:04:10.425 --> 00:04:14.380
|
| 217 |
+
con un vacío. Por último, vamos a partir
|
| 218 |
+
|
| 219 |
+
00:04:14.380 --> 00:04:16.899
|
| 220 |
+
este enunciado usando la función split y nos
|
| 221 |
+
|
| 222 |
+
00:04:16.899 --> 00:04:18.660
|
| 223 |
+
va a crear un vector de todas las
|
| 224 |
+
|
| 225 |
+
00:04:18.660 --> 00:04:21.700
|
| 226 |
+
palabras, y lo vamos a partir por los
|
| 227 |
+
|
| 228 |
+
00:04:21.700 --> 00:04:28.485
|
| 229 |
+
espacios. Ejecutamos la celda y veamos el resultado
|
| 230 |
+
|
| 231 |
+
00:04:28.485 --> 00:04:31.625
|
| 232 |
+
que obtenemos. Como vemos, haya es un vector
|
| 233 |
+
|
| 234 |
+
00:04:32.245 --> 00:04:36.885
|
| 235 |
+
de todas las palabras que están en este
|
| 236 |
+
|
| 237 |
+
00:04:36.885 --> 00:04:39.925
|
| 238 |
+
enunciado, y además ya no hay comas ni
|
| 239 |
+
|
| 240 |
+
00:04:39.925 --> 00:04:43.520
|
| 241 |
+
hay signos de exclamación. En el caso de
|
| 242 |
+
|
| 243 |
+
00:04:43.740 --> 00:04:48.479
|
| 244 |
+
este, tendrías que introducir algo para poder lidiar
|
| 245 |
+
|
| 246 |
+
00:04:48.780 --> 00:04:53.900
|
| 247 |
+
justamente con este espacio, por ejemplo. Ahora, lo
|
| 248 |
+
|
| 249 |
+
00:04:53.900 --> 00:04:56.719
|
| 250 |
+
que vamos a hacer es buscar esas palabras
|
| 251 |
+
|
| 252 |
+
00:04:58.545 --> 00:05:01.825
|
| 253 |
+
aquí, y si esas palabras están aquí, en
|
| 254 |
+
|
| 255 |
+
00:05:01.825 --> 00:05:05.825
|
| 256 |
+
este vector w los vamos a denotar como
|
| 257 |
+
|
| 258 |
+
00:05:05.825 --> 00:05:08.465
|
| 259 |
+
el número de veces que estas aparezca. Es
|
| 260 |
+
|
| 261 |
+
00:05:08.465 --> 00:05:12.965
|
| 262 |
+
decir, si muerte apareciera una vez en este,
|
| 263 |
+
|
| 264 |
+
00:05:13.710 --> 00:05:16.690
|
| 265 |
+
vamos a poner un uno. Podríamos hacer eso,
|
| 266 |
+
|
| 267 |
+
00:05:18.030 --> 00:05:27.705
|
| 268 |
+
entonces podríamos hacer if muerte. In a, entonces,
|
| 269 |
+
|
| 270 |
+
00:05:27.705 --> 00:05:33.225
|
| 271 |
+
vamos a imprimir aquí un sí. Sí, sí
|
| 272 |
+
|
| 273 |
+
00:05:33.225 --> 00:05:37.465
|
| 274 |
+
está. Entonces, aquí iría un uno. Ahora, aquí
|
| 275 |
+
|
| 276 |
+
00:05:37.465 --> 00:05:39.705
|
| 277 |
+
no nos tiene que poner únicamente un uno,
|
| 278 |
+
|
| 279 |
+
00:05:39.705 --> 00:05:42.660
|
| 280 |
+
si aparece una vez, debería aparecer un uno.
|
| 281 |
+
|
| 282 |
+
00:05:42.660 --> 00:05:45.440
|
| 283 |
+
Si aparece dos veces, debería aparecer un dos.
|
| 284 |
+
|
| 285 |
+
00:05:45.500 --> 00:05:47.660
|
| 286 |
+
Un tres, tres veces, y así de manera
|
| 287 |
+
|
| 288 |
+
00:05:47.660 --> 00:05:51.580
|
| 289 |
+
consecutiva. Si muerde esta, entonces, aquí va un
|
| 290 |
+
|
| 291 |
+
00:05:51.580 --> 00:05:53.835
|
| 292 |
+
se suma un uno a esta primera entrada.
|
| 293 |
+
|
| 294 |
+
00:05:54.074 --> 00:05:56.155
|
| 295 |
+
Si perdí de esta, se suma un uno
|
| 296 |
+
|
| 297 |
+
00:05:56.155 --> 00:05:58.315
|
| 298 |
+
a esta entrada a la segunda, bruto a
|
| 299 |
+
|
| 300 |
+
00:05:58.315 --> 00:06:00.715
|
| 301 |
+
la tercera, excelente a la cuarta, gran a
|
| 302 |
+
|
| 303 |
+
00:06:00.715 --> 00:06:05.275
|
| 304 |
+
la quinta y positivo a la sexta. Vamos
|
| 305 |
+
|
| 306 |
+
00:06:05.275 --> 00:06:07.115
|
| 307 |
+
a ver un dibujo para poder entender esto
|
| 308 |
+
|
| 309 |
+
00:06:07.115 --> 00:06:10.260
|
| 310 |
+
de mejor manera. Vamos a hacer un ejemplo
|
| 311 |
+
|
| 312 |
+
00:06:10.260 --> 00:06:13.320
|
| 313 |
+
mucho más pequeño. Vamos a suponer que nosotros
|
| 314 |
+
|
| 315 |
+
00:06:14.100 --> 00:06:17.940
|
| 316 |
+
estamos extrayendo la letra y, y además, las
|
| 317 |
+
|
| 318 |
+
00:06:17.940 --> 00:06:22.625
|
| 319 |
+
palabras mexicano y excelente. Como vemos, la letra
|
| 320 |
+
|
| 321 |
+
00:06:22.625 --> 00:06:26.245
|
| 322 |
+
y está una vez aquí y también está
|
| 323 |
+
|
| 324 |
+
00:06:26.305 --> 00:06:29.505
|
| 325 |
+
una vez aquí, por eso la contribución de
|
| 326 |
+
|
| 327 |
+
00:06:29.505 --> 00:06:32.465
|
| 328 |
+
esta y de esta nos da un dos
|
| 329 |
+
|
| 330 |
+
00:06:32.465 --> 00:06:35.190
|
| 331 |
+
a la primera entrada, porque en la primera
|
| 332 |
+
|
| 333 |
+
00:06:35.190 --> 00:06:37.830
|
| 334 |
+
entrada estamos denotando la cantidad de veces que
|
| 335 |
+
|
| 336 |
+
00:06:37.830 --> 00:06:40.790
|
| 337 |
+
aparece la letra y. En la segunda entrada
|
| 338 |
+
|
| 339 |
+
00:06:40.790 --> 00:06:42.710
|
| 340 |
+
vamos a denotar la cantidad de veces que
|
| 341 |
+
|
| 342 |
+
00:06:42.710 --> 00:06:45.510
|
| 343 |
+
aparece la palabra mexicano, y en todo este
|
| 344 |
+
|
| 345 |
+
00:06:45.510 --> 00:06:49.350
|
| 346 |
+
enunciado solamente aparece una vez, entonces va un
|
| 347 |
+
|
| 348 |
+
00:06:49.350 --> 00:06:53.165
|
| 349 |
+
uno. En el caso de la palabra excelente,
|
| 350 |
+
|
| 351 |
+
00:06:53.165 --> 00:06:55.905
|
| 352 |
+
como también la queremos contar aquí, queremos denotarla
|
| 353 |
+
|
| 354 |
+
00:06:55.965 --> 00:06:59.485
|
| 355 |
+
en este vector, solamente aparece una vez. Por
|
| 356 |
+
|
| 357 |
+
00:06:59.485 --> 00:07:03.120
|
| 358 |
+
ello, solamente se le cuenta una vez. Ahora,
|
| 359 |
+
|
| 360 |
+
00:07:03.180 --> 00:07:05.820
|
| 361 |
+
si en lugar de eso quisiéramos extraer la
|
| 362 |
+
|
| 363 |
+
00:07:05.820 --> 00:07:10.080
|
| 364 |
+
cantidad de veces que aparece la letra l,
|
| 365 |
+
|
| 366 |
+
00:07:11.500 --> 00:07:13.900
|
| 367 |
+
aquí la letra y, aquí la letra l
|
| 368 |
+
|
| 369 |
+
00:07:13.900 --> 00:07:18.815
|
| 370 |
+
y aquí la palabra excelente, el vector que
|
| 371 |
+
|
| 372 |
+
00:07:18.815 --> 00:07:22.095
|
| 373 |
+
tendremos es el siguiente. La y ya vimos
|
| 374 |
+
|
| 375 |
+
00:07:22.095 --> 00:07:24.655
|
| 376 |
+
que aparece dos veces. En el caso de
|
| 377 |
+
|
| 378 |
+
00:07:24.655 --> 00:07:28.755
|
| 379 |
+
la l está una vez aquí, y está
|
| 380 |
+
|
| 381 |
+
00:07:28.895 --> 00:07:32.905
|
| 382 |
+
otra vez acá, y otra vez acá. Entonces,
|
| 383 |
+
|
| 384 |
+
00:07:32.977 --> 00:07:35.480
|
| 385 |
+
aquí vendría un tres en lugar de un
|
| 386 |
+
|
| 387 |
+
00:07:35.480 --> 00:07:43.580
|
| 388 |
+
uno. Tres. Y la letra excelente sigue apareciendo
|
| 389 |
+
|
| 390 |
+
00:07:44.280 --> 00:07:46.625
|
| 391 |
+
solamente una vez, entonces, por eso solo está
|
| 392 |
+
|
| 393 |
+
00:07:46.625 --> 00:07:49.105
|
| 394 |
+
una vez aquí. La realidad es que nos
|
| 395 |
+
|
| 396 |
+
00:07:49.105 --> 00:07:52.465
|
| 397 |
+
conviene empezar a analizar, en lugar de letras,
|
| 398 |
+
|
| 399 |
+
00:07:52.465 --> 00:07:56.145
|
| 400 |
+
palabras, porque las palabras tienen muchísimo más contexto
|
| 401 |
+
|
| 402 |
+
00:07:56.145 --> 00:08:00.910
|
| 403 |
+
que estar analizando letras individuales. Regresemos al notebook.
|
| 404 |
+
|
| 405 |
+
00:08:05.930 --> 00:08:09.370
|
| 406 |
+
Ahora, ya que entendimos cómo construir nuestro vector
|
| 407 |
+
|
| 408 |
+
00:08:09.370 --> 00:08:12.384
|
| 409 |
+
de conteo de palabras, nuestro vector w, vamos
|
| 410 |
+
|
| 411 |
+
00:08:12.384 --> 00:08:15.685
|
| 412 |
+
a construir un nuevo vector. Este nuevo vector
|
| 413 |
+
|
| 414 |
+
00:08:15.745 --> 00:08:18.705
|
| 415 |
+
será el vector de sentimientos, en donde en
|
| 416 |
+
|
| 417 |
+
00:08:18.705 --> 00:08:21.604
|
| 418 |
+
la primera entrada estará la cantidad de palabras
|
| 419 |
+
|
| 420 |
+
00:08:21.664 --> 00:08:24.465
|
| 421 |
+
positivas que hay, en la segunda la cantidad
|
| 422 |
+
|
| 423 |
+
00:08:24.465 --> 00:08:26.460
|
| 424 |
+
de palabras neutras que hay, y en la
|
| 425 |
+
|
| 426 |
+
00:08:26.460 --> 00:08:28.740
|
| 427 |
+
tercera, la cantidad de palabras negativas que hay.
|
| 428 |
+
|
| 429 |
+
00:08:28.740 --> 00:08:33.280
|
| 430 |
+
Por ejemplo, si nosotros decimos que las palabras
|
| 431 |
+
|
| 432 |
+
00:08:33.500 --> 00:08:37.740
|
| 433 |
+
excelente, gran y positivo son palabras positivas, al
|
| 434 |
+
|
| 435 |
+
00:08:37.740 --> 00:08:42.115
|
| 436 |
+
igual que pérdida, una palabra neutra, y muerte
|
| 437 |
+
|
| 438 |
+
00:08:42.115 --> 00:08:46.595
|
| 439 |
+
y luto, palabras negativas, el primer tweet, este
|
| 440 |
+
|
| 441 |
+
00:08:46.595 --> 00:08:51.955
|
| 442 |
+
de aquí, lo podríamos representar como este vector
|
| 443 |
+
|
| 444 |
+
00:08:51.955 --> 00:08:55.710
|
| 445 |
+
de aquí. Entonces, vamos a dibujar un poco
|
| 446 |
+
|
| 447 |
+
00:08:55.710 --> 00:09:03.870
|
| 448 |
+
para entenderlo mejor. Si nosotros suponemos que la
|
| 449 |
+
|
| 450 |
+
00:09:03.870 --> 00:09:09.685
|
| 451 |
+
aparición de la palabra gran mexicano excelente y
|
| 452 |
+
|
| 453 |
+
00:09:09.685 --> 00:09:14.805
|
| 454 |
+
nacional son palabras positivas, entonces tendríamos en la
|
| 455 |
+
|
| 456 |
+
00:09:14.805 --> 00:09:18.885
|
| 457 |
+
primera entrada un uno más un dos más
|
| 458 |
+
|
| 459 |
+
00:09:18.885 --> 00:09:22.585
|
| 460 |
+
un tres más un cuatro. Entonces estas palabras
|
| 461 |
+
|
| 462 |
+
00:09:22.725 --> 00:09:25.709
|
| 463 |
+
aportan hacia un cuatro en la primera entrada.
|
| 464 |
+
|
| 465 |
+
00:09:25.709 --> 00:09:30.110
|
| 466 |
+
En la segunda entrada podríamos empezar a contar
|
| 467 |
+
|
| 468 |
+
00:09:30.110 --> 00:09:38.175
|
| 469 |
+
las palabras pérdida y la palabra enorme. Entonces,
|
| 470 |
+
|
| 471 |
+
00:09:38.175 --> 00:09:40.735
|
| 472 |
+
fíjense que no estamos dando el contexto de
|
| 473 |
+
|
| 474 |
+
00:09:40.735 --> 00:09:44.334
|
| 475 |
+
pérdida y enorme, simplemente estamos buscando que sea
|
| 476 |
+
|
| 477 |
+
00:09:44.334 --> 00:09:47.375
|
| 478 |
+
la palabra enorme y pérdida. Nosotros sabemos que
|
| 479 |
+
|
| 480 |
+
00:09:47.375 --> 00:09:52.710
|
| 481 |
+
esta combinación de palabras puede denotar algo negativo,
|
| 482 |
+
|
| 483 |
+
00:09:52.710 --> 00:09:55.290
|
| 484 |
+
sin embargo, vamos a pensar que de manera
|
| 485 |
+
|
| 486 |
+
00:09:55.430 --> 00:09:58.730
|
| 487 |
+
individual son palabras neutras, entonces estas dos aportan
|
| 488 |
+
|
| 489 |
+
00:09:58.870 --> 00:10:02.535
|
| 490 |
+
un dos aquí. Y por último, vamos a
|
| 491 |
+
|
| 492 |
+
00:10:02.535 --> 00:10:05.574
|
| 493 |
+
pensar que las palabras muerte y luto son
|
| 494 |
+
|
| 495 |
+
00:10:05.574 --> 00:10:09.495
|
| 496 |
+
palabras negativas, entonces estas están aportando un dos
|
| 497 |
+
|
| 498 |
+
00:10:09.495 --> 00:10:12.694
|
| 499 |
+
aquí. Así tenemos representado en un vector de
|
| 500 |
+
|
| 501 |
+
00:10:12.694 --> 00:10:18.030
|
| 502 |
+
sentimientos todo este enunciado. Regresemos al notebook. Ahora
|
| 503 |
+
|
| 504 |
+
00:10:18.030 --> 00:10:21.070
|
| 505 |
+
bien, ya que ya entendimos cómo construir nuestros
|
| 506 |
+
|
| 507 |
+
00:10:21.070 --> 00:10:23.810
|
| 508 |
+
vectores de palabras y nuestros vectores de sentimientos,
|
| 509 |
+
|
| 510 |
+
00:10:24.190 --> 00:10:26.270
|
| 511 |
+
lo que hay que hacer ahora es analizar
|
| 512 |
+
|
| 513 |
+
00:10:26.270 --> 00:10:29.550
|
| 514 |
+
la calidad del resultado que tenemos. Para eso,
|
| 515 |
+
|
| 516 |
+
00:10:29.550 --> 00:10:31.945
|
| 517 |
+
lo que vamos a hacer va a ser
|
| 518 |
+
|
| 519 |
+
00:10:31.945 --> 00:10:35.065
|
| 520 |
+
tomar el vector w y calcular el promedio
|
| 521 |
+
|
| 522 |
+
00:10:35.065 --> 00:10:40.925
|
| 523 |
+
del vector w. Pensémoslo así, si nuestro vector
|
| 524 |
+
|
| 525 |
+
00:10:41.305 --> 00:10:43.225
|
| 526 |
+
w es un n vector y todas las
|
| 527 |
+
|
| 528 |
+
00:10:43.225 --> 00:10:47.400
|
| 529 |
+
entradas son uno, la suma sería n, entonces
|
| 530 |
+
|
| 531 |
+
00:10:47.400 --> 00:10:52.360
|
| 532 |
+
el promedio sería uno. En el caso de
|
| 533 |
+
|
| 534 |
+
00:10:52.360 --> 00:10:55.320
|
| 535 |
+
que sea menor que uno, este número de
|
| 536 |
+
|
| 537 |
+
00:10:55.320 --> 00:10:59.915
|
| 538 |
+
aquí sería menor que uno. Podría ser cero
|
| 539 |
+
|
| 540 |
+
00:10:59.915 --> 00:11:02.875
|
| 541 |
+
punto nueve, cero punto ocho, cero punto siete,
|
| 542 |
+
|
| 543 |
+
00:11:02.875 --> 00:11:06.714
|
| 544 |
+
cero punto tres. Y eso nos daría la
|
| 545 |
+
|
| 546 |
+
00:11:06.714 --> 00:11:10.495
|
| 547 |
+
calidad de palabras o la cantidad de palabras
|
| 548 |
+
|
| 549 |
+
00:11:10.940 --> 00:11:14.140
|
| 550 |
+
que están apareciendo de nuestro análisis o de
|
| 551 |
+
|
| 552 |
+
00:11:14.140 --> 00:11:16.880
|
| 553 |
+
las palabras que nos interesan en los enunciados.
|
| 554 |
+
|
| 555 |
+
00:11:18.860 --> 00:11:23.120
|
| 556 |
+
Ahora bien, si hay muchas palabras y coinciden
|
| 557 |
+
|
| 558 |
+
00:11:23.339 --> 00:11:27.145
|
| 559 |
+
muchas veces, este promedio sería mayor que uno.
|
| 560 |
+
|
| 561 |
+
00:11:27.685 --> 00:11:29.705
|
| 562 |
+
Si es mayor que uno, nos está indicando
|
| 563 |
+
|
| 564 |
+
00:11:29.765 --> 00:11:33.365
|
| 565 |
+
que tenemos suficiencia de palabras. En el uno
|
| 566 |
+
|
| 567 |
+
00:11:33.365 --> 00:11:36.325
|
| 568 |
+
también nos indicaría un buen resultado. Si es
|
| 569 |
+
|
| 570 |
+
00:11:36.325 --> 00:11:39.225
|
| 571 |
+
menor que uno, es I mayor que cero
|
| 572 |
+
|
| 573 |
+
00:11:39.285 --> 00:11:41.800
|
| 574 |
+
punto cinco nos está indicando que es un
|
| 575 |
+
|
| 576 |
+
00:11:41.800 --> 00:11:45.000
|
| 577 |
+
resultado del que podríamos tener alguna incertidumbre, y
|
| 578 |
+
|
| 579 |
+
00:11:45.000 --> 00:11:47.400
|
| 580 |
+
la calidad de ese resultado, así le vamos
|
| 581 |
+
|
| 582 |
+
00:11:47.400 --> 00:11:49.400
|
| 583 |
+
a llamar a esa medida, se hará este
|
| 584 |
+
|
| 585 |
+
00:11:49.400 --> 00:11:52.300
|
| 586 |
+
promedio, y si es menor que cero punto
|
| 587 |
+
|
| 588 |
+
00:11:52.600 --> 00:11:54.440
|
| 589 |
+
cinco, vamos a decir que la calidad es
|
| 590 |
+
|
| 591 |
+
00:11:54.440 --> 00:11:57.394
|
| 592 |
+
mala. Es decir, que ni siquiera la mitad
|
| 593 |
+
|
| 594 |
+
00:11:57.394 --> 00:12:00.695
|
| 595 |
+
de las palabras que queríamos analizar estaban apareciendo
|
| 596 |
+
|
| 597 |
+
00:12:00.755 --> 00:12:03.074
|
| 598 |
+
en los enunciados o en el enunciado que
|
| 599 |
+
|
| 600 |
+
00:12:03.074 --> 00:12:08.774
|
| 601 |
+
analizamos. Ahora bien, después de calcular el promedio
|
| 602 |
+
|
| 603 |
+
00:12:10.130 --> 00:12:13.010
|
| 604 |
+
de cada uno de esos tweets que nos
|
| 605 |
+
|
| 606 |
+
00:12:13.010 --> 00:12:17.970
|
| 607 |
+
dará la calidad, vamos a calcular el sentimiento
|
| 608 |
+
|
| 609 |
+
00:12:17.970 --> 00:12:20.930
|
| 610 |
+
o el score sentimental de cada uno de
|
| 611 |
+
|
| 612 |
+
00:12:20.930 --> 00:12:24.165
|
| 613 |
+
los enunciados. Para eso vamos a recurrir a
|
| 614 |
+
|
| 615 |
+
00:12:24.165 --> 00:12:27.205
|
| 616 |
+
la función, a esta relación de aquí score,
|
| 617 |
+
|
| 618 |
+
00:12:27.205 --> 00:12:29.765
|
| 619 |
+
en donde le vamos a meter nuestro vector
|
| 620 |
+
|
| 621 |
+
00:12:29.765 --> 00:12:33.525
|
| 622 |
+
de sentimientos s. Notemos que este vector es
|
| 623 |
+
|
| 624 |
+
00:12:33.525 --> 00:12:36.300
|
| 625 |
+
diferente, al igual que este vector, para cada
|
| 626 |
+
|
| 627 |
+
00:12:36.300 --> 00:12:40.540
|
| 628 |
+
uno de los enunciados que tenemos aquí. Así,
|
| 629 |
+
|
| 630 |
+
00:12:40.540 --> 00:12:46.400
|
| 631 |
+
pues, notemos que en el score solamente cuentan
|
| 632 |
+
|
| 633 |
+
00:12:46.940 --> 00:12:50.524
|
| 634 |
+
la cantidad de puntos que tenemos o de
|
| 635 |
+
|
| 636 |
+
00:12:50.524 --> 00:12:53.644
|
| 637 |
+
de coincidencias de palabras positivas y la cantidad
|
| 638 |
+
|
| 639 |
+
00:12:53.644 --> 00:13:00.764
|
| 640 |
+
de palabras negativas. Tu tarea en este proyecto
|
| 641 |
+
|
| 642 |
+
00:13:00.764 --> 00:13:03.220
|
| 643 |
+
va a ser leer los tweets y encontrar
|
| 644 |
+
|
| 645 |
+
00:13:03.220 --> 00:13:06.280
|
| 646 |
+
el conjunto mínimo de palabras, es decir, el
|
| 647 |
+
|
| 648 |
+
00:13:07.300 --> 00:13:09.300
|
| 649 |
+
conjunto que tú vas a poder hacer para
|
| 650 |
+
|
| 651 |
+
00:13:09.300 --> 00:13:13.140
|
| 652 |
+
construir este vector w que tenga palabras que
|
| 653 |
+
|
| 654 |
+
00:13:13.140 --> 00:13:16.680
|
| 655 |
+
sean transversales a todos los enunciados, a todas
|
| 656 |
+
|
| 657 |
+
00:13:16.900 --> 00:13:22.454
|
| 658 |
+
esos tweets. Y al mismo tiempo, deberás de
|
| 659 |
+
|
| 660 |
+
00:13:22.454 --> 00:13:25.655
|
| 661 |
+
construir solamente una función para construir tanto esta
|
| 662 |
+
|
| 663 |
+
00:13:25.655 --> 00:13:30.535
|
| 664 |
+
s como esta w. No hay que hacer
|
| 665 |
+
|
| 666 |
+
00:13:30.535 --> 00:13:32.910
|
| 667 |
+
una función por enunciado, tiene que ser una
|
| 668 |
+
|
| 669 |
+
00:13:32.910 --> 00:13:37.950
|
| 670 |
+
función general para todos esos tweets. Ahora, según
|
| 671 |
+
|
| 672 |
+
00:13:37.950 --> 00:13:40.430
|
| 673 |
+
el esquema que tú elijas y que tú
|
| 674 |
+
|
| 675 |
+
00:13:40.430 --> 00:13:44.190
|
| 676 |
+
escojas, tendrás que responder estas preguntas. ¿Qué tweet
|
| 677 |
+
|
| 678 |
+
00:13:44.190 --> 00:13:46.750
|
| 679 |
+
es más positivo? ¿Cuál es el tweet más
|
| 680 |
+
|
| 681 |
+
00:13:46.750 --> 00:13:51.465
|
| 682 |
+
negativo? Cuál es la calidad promedio de tus
|
| 683 |
+
|
| 684 |
+
00:13:53.125 --> 00:13:56.245
|
| 685 |
+
de tus análisis, notemos que cada uno de
|
| 686 |
+
|
| 687 |
+
00:13:56.245 --> 00:13:59.225
|
| 688 |
+
estos enunciados va a tener una calidad asociada.
|
| 689 |
+
|
| 690 |
+
00:13:59.525 --> 00:14:04.070
|
| 691 |
+
Entonces, podemos construir un cuatro vector, y este
|
| 692 |
+
|
| 693 |
+
00:14:04.070 --> 00:14:08.870
|
| 694 |
+
cuatro vector lo podemos promediar también, sacando el
|
| 695 |
+
|
| 696 |
+
00:14:08.870 --> 00:14:12.470
|
| 697 |
+
promedio de los promedios, es decir, el promedio
|
| 698 |
+
|
| 699 |
+
00:14:12.470 --> 00:14:15.670
|
| 700 |
+
de las calidades, obtendremos la calidad promedio de
|
| 701 |
+
|
| 702 |
+
00:14:15.670 --> 00:14:18.245
|
| 703 |
+
nuestro análisis. Ese es el número que me
|
| 704 |
+
|
| 705 |
+
00:14:18.245 --> 00:14:21.205
|
| 706 |
+
tendrás que dar. ¿Es una buena calidad? ¿Es
|
| 707 |
+
|
| 708 |
+
00:14:21.205 --> 00:14:26.805
|
| 709 |
+
una mala calidad? Ahora, ¿cómo interpretas tú el
|
| 710 |
+
|
| 711 |
+
00:14:26.805 --> 00:14:31.410
|
| 712 |
+
score s? ¿Cómo interpretamos este número de aquí?
|
| 713 |
+
|
| 714 |
+
00:14:31.889 --> 00:14:35.730
|
| 715 |
+
¿Y cómo lo interpretaríamos contra el promedio de
|
| 716 |
+
|
| 717 |
+
00:14:35.730 --> 00:14:39.649
|
| 718 |
+
estas entradas? Recordemos que en el score s
|
| 719 |
+
|
| 720 |
+
00:14:39.649 --> 00:14:43.250
|
| 721 |
+
solamente cuentan la cantidad de puntos positivos y
|
| 722 |
+
|
| 723 |
+
00:14:43.250 --> 00:14:47.145
|
| 724 |
+
negativos. Notemos que si solamente tenemos palabras neutras,
|
| 725 |
+
|
| 726 |
+
00:14:47.285 --> 00:14:50.165
|
| 727 |
+
este score sería cero, mientras que si tenemos
|
| 728 |
+
|
| 729 |
+
00:14:50.165 --> 00:14:53.365
|
| 730 |
+
un promedio, si estas son cero, el promedio
|
| 731 |
+
|
| 732 |
+
00:14:53.365 --> 00:14:57.205
|
| 733 |
+
no sería cero, sino sería tres entre este
|
| 734 |
+
|
| 735 |
+
00:14:57.205 --> 00:15:00.690
|
| 736 |
+
número s uno. ¿Cuál es la diferencia entre
|
| 737 |
+
|
| 738 |
+
00:15:00.910 --> 00:15:03.410
|
| 739 |
+
el promedio de s y el score s?
|
| 740 |
+
|
| 741 |
+
00:15:03.790 --> 00:15:08.209
|
| 742 |
+
¿Cómo los interpretas? Y, por último, ¿cómo relacionas
|
| 743 |
+
|
| 744 |
+
00:15:08.430 --> 00:15:10.750
|
| 745 |
+
la calidad con tu score y con tu
|
| 746 |
+
|
| 747 |
+
00:15:10.750 --> 00:15:15.005
|
| 748 |
+
promedio? Es decir, ¿una calidad baja te lleva
|
| 749 |
+
|
| 750 |
+
00:15:15.005 --> 00:15:17.805
|
| 751 |
+
a un score distinto? ¿Te lleva a un
|
| 752 |
+
|
| 753 |
+
00:15:17.805 --> 00:15:23.565
|
| 754 |
+
promedio distinto? Te invito también a que juegues
|
| 755 |
+
|
| 756 |
+
00:15:23.565 --> 00:15:25.665
|
| 757 |
+
con la cantidad de palabras que estás analizando
|
| 758 |
+
|
| 759 |
+
00:15:25.725 --> 00:15:28.770
|
| 760 |
+
para poder responder la última pregunta. Aquí quita
|
| 761 |
+
|
| 762 |
+
00:15:28.770 --> 00:15:31.330
|
| 763 |
+
palabras o añade palabras, eso va a hacer
|
| 764 |
+
|
| 765 |
+
00:15:31.330 --> 00:15:34.050
|
| 766 |
+
que tu calidad suba o baje. ¿Cómo varían
|
| 767 |
+
|
| 768 |
+
00:15:34.050 --> 00:15:38.290
|
| 769 |
+
esos scores? ¿Tienes algún umbral en el que
|
| 770 |
+
|
| 771 |
+
00:15:38.290 --> 00:15:42.945
|
| 772 |
+
ya no varían? Te invito a que dejes
|
| 773 |
+
|
| 774 |
+
00:15:42.945 --> 00:15:47.825
|
| 775 |
+
todas estas respuestas en los comentarios. Esta fue
|
| 776 |
+
|
| 777 |
+
00:15:47.825 --> 00:15:53.084
|
| 778 |
+
la presentación del primer proyecto. Cualquier duda que
|
| 779 |
+
|
| 780 |
+
00:15:53.084 --> 00:15:56.045
|
| 781 |
+
tengas, escríbela en los comentarios. Yo estoy ansioso
|
| 782 |
+
|
| 783 |
+
00:15:56.045 --> 00:15:58.524
|
| 784 |
+
de poder ver sus resultados. Nos vemos la
|
| 785 |
+
|
| 786 |
+
00:15:58.524 --> 00:15:59.345
|
| 787 |
+
próxima clase.
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1zLgEfmILRmfGXpHHsH5e6gYc9kM7qT5S?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducción al Álgebra Lineal Vectores/02-Vectores/10-producto_interno_d76312cb-c13c-4a95-9c40-827332ec9fef.ipynb
ADDED
|
@@ -0,0 +1,447 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 4. Producto Interno"
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"El *producto interno* (estándar) o simplemente *producto punto* de dos $n$-vectores $\\vec{a},\\vec{b}$ se define como el escalar:\n",
|
| 15 |
+
"\n",
|
| 16 |
+
"$$\n",
|
| 17 |
+
"<\\vec{a},\\vec{b}> = \\vec{a} \\cdot \\vec{b} = a_{0}b_{0}+a_{1}b_{1}+\\cdots+a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 18 |
+
"$$\n",
|
| 19 |
+
"\n",
|
| 20 |
+
"Que es simplemente la suma del producto de sus entradas."
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"cell_type": "markdown",
|
| 25 |
+
"metadata": {},
|
| 26 |
+
"source": [
|
| 27 |
+
"Por ejemplo, si $\\vec{a}=(1,2,3)$ y $\\vec{b}=(4,5,6)$ entonces el producto punto será:\n",
|
| 28 |
+
"\n",
|
| 29 |
+
"$$\n",
|
| 30 |
+
"\\vec{a}\\cdot\\vec{b} = (1,2,3)\\cdot (4,5,6) = 1\\cdot 4+2\\cdot 5 + 3\\cdot 6 = 4+10+18=32\n",
|
| 31 |
+
"$$"
|
| 32 |
+
]
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"cell_type": "markdown",
|
| 36 |
+
"metadata": {},
|
| 37 |
+
"source": [
|
| 38 |
+
"Hasta ahora trabajamos de forma indiferente con *vectores columna* y *vectores renglón*, a partir de este momento **el estándar serán los vectores columna** entonces simpre que hablemos de un vector, dígamos $\\vec{a}$ entonces estaremos hablando del vector columna:\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"$$\n",
|
| 41 |
+
"\\vec{a} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}\n",
|
| 42 |
+
"$$\n",
|
| 43 |
+
"\n",
|
| 44 |
+
"Esto también nos permite introducir una nueva operación: **la transposición**. Retomemos el vector $\\vec{a}$, denotaremos como $\\vec{a}^{T}$ al vector transpuesto de $\\vec{a}$:\n",
|
| 45 |
+
"\n",
|
| 46 |
+
"$$\n",
|
| 47 |
+
"\\vec{a}^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]\n",
|
| 48 |
+
"$$\n",
|
| 49 |
+
"\n",
|
| 50 |
+
"La operación de transposición nos permite cambiar de vectores columna a vectores renglón sin modificar al vector que se transponga. Notemos que es posible poder transponer un vector transpuesto_\n",
|
| 51 |
+
"\n",
|
| 52 |
+
"$$\n",
|
| 53 |
+
"\\left(\\vec{a}^{T}\\right)^{T} = \\left(\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix}^{T}\\right)^{T} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}]^{T} = \\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{n-1}\\end{bmatrix} = \\vec{a}\n",
|
| 54 |
+
"$$"
|
| 55 |
+
]
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"cell_type": "markdown",
|
| 59 |
+
"metadata": {},
|
| 60 |
+
"source": [
|
| 61 |
+
"Así pues, consideremos el ejemplo anterior de los vectores $\\vec{a}$ y $\\vec{b}$. Definimos la operación $\\vec{a}^{T}\\vec{b}$ como:\n",
|
| 62 |
+
"\n",
|
| 63 |
+
"$$\n",
|
| 64 |
+
"\\vec{a}^{T}\\; \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{n-1}] \\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{n-1}\\end{bmatrix} = a_{0}b_{0} + a_{1}b_{1} + \\cdots + a_{n-1}b_{n-1} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}\n",
|
| 65 |
+
"$$\n",
|
| 66 |
+
"\n",
|
| 67 |
+
"Lo cual coincide con la definición del producto interno. Así pues $<\\vec{a},\\vec{b}> = \\vec{a}\\cdot \\vec{b} = \\vec{a}^{T} \\;\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i}$"
|
| 68 |
+
]
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"cell_type": "markdown",
|
| 72 |
+
"metadata": {},
|
| 73 |
+
"source": [
|
| 74 |
+
"## 4.1 Propiedades del producto interno"
|
| 75 |
+
]
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"cell_type": "markdown",
|
| 79 |
+
"metadata": {},
|
| 80 |
+
"source": [
|
| 81 |
+
"Sean $\\vec{a},\\vec{b}$ dos $n$-vectores y $\\alpha$ un escalar. El producto interno entre $\\vec{a}$ y $\\vec{b}$ cumple las siguientes propiedades:\n",
|
| 82 |
+
"\n",
|
| 83 |
+
"* Conmutatividad: $\\vec{a}^{T}\\vec{b} = \\displaystyle\\sum_{i=0}^{n-1} a_{i}b_{i} = \\displaystyle\\sum_{i=0}^{n-1} b_{i}a_{i} = \\vec{b}^{T}\\vec{a}$\n",
|
| 84 |
+
"\n",
|
| 85 |
+
"* Asociatividad con multiplicación escalar: $\\left(\\alpha \\vec{a}\\right)^{T}\\vec{b} = \\alpha\\left(\\vec{a}^{T}\\vec{b}\\right)$\n",
|
| 86 |
+
"\n",
|
| 87 |
+
"* Distribución en la adición de vectores: $\\left(\\vec{a} + \\vec{b}\\right)^{T}\\vec{c} = \\vec{a}^{T}\\vec{c} + \\vec{b}^{T}\\vec{c}$"
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
{
|
| 91 |
+
"cell_type": "markdown",
|
| 92 |
+
"metadata": {},
|
| 93 |
+
"source": [
|
| 94 |
+
"## 4.2 Consideraciones adicionales"
|
| 95 |
+
]
|
| 96 |
+
},
|
| 97 |
+
{
|
| 98 |
+
"cell_type": "markdown",
|
| 99 |
+
"metadata": {},
|
| 100 |
+
"source": [
|
| 101 |
+
"**Proyección**. Si $\\vec{a}$ es un $n$-vector entonces $\\hat{e}_{i}^{T}\\vec{a} = a_{i}$"
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"cell_type": "markdown",
|
| 106 |
+
"metadata": {},
|
| 107 |
+
"source": [
|
| 108 |
+
"**Suma de elementos de un vector.** $\\mathbf{1}^{T}a = a_{0}+a_{1}+\\cdots+a_{n-1}$ "
|
| 109 |
+
]
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"cell_type": "markdown",
|
| 113 |
+
"metadata": {},
|
| 114 |
+
"source": [
|
| 115 |
+
"**Promedio de entradas de un vector.** $(\\mathbf{1}/n)^{T}\\vec{a} = (a_{0}+a_{1}+\\cdots+a_{n-1})/n$"
|
| 116 |
+
]
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"cell_type": "markdown",
|
| 120 |
+
"metadata": {},
|
| 121 |
+
"source": [
|
| 122 |
+
"**Suma de cuadrados de un vector.** $\\vec{a}^{T} \\;\\vec{a} = a_{0}^{2}+a_{1}^{2}+\\cdots+a_{n-1}^{2}$"
|
| 123 |
+
]
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"cell_type": "markdown",
|
| 127 |
+
"metadata": {},
|
| 128 |
+
"source": [
|
| 129 |
+
"**Producto interno de bloques de vectores**. Sean $\\vec{a},\\vec{b}$ $k$-vectores formados por concatenar los $n$-vectores $a_{i},b_{i}$:\n",
|
| 130 |
+
"\n",
|
| 131 |
+
"$$\n",
|
| 132 |
+
"\\vec{a}=\\begin{bmatrix}a_{0}\\\\ a_{1}\\\\ \\vdots \\\\ a_{k-1}\\end{bmatrix},\\qquad \\vec{b}=\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix}\n",
|
| 133 |
+
"$$\n",
|
| 134 |
+
"\n",
|
| 135 |
+
"Entonces el producto punto entre estos vectores va como:\n",
|
| 136 |
+
"\n",
|
| 137 |
+
"$$\n",
|
| 138 |
+
"\\vec{a}^{T} \\vec{b} = [a_{0}\\; a_{1}\\; \\cdots \\; a_{k-1}]\\begin{bmatrix}b_{0}\\\\ b_{1}\\\\ \\vdots \\\\ b_{k-1}\\end{bmatrix} = a_{0}^{T}b_{0}+a_{1}^{T}b_{1} + \\cdots + a_{k-1}^{T}b_{k-1}\n",
|
| 139 |
+
"$$"
|
| 140 |
+
]
|
| 141 |
+
},
|
| 142 |
+
{
|
| 143 |
+
"cell_type": "markdown",
|
| 144 |
+
"metadata": {},
|
| 145 |
+
"source": [
|
| 146 |
+
"## 4.3 Producto interno en Python. "
|
| 147 |
+
]
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"cell_type": "code",
|
| 151 |
+
"execution_count": 1,
|
| 152 |
+
"metadata": {},
|
| 153 |
+
"outputs": [],
|
| 154 |
+
"source": [
|
| 155 |
+
"import numpy as np"
|
| 156 |
+
]
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"cell_type": "markdown",
|
| 160 |
+
"metadata": {},
|
| 161 |
+
"source": [
|
| 162 |
+
"Sean $\\vec{a},\\vec{b}$ vectores en $\\mathbb{R}^{4}$. Diremos que los vectores son **ortogonales** o **perpendiculares** si $\\vec{a}\\cdot \\vec{b}= 0$\n",
|
| 163 |
+
"\n",
|
| 164 |
+
"Consideremos entonces $\\vec{a}=\\hat{e}_{0}$ y $\\vec{b} = \\hat{e}_{2}$. Vamos a realizar el producto punto en Python"
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"cell_type": "code",
|
| 169 |
+
"execution_count": 3,
|
| 170 |
+
"metadata": {},
|
| 171 |
+
"outputs": [],
|
| 172 |
+
"source": [
|
| 173 |
+
"a = np.array([1,0,0,0]) #declaramos el vector e_1\n",
|
| 174 |
+
"\n",
|
| 175 |
+
"b = np.array([0,0,1,0]) #declaramos el vector e_2"
|
| 176 |
+
]
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"cell_type": "markdown",
|
| 180 |
+
"metadata": {},
|
| 181 |
+
"source": [
|
| 182 |
+
"Para realizar el producto punto llamaremos a la función *numpy.dot*"
|
| 183 |
+
]
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"cell_type": "code",
|
| 187 |
+
"execution_count": 16,
|
| 188 |
+
"metadata": {},
|
| 189 |
+
"outputs": [
|
| 190 |
+
{
|
| 191 |
+
"name": "stdout",
|
| 192 |
+
"output_type": "stream",
|
| 193 |
+
"text": [
|
| 194 |
+
"<a,b> = 0\n"
|
| 195 |
+
]
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"source": [
|
| 199 |
+
"print('<a,b> =',np.dot(a,b))"
|
| 200 |
+
]
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"cell_type": "markdown",
|
| 204 |
+
"metadata": {},
|
| 205 |
+
"source": [
|
| 206 |
+
"De igual manera también podemos usar el operador $@$"
|
| 207 |
+
]
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"cell_type": "code",
|
| 211 |
+
"execution_count": 21,
|
| 212 |
+
"metadata": {},
|
| 213 |
+
"outputs": [
|
| 214 |
+
{
|
| 215 |
+
"name": "stdout",
|
| 216 |
+
"output_type": "stream",
|
| 217 |
+
"text": [
|
| 218 |
+
"<a,b> = 0\n"
|
| 219 |
+
]
|
| 220 |
+
}
|
| 221 |
+
],
|
| 222 |
+
"source": [
|
| 223 |
+
"print('<a,b> =',a.T@b)"
|
| 224 |
+
]
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
"cell_type": "markdown",
|
| 228 |
+
"metadata": {},
|
| 229 |
+
"source": [
|
| 230 |
+
" "
|
| 231 |
+
]
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"cell_type": "markdown",
|
| 235 |
+
"metadata": {},
|
| 236 |
+
"source": [
|
| 237 |
+
"**Evaluación de polinomios**. Un polinomio de grado $n-1$ se puede expresar como $p(x) = c_{0} + c_{1}x + c_{2}x^{2} + \\cdots + c_{n-1}x^{n-1}$. Si consideramos los $n$-vectores $\\vec{c},\\vec{x}$ tales que:\n",
|
| 238 |
+
"\n",
|
| 239 |
+
"$$\n",
|
| 240 |
+
"\\vec{c} = \\begin{bmatrix}c_{0}\\\\ c_{1}\\\\ \\vdots \\\\ c_{n-1}\\end{bmatrix},\\qquad \\vec{x}(x) = \\begin{bmatrix}x^{0}\\\\ x^{1}\\\\ \\vdots \\\\ x^{n-1}\\end{bmatrix}\n",
|
| 241 |
+
"$$\n",
|
| 242 |
+
"\n",
|
| 243 |
+
"Así pues, usando estos vectores es posible expresar $p(x) = \\vec{c}^{T}\\vec{x}(x)$. Un ejemplo más concreto sería $p(x)=1+2x$, usando los vectores:\n",
|
| 244 |
+
"\n",
|
| 245 |
+
"$$\n",
|
| 246 |
+
"\\vec{c} = \\begin{bmatrix}1\\\\ 2 \\end{bmatrix}, \\qquad \\vec{x}(x) = \\begin{bmatrix}1\\\\ x \\end{bmatrix}\n",
|
| 247 |
+
"$$\n",
|
| 248 |
+
"\n",
|
| 249 |
+
"Entonces podemos escribir:\n",
|
| 250 |
+
"$$\n",
|
| 251 |
+
"p(x) = \\vec{c}^{T}\\vec{x}(x) = [1 \\; 2] \\begin{bmatrix}1\\\\ x \\end{bmatrix} = 1\\cdot 1 + 2\\cdot x = 1 + 2x\n",
|
| 252 |
+
"$$"
|
| 253 |
+
]
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"cell_type": "markdown",
|
| 257 |
+
"metadata": {},
|
| 258 |
+
"source": [
|
| 259 |
+
"Así pues en Python podemos escribir el polinomio como:"
|
| 260 |
+
]
|
| 261 |
+
},
|
| 262 |
+
{
|
| 263 |
+
"cell_type": "code",
|
| 264 |
+
"execution_count": 2,
|
| 265 |
+
"metadata": {},
|
| 266 |
+
"outputs": [],
|
| 267 |
+
"source": [
|
| 268 |
+
"def p(x):\n",
|
| 269 |
+
" return np.array([1,2])@np.array([1,x])"
|
| 270 |
+
]
|
| 271 |
+
},
|
| 272 |
+
{
|
| 273 |
+
"cell_type": "code",
|
| 274 |
+
"execution_count": 5,
|
| 275 |
+
"metadata": {},
|
| 276 |
+
"outputs": [
|
| 277 |
+
{
|
| 278 |
+
"name": "stdout",
|
| 279 |
+
"output_type": "stream",
|
| 280 |
+
"text": [
|
| 281 |
+
"p(0) = 1\n",
|
| 282 |
+
"p(1) = 3\n",
|
| 283 |
+
"p(2) = 5\n"
|
| 284 |
+
]
|
| 285 |
+
}
|
| 286 |
+
],
|
| 287 |
+
"source": [
|
| 288 |
+
"print('p(0) = ',p(0))\n",
|
| 289 |
+
"print('p(1) = ',p(1))\n",
|
| 290 |
+
"print('p(2) = ',p(2))"
|
| 291 |
+
]
|
| 292 |
+
},
|
| 293 |
+
{
|
| 294 |
+
"cell_type": "markdown",
|
| 295 |
+
"metadata": {},
|
| 296 |
+
"source": [
|
| 297 |
+
"## 4.4 Ejercicios."
|
| 298 |
+
]
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"cell_type": "markdown",
|
| 302 |
+
"metadata": {},
|
| 303 |
+
"source": [
|
| 304 |
+
"**Problema 1: Análisis de sentimientos de tweets.** Vamos a crear un máquina que pueda decirnos qué tan positivo, neutral o negativo son una serie de respuestas de twitter. \n",
|
| 305 |
+
"Las respuestas son:\n",
|
| 306 |
+
"> Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\n",
|
| 307 |
+
"\n",
|
| 308 |
+
"> Vaya señora que bueno que se asesora por alguien inteligente no por el ignorante del Gatt.\n",
|
| 309 |
+
"\n",
|
| 310 |
+
"> Se me ocurre y sin ver todos los videos de Plazti que me informéis por dónde empiezo. Entiendo que os tendría que decir quién soy y que quiero, vamos conocerme para asesorarme bien.\n",
|
| 311 |
+
"Un saludo\n",
|
| 312 |
+
"\n",
|
| 313 |
+
"> Soy docente universitario, estoy intentando preparar mis clases en modo platzi bien didáctico, (le llamo modo noticiero), descargue una plataforma gratuita de grabación y transmisión de vídeo, se llama Obs estudio!bueno la sigo remando con sus funciones pero sé que saldrá algo!"
|
| 314 |
+
]
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
"cell_type": "code",
|
| 318 |
+
"execution_count": 7,
|
| 319 |
+
"metadata": {},
|
| 320 |
+
"outputs": [],
|
| 321 |
+
"source": [
|
| 322 |
+
"a = \"Gran mexicano y excelente en su área, su muerte es una enorme perdida y debería ser luto nacional!!!\"\n",
|
| 323 |
+
"a = a.replace(\"!\",\"\").replace(\",\",\"\").split(\" \")"
|
| 324 |
+
]
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"cell_type": "code",
|
| 328 |
+
"execution_count": 8,
|
| 329 |
+
"metadata": {},
|
| 330 |
+
"outputs": [
|
| 331 |
+
{
|
| 332 |
+
"data": {
|
| 333 |
+
"text/plain": [
|
| 334 |
+
"['Gran',\n",
|
| 335 |
+
" 'mexicano',\n",
|
| 336 |
+
" 'y',\n",
|
| 337 |
+
" 'excelente',\n",
|
| 338 |
+
" 'en',\n",
|
| 339 |
+
" 'su',\n",
|
| 340 |
+
" 'área',\n",
|
| 341 |
+
" 'su',\n",
|
| 342 |
+
" 'muerte',\n",
|
| 343 |
+
" 'es',\n",
|
| 344 |
+
" 'una',\n",
|
| 345 |
+
" 'enorme',\n",
|
| 346 |
+
" 'perdida',\n",
|
| 347 |
+
" 'y',\n",
|
| 348 |
+
" 'debería',\n",
|
| 349 |
+
" 'ser',\n",
|
| 350 |
+
" 'luto',\n",
|
| 351 |
+
" 'nacional']"
|
| 352 |
+
]
|
| 353 |
+
},
|
| 354 |
+
"execution_count": 8,
|
| 355 |
+
"metadata": {},
|
| 356 |
+
"output_type": "execute_result"
|
| 357 |
+
}
|
| 358 |
+
],
|
| 359 |
+
"source": [
|
| 360 |
+
"a"
|
| 361 |
+
]
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"cell_type": "code",
|
| 365 |
+
"execution_count": 9,
|
| 366 |
+
"metadata": {},
|
| 367 |
+
"outputs": [
|
| 368 |
+
{
|
| 369 |
+
"name": "stdout",
|
| 370 |
+
"output_type": "stream",
|
| 371 |
+
"text": [
|
| 372 |
+
"Sí\n"
|
| 373 |
+
]
|
| 374 |
+
}
|
| 375 |
+
],
|
| 376 |
+
"source": [
|
| 377 |
+
"if 'muerte' in a:\n",
|
| 378 |
+
" print(\"Sí\")"
|
| 379 |
+
]
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"cell_type": "markdown",
|
| 383 |
+
"metadata": {},
|
| 384 |
+
"source": [
|
| 385 |
+
"Ahora bien, no podemos sacar toda la información de los textos sino vamos a buscar cadenas (strings) específicas. Así pues vamos a construir una función de Python que cuente la cantidad de veces que aparece cierta cadena. Como ejemplo, supongamos que las palabras que vamos a contar son *muerte*, *pérdida*, *luto*, *excelente*,*gran* y *positivo*, y además esto lo queremos expresar como vector en orden respectivo, así pues el primer comentario lo podemos expresar como el siguiente vector:\n",
|
| 386 |
+
"$$\n",
|
| 387 |
+
"\\vec{w} = \\begin{bmatrix}1\\\\ 1 \\\\ 1\\\\ 1\\\\ 1 \\\\0 \\end{bmatrix}\n",
|
| 388 |
+
"$$\n",
|
| 389 |
+
"Ahora, vamos a crear otra función en la que tendremos el vector con entradas de cantidad de palabras positivas, negativas y neutras. Siguiendo con el ejemplo vamos a sumar un uno a la primer entrada si aparece alguna de las siguientes palabras *excelente*,*gran* y *positivo*, un uno en la segunda por cada vez que aparezca la palabra *pérdida* y un uno a la última entrada si aparecen las palabras *muerte* y *luto*. Así pues, el primer twett lo podemos representar como:\n",
|
| 390 |
+
"\n",
|
| 391 |
+
"$$\n",
|
| 392 |
+
"\\vec{s} = \\begin{bmatrix} 2 \\\\ 1 \\\\2 \\end{bmatrix}\n",
|
| 393 |
+
"$$\n",
|
| 394 |
+
"\n",
|
| 395 |
+
"Ahora, para ver la *calidad* del resultado que tendremos para un twett conviene calcular el promedio de las entradas de un vector de palabras\n",
|
| 396 |
+
"$$avg(\\vec{w}) = (\\mathbf{1}/n)^{T}\\vec{w}$$\n",
|
| 397 |
+
"Y después calcularás el promedio del sentimiento de cada tweet $avg(\\vec{s})$ y de igual manera el *score sentimental* que se define como \n",
|
| 398 |
+
"$$score(\\vec{s}) = [1\\; 0\\; -1] \\begin{bmatrix} s_{0} \\\\ s_{1} \\\\s_{2} \\end{bmatrix}$$"
|
| 399 |
+
]
|
| 400 |
+
},
|
| 401 |
+
{
|
| 402 |
+
"cell_type": "markdown",
|
| 403 |
+
"metadata": {},
|
| 404 |
+
"source": [
|
| 405 |
+
"Leyendo los tuits decide el conjunto mínimo de palabras que vas a contar en todos los tuits, solamente deberás hacer una función para contar palabras para todos los tuits, no hagas un función por enunciado. Según tu esquema reponde lo siguiente:\n",
|
| 406 |
+
"\n",
|
| 407 |
+
"* ¿Qué tuit es más positivo?\n",
|
| 408 |
+
"\n",
|
| 409 |
+
"* ¿Qué tuit es más negativo?\n",
|
| 410 |
+
"\n",
|
| 411 |
+
"* ¿Cuál es tu calidad promedio?\n",
|
| 412 |
+
"\n",
|
| 413 |
+
"* ¿Cómo interpretas $avg(\\vec{s})$ y $score(\\vec{s})$?\n",
|
| 414 |
+
"\n",
|
| 415 |
+
"* ¿Cómo relacionas la calidad con $score(\\vec{s})$ y $avg(\\vec{s})$?"
|
| 416 |
+
]
|
| 417 |
+
},
|
| 418 |
+
{
|
| 419 |
+
"cell_type": "code",
|
| 420 |
+
"execution_count": null,
|
| 421 |
+
"metadata": {},
|
| 422 |
+
"outputs": [],
|
| 423 |
+
"source": []
|
| 424 |
+
}
|
| 425 |
+
],
|
| 426 |
+
"metadata": {
|
| 427 |
+
"kernelspec": {
|
| 428 |
+
"display_name": "Python 3",
|
| 429 |
+
"language": "python",
|
| 430 |
+
"name": "python3"
|
| 431 |
+
},
|
| 432 |
+
"language_info": {
|
| 433 |
+
"codemirror_mode": {
|
| 434 |
+
"name": "ipython",
|
| 435 |
+
"version": 3
|
| 436 |
+
},
|
| 437 |
+
"file_extension": ".py",
|
| 438 |
+
"mimetype": "text/x-python",
|
| 439 |
+
"name": "python",
|
| 440 |
+
"nbconvert_exporter": "python",
|
| 441 |
+
"pygments_lexer": "ipython3",
|
| 442 |
+
"version": "3.7.3"
|
| 443 |
+
}
|
| 444 |
+
},
|
| 445 |
+
"nbformat": 4,
|
| 446 |
+
"nbformat_minor": 4
|
| 447 |
+
}
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-16-18-am_814169ee-b3bd-4e99-aa84-2fba65f26816.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_8975d699-1c37-4b6b-a9f7-f8c2b86e0c8e.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_af62d54c-3dc7-42ee-b203-dbbc6f8bbdd8.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/02-Vectores/10-screen-shot-2021-02-23-at-7-17-04-am_d85e6d28-607e-4064-b558-a9bad63631b8.png
ADDED
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Funciones Lineales Transformación de Vectores en Escalares.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0275abd0271c690501c5554bd6b3b62d90883593e8869cf504c47bab5c00334a
|
| 3 |
+
size 108234493
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Funciones Lineales Transformación de Vectores en Escalares.vtt
ADDED
|
@@ -0,0 +1,607 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.040 --> 00:00:06.080
|
| 4 |
+
Hola, te doy la bienvenida de nuevo. En
|
| 5 |
+
|
| 6 |
+
00:00:06.080 --> 00:00:08.340
|
| 7 |
+
esta clase vamos a hablar de funciones lineales.
|
| 8 |
+
|
| 9 |
+
00:00:08.880 --> 00:00:11.780
|
| 10 |
+
En el pasado ya vimos operaciones entre vectores
|
| 11 |
+
|
| 12 |
+
00:00:12.080 --> 00:00:15.044
|
| 13 |
+
y operaciones entre vectores y escalares. Operaciones entre
|
| 14 |
+
|
| 15 |
+
00:00:15.044 --> 00:00:18.517
|
| 16 |
+
vectores vimos, por ejemplo, el producto punto y
|
| 17 |
+
|
| 18 |
+
00:00:18.517 --> 00:00:21.845
|
| 19 |
+
la suma, y operación entre escalar y vector
|
| 20 |
+
|
| 21 |
+
00:00:21.845 --> 00:00:25.605
|
| 22 |
+
vimos el producto escalar vector. Ahora, vamos a
|
| 23 |
+
|
| 24 |
+
00:00:25.605 --> 00:00:27.845
|
| 25 |
+
introducir las funciones y vamos a ver cómo
|
| 26 |
+
|
| 27 |
+
00:00:27.845 --> 00:00:30.930
|
| 28 |
+
las funciones van a tomar vectores y nos
|
| 29 |
+
|
| 30 |
+
00:00:30.930 --> 00:00:33.910
|
| 31 |
+
van a ayudar a poder transformarlos en escalares.
|
| 32 |
+
|
| 33 |
+
00:00:34.610 --> 00:00:36.530
|
| 34 |
+
Este es un tipo de funciones y más
|
| 35 |
+
|
| 36 |
+
00:00:36.530 --> 00:00:39.730
|
| 37 |
+
adelante hablaremos de ellas. Sin más, vamos a
|
| 38 |
+
|
| 39 |
+
00:00:39.730 --> 00:00:43.890
|
| 40 |
+
la computadora. Ahora, para denotar una función, digamos
|
| 41 |
+
|
| 42 |
+
00:00:43.890 --> 00:00:45.795
|
| 43 |
+
que la función se va a llamar f,
|
| 44 |
+
|
| 45 |
+
00:00:45.795 --> 00:00:48.355
|
| 46 |
+
la vamos a denotar como f, una función
|
| 47 |
+
|
| 48 |
+
00:00:48.355 --> 00:00:51.414
|
| 49 |
+
que va de RNAR. Esto va a significar
|
| 50 |
+
|
| 51 |
+
00:00:51.954 --> 00:00:55.875
|
| 52 |
+
que el dominio de f es RNY la
|
| 53 |
+
|
| 54 |
+
00:00:55.875 --> 00:00:58.434
|
| 55 |
+
imagen es r. Lo que esto simplemente nos
|
| 56 |
+
|
| 57 |
+
00:00:58.434 --> 00:01:00.034
|
| 58 |
+
quiere decir es que va a tomar un
|
| 59 |
+
|
| 60 |
+
00:01:00.034 --> 00:01:01.830
|
| 61 |
+
n vector y este n vector lo va
|
| 62 |
+
|
| 63 |
+
00:01:01.830 --> 00:01:04.950
|
| 64 |
+
a convertir en un escalar. Un ejemplo de
|
| 65 |
+
|
| 66 |
+
00:01:04.950 --> 00:01:07.910
|
| 67 |
+
función o de operación que hace esto, por
|
| 68 |
+
|
| 69 |
+
00:01:07.910 --> 00:01:10.470
|
| 70 |
+
ejemplo, sería el producto interno, el que vimos
|
| 71 |
+
|
| 72 |
+
00:01:10.470 --> 00:01:14.470
|
| 73 |
+
en clases anteriores. Ahora, es muy importante que
|
| 74 |
+
|
| 75 |
+
00:01:14.470 --> 00:01:17.935
|
| 76 |
+
esta función esté denotada de manera explícita. Si
|
| 77 |
+
|
| 78 |
+
00:01:17.935 --> 00:01:20.415
|
| 79 |
+
no la tenemos denotada de manera explícita, no
|
| 80 |
+
|
| 81 |
+
00:01:20.415 --> 00:01:22.815
|
| 82 |
+
vamos a poder trabajar con ellas. ¿Cómo se
|
| 83 |
+
|
| 84 |
+
00:01:22.815 --> 00:01:27.475
|
| 85 |
+
denotaría de manera explícita? Bueno, tendríamos una notación
|
| 86 |
+
|
| 87 |
+
00:01:27.535 --> 00:01:31.020
|
| 88 |
+
como esta, en donde leemos f de X0F
|
| 89 |
+
|
| 90 |
+
00:01:31.020 --> 00:01:35.260
|
| 91 |
+
del vector x igual a una expresión. En
|
| 92 |
+
|
| 93 |
+
00:01:35.260 --> 00:01:38.140
|
| 94 |
+
este caso, aquí tenemos f evaluado en cada
|
| 95 |
+
|
| 96 |
+
00:01:38.140 --> 00:01:41.473
|
| 97 |
+
una de las componentes del vector, en donde
|
| 98 |
+
|
| 99 |
+
00:01:41.473 --> 00:01:43.660
|
| 100 |
+
x va a ser un n vector y
|
| 101 |
+
|
| 102 |
+
00:01:43.660 --> 00:01:46.534
|
| 103 |
+
x sí serán las entradas de este vector
|
| 104 |
+
|
| 105 |
+
00:01:46.534 --> 00:01:50.634
|
| 106 |
+
x. Algo que es necesario enfatizar es que
|
| 107 |
+
|
| 108 |
+
00:01:50.775 --> 00:01:53.814
|
| 109 |
+
f es un escalar, entonces le vamos a
|
| 110 |
+
|
| 111 |
+
00:01:53.814 --> 00:01:55.814
|
| 112 |
+
dar de comer vectores y nos va a
|
| 113 |
+
|
| 114 |
+
00:01:55.814 --> 00:01:58.730
|
| 115 |
+
arrojar escalares. Vamos a ver un ejemplo o
|
| 116 |
+
|
| 117 |
+
00:01:58.730 --> 00:02:03.230
|
| 118 |
+
cómo podríamos ejemplificar esto. Este de acá denotará
|
| 119 |
+
|
| 120 |
+
00:02:03.290 --> 00:02:06.110
|
| 121 |
+
nuestro conjunto dominio y este de acá denotará
|
| 122 |
+
|
| 123 |
+
00:02:06.250 --> 00:02:08.889
|
| 124 |
+
nuestro conjunto imagen de la función. Lo que
|
| 125 |
+
|
| 126 |
+
00:02:08.889 --> 00:02:13.465
|
| 127 |
+
hace una función es que agarra los elementos
|
| 128 |
+
|
| 129 |
+
00:02:13.465 --> 00:02:17.165
|
| 130 |
+
del dominio y los lleva hacia la imagen
|
| 131 |
+
|
| 132 |
+
00:02:17.185 --> 00:02:20.505
|
| 133 |
+
y, además, los lleva uno a uno. Esto
|
| 134 |
+
|
| 135 |
+
00:02:20.505 --> 00:02:23.385
|
| 136 |
+
no necesariamente es así, pero vamos a asumir
|
| 137 |
+
|
| 138 |
+
00:02:23.385 --> 00:02:25.385
|
| 139 |
+
que estas funciones son uno a uno, se
|
| 140 |
+
|
| 141 |
+
00:02:25.385 --> 00:02:29.760
|
| 142 |
+
llaman funciones biyectivas. Ahora, lo que hace la
|
| 143 |
+
|
| 144 |
+
00:02:29.760 --> 00:02:32.480
|
| 145 |
+
función es que, en este caso, va a
|
| 146 |
+
|
| 147 |
+
00:02:32.480 --> 00:02:35.040
|
| 148 |
+
tomar un círculo y este círculo lo va
|
| 149 |
+
|
| 150 |
+
00:02:35.040 --> 00:02:38.320
|
| 151 |
+
a transformar en un triángulo, y hay que
|
| 152 |
+
|
| 153 |
+
00:02:38.320 --> 00:02:40.800
|
| 154 |
+
ver que este triángulo no es igual a
|
| 155 |
+
|
| 156 |
+
00:02:40.800 --> 00:02:43.895
|
| 157 |
+
este triángulo y este círculo no es igual
|
| 158 |
+
|
| 159 |
+
00:02:43.895 --> 00:02:47.895
|
| 160 |
+
a este círculo. Entonces, siempre que llevemos un
|
| 161 |
+
|
| 162 |
+
00:02:47.895 --> 00:02:49.915
|
| 163 |
+
elemento, lo va a llevar a un elemento
|
| 164 |
+
|
| 165 |
+
00:02:50.615 --> 00:02:52.055
|
| 166 |
+
de un elemento de dominio lo va a
|
| 167 |
+
|
| 168 |
+
00:02:52.055 --> 00:02:54.135
|
| 169 |
+
llevar a un elemento de la imagen y,
|
| 170 |
+
|
| 171 |
+
00:02:54.135 --> 00:02:57.670
|
| 172 |
+
además, este elemento del dominio va a dar
|
| 173 |
+
|
| 174 |
+
00:02:57.670 --> 00:03:00.630
|
| 175 |
+
un elemento de la imagen al cual ningún
|
| 176 |
+
|
| 177 |
+
00:03:00.630 --> 00:03:02.630
|
| 178 |
+
otro de los elementos del dominio va a
|
| 179 |
+
|
| 180 |
+
00:03:02.630 --> 00:03:05.670
|
| 181 |
+
dar. Esto se llama la correspondencia uno a
|
| 182 |
+
|
| 183 |
+
00:03:05.670 --> 00:03:10.665
|
| 184 |
+
uno. Ahora, ¿qué es lo que está pasando
|
| 185 |
+
|
| 186 |
+
00:03:10.665 --> 00:03:13.944
|
| 187 |
+
con nosotros? Es exactamente lo mismo, solamente que,
|
| 188 |
+
|
| 189 |
+
00:03:13.944 --> 00:03:17.424
|
| 190 |
+
en lugar de tener círculos, tenemos vectores. Entonces,
|
| 191 |
+
|
| 192 |
+
00:03:17.424 --> 00:03:21.305
|
| 193 |
+
por ejemplo, nosotros tenemos el vector XYA este
|
| 194 |
+
|
| 195 |
+
00:03:21.305 --> 00:03:26.849
|
| 196 |
+
vector x lo lo transformamos en un escalar
|
| 197 |
+
|
| 198 |
+
00:03:27.230 --> 00:03:30.750
|
| 199 |
+
x, en un número. ¿Cómo lo hacemos? A
|
| 200 |
+
|
| 201 |
+
00:03:30.750 --> 00:03:38.215
|
| 202 |
+
través de la función f. Regresamos al notebook.
|
| 203 |
+
|
| 204 |
+
00:03:40.195 --> 00:03:42.675
|
| 205 |
+
Para describir de manera completa una función f
|
| 206 |
+
|
| 207 |
+
00:03:42.675 --> 00:03:44.935
|
| 208 |
+
que vaya de r en la r necesitamos
|
| 209 |
+
|
| 210 |
+
00:03:45.715 --> 00:03:47.715
|
| 211 |
+
saber o especificar cuál va a ser el
|
| 212 |
+
|
| 213 |
+
00:03:47.715 --> 00:03:53.670
|
| 214 |
+
valor para cualquier vector XRNDXDRN. Eso significará dar
|
| 215 |
+
|
| 216 |
+
00:03:53.670 --> 00:03:57.930
|
| 217 |
+
una forma explícita de la función. Por ejemplo,
|
| 218 |
+
|
| 219 |
+
00:03:58.470 --> 00:04:01.670
|
| 220 |
+
tomemos f de r cuatro ARYF va a
|
| 221 |
+
|
| 222 |
+
00:04:01.670 --> 00:04:04.230
|
| 223 |
+
estar dado por esa expresión de aquí, es
|
| 224 |
+
|
| 225 |
+
00:04:04.230 --> 00:04:06.545
|
| 226 |
+
decir, va a tomar este vector x, lo
|
| 227 |
+
|
| 228 |
+
00:04:06.545 --> 00:04:08.485
|
| 229 |
+
que va a hacer esta función es devolvernos
|
| 230 |
+
|
| 231 |
+
00:04:08.785 --> 00:04:11.345
|
| 232 |
+
la suma de sus componentes. Si vemos hasta
|
| 233 |
+
|
| 234 |
+
00:04:11.345 --> 00:04:13.905
|
| 235 |
+
x cero, x uno, x dos y x
|
| 236 |
+
|
| 237 |
+
00:04:13.905 --> 00:04:16.625
|
| 238 |
+
tres, es un cuatro vector y suma las
|
| 239 |
+
|
| 240 |
+
00:04:16.625 --> 00:04:21.719
|
| 241 |
+
cuatro componentes. Por ejemplo, si nos tomamos el
|
| 242 |
+
|
| 243 |
+
00:04:21.719 --> 00:04:24.319
|
| 244 |
+
cuatro vector cero, lo que haría es, como
|
| 245 |
+
|
| 246 |
+
00:04:24.319 --> 00:04:26.479
|
| 247 |
+
todas sus entradas son cero, es sumar cuatro
|
| 248 |
+
|
| 249 |
+
00:04:26.479 --> 00:04:29.520
|
| 250 |
+
veces cero, cero más cero más cero más
|
| 251 |
+
|
| 252 |
+
00:04:29.520 --> 00:04:32.505
|
| 253 |
+
cero, y esto nos arroja un cero. Si
|
| 254 |
+
|
| 255 |
+
00:04:32.505 --> 00:04:36.025
|
| 256 |
+
tomamos el cuatro vector uno coma cero coma
|
| 257 |
+
|
| 258 |
+
00:04:36.025 --> 00:04:38.985
|
| 259 |
+
cero coma cero, lo que haría sería una
|
| 260 |
+
|
| 261 |
+
00:04:38.985 --> 00:04:42.185
|
| 262 |
+
contribución de la primera entrada aquí, que es
|
| 263 |
+
|
| 264 |
+
00:04:42.185 --> 00:04:45.465
|
| 265 |
+
uno, y después las demás un cero, cero,
|
| 266 |
+
|
| 267 |
+
00:04:45.465 --> 00:04:48.160
|
| 268 |
+
cero, cero, y esto nos da un uno.
|
| 269 |
+
|
| 270 |
+
00:04:48.780 --> 00:04:51.820
|
| 271 |
+
Ahora, si evaluamos el vector uno coma uno
|
| 272 |
+
|
| 273 |
+
00:04:51.820 --> 00:04:53.900
|
| 274 |
+
coma uno coma uno, es decir, el uno
|
| 275 |
+
|
| 276 |
+
00:04:53.900 --> 00:04:58.540
|
| 277 |
+
vector, el uno vector de dimensión cuatro, entonces
|
| 278 |
+
|
| 279 |
+
00:04:58.540 --> 00:05:01.100
|
| 280 |
+
tenemos que sumaríamos de la primera entrada un
|
| 281 |
+
|
| 282 |
+
00:05:01.100 --> 00:05:03.155
|
| 283 |
+
uno, de la segunda entrada un uno, de
|
| 284 |
+
|
| 285 |
+
00:05:03.155 --> 00:05:04.754
|
| 286 |
+
la tercera entrada un uno y de la
|
| 287 |
+
|
| 288 |
+
00:05:04.754 --> 00:05:07.315
|
| 289 |
+
cuarta entrada un uno. Esto nos da uno
|
| 290 |
+
|
| 291 |
+
00:05:07.315 --> 00:05:09.235
|
| 292 |
+
más uno más uno más uno, y esto
|
| 293 |
+
|
| 294 |
+
00:05:09.235 --> 00:05:13.735
|
| 295 |
+
es un cuatro. Ahora, esto es la representación
|
| 296 |
+
|
| 297 |
+
00:05:13.955 --> 00:05:19.000
|
| 298 |
+
algebraica. ¿Cómo podemos hacer la representación computacional? Vamos
|
| 299 |
+
|
| 300 |
+
00:05:19.000 --> 00:05:22.060
|
| 301 |
+
a eso. Para eso primero vamos a llamar
|
| 302 |
+
|
| 303 |
+
00:05:22.920 --> 00:05:30.145
|
| 304 |
+
a nuestra biblioteca de siempre, Numpai. Y después
|
| 305 |
+
|
| 306 |
+
00:05:30.445 --> 00:05:33.405
|
| 307 |
+
vamos a declarar nuestra función. ¿Cómo vamos a
|
| 308 |
+
|
| 309 |
+
00:05:33.405 --> 00:05:37.085
|
| 310 |
+
declarar nuestra función? Bueno, tenemos que escribir esta
|
| 311 |
+
|
| 312 |
+
00:05:37.085 --> 00:05:41.965
|
| 313 |
+
expresión, esta expresión algebraica, tenemos que escribirla de
|
| 314 |
+
|
| 315 |
+
00:05:41.965 --> 00:05:44.870
|
| 316 |
+
una forma computacional, y la forma de hacerlo
|
| 317 |
+
|
| 318 |
+
00:05:44.870 --> 00:05:46.730
|
| 319 |
+
va a ser a través de la palabra
|
| 320 |
+
|
| 321 |
+
00:05:47.030 --> 00:05:51.770
|
| 322 |
+
reservada def. Entonces, definimos def, la función f,
|
| 323 |
+
|
| 324 |
+
00:05:52.310 --> 00:05:55.430
|
| 325 |
+
que recibe un vector x, ¿y qué nos
|
| 326 |
+
|
| 327 |
+
00:05:55.430 --> 00:05:59.735
|
| 328 |
+
va a devolver? ¿Qué nos devolvería? Nos devolvería
|
| 329 |
+
|
| 330 |
+
00:05:59.875 --> 00:06:03.315
|
| 331 |
+
la suma de las componentes del vector, y
|
| 332 |
+
|
| 333 |
+
00:06:03.315 --> 00:06:06.995
|
| 334 |
+
podemos hacerlo así, de manera explícita, como x
|
| 335 |
+
|
| 336 |
+
00:06:06.995 --> 00:06:15.350
|
| 337 |
+
cero más x uno más x dos más
|
| 338 |
+
|
| 339 |
+
00:06:15.570 --> 00:06:25.905
|
| 340 |
+
x tres. Eso está perfecto y está totalmente
|
| 341 |
+
|
| 342 |
+
00:06:25.965 --> 00:06:29.645
|
| 343 |
+
bien, pero de aquí en adelante podemos empezar
|
| 344 |
+
|
| 345 |
+
00:06:29.645 --> 00:06:32.065
|
| 346 |
+
y voy a introducir también funciones de NumPy.
|
| 347 |
+
|
| 348 |
+
00:06:32.445 --> 00:06:34.845
|
| 349 |
+
Y, en este caso, hay una función en
|
| 350 |
+
|
| 351 |
+
00:06:34.845 --> 00:06:38.390
|
| 352 |
+
NumPy que hace exactamente esto. Lo que hace
|
| 353 |
+
|
| 354 |
+
00:06:38.390 --> 00:06:42.310
|
| 355 |
+
es n p zoom, llamamos ANP zoom, DXY
|
| 356 |
+
|
| 357 |
+
00:06:42.310 --> 00:06:44.230
|
| 358 |
+
lo que va a hacer es sumar todas
|
| 359 |
+
|
| 360 |
+
00:06:44.230 --> 00:06:49.290
|
| 361 |
+
las componentes del vector, exactamente esta función. Ahora,
|
| 362 |
+
|
| 363 |
+
00:06:49.430 --> 00:06:53.215
|
| 364 |
+
notemos que esta función no necesariamente tiene que
|
| 365 |
+
|
| 366 |
+
00:06:53.215 --> 00:06:55.375
|
| 367 |
+
ir de r cuatro a r, le podemos
|
| 368 |
+
|
| 369 |
+
00:06:55.375 --> 00:06:57.695
|
| 370 |
+
dar el vector de cualquier tamaño que sea
|
| 371 |
+
|
| 372 |
+
00:06:57.695 --> 00:06:59.695
|
| 373 |
+
y lo va a sumar. En particular, vamos
|
| 374 |
+
|
| 375 |
+
00:06:59.695 --> 00:07:05.810
|
| 376 |
+
a utilizarla con cuatro vectores. Ahora vamos a
|
| 377 |
+
|
| 378 |
+
00:07:05.810 --> 00:07:09.650
|
| 379 |
+
evaluar esta función en estos puntos de aquí
|
| 380 |
+
|
| 381 |
+
00:07:09.650 --> 00:07:11.410
|
| 382 |
+
y vamos a corroborar que nos den los
|
| 383 |
+
|
| 384 |
+
00:07:11.410 --> 00:07:15.090
|
| 385 |
+
resultados adecuados. Vamos a, entonces, a hacer un
|
| 386 |
+
|
| 387 |
+
00:07:15.090 --> 00:07:22.805
|
| 388 |
+
print de f evaluada en el vector cero.
|
| 389 |
+
|
| 390 |
+
00:07:23.305 --> 00:07:28.345
|
| 391 |
+
Eso es igual y aquí evaluamos f y
|
| 392 |
+
|
| 393 |
+
00:07:28.345 --> 00:07:34.960
|
| 394 |
+
declaramos adentro el vector cero. Cero coma cero
|
| 395 |
+
|
| 396 |
+
00:07:34.960 --> 00:07:38.340
|
| 397 |
+
coma cero coma cero, y nos da exactamente
|
| 398 |
+
|
| 399 |
+
00:07:38.639 --> 00:07:45.380
|
| 400 |
+
un cero. Vamos a evaluar entonces el vector
|
| 401 |
+
|
| 402 |
+
00:07:46.000 --> 00:07:49.695
|
| 403 |
+
uno coma cero coma cero coma cero. Uno
|
| 404 |
+
|
| 405 |
+
00:07:49.695 --> 00:07:53.335
|
| 406 |
+
coma cero coma cero coma cero. Y lo
|
| 407 |
+
|
| 408 |
+
00:07:53.335 --> 00:07:57.335
|
| 409 |
+
declaramos acá también. Y tenemos que nos da
|
| 410 |
+
|
| 411 |
+
00:07:57.335 --> 00:08:00.155
|
| 412 |
+
uno, como acá arriba también lo habíamos hecho.
|
| 413 |
+
|
| 414 |
+
00:08:01.870 --> 00:08:04.350
|
| 415 |
+
Y por último, vamos a evaluar el uno
|
| 416 |
+
|
| 417 |
+
00:08:04.350 --> 00:08:18.055
|
| 418 |
+
uno uno. Y esto nos da cuatro. Vamos
|
| 419 |
+
|
| 420 |
+
00:08:18.055 --> 00:08:23.095
|
| 421 |
+
a otro ejemplo. Vamos a considerar g una
|
| 422 |
+
|
| 423 |
+
00:08:23.095 --> 00:08:25.975
|
| 424 |
+
función que toma tres vectores y los transforma
|
| 425 |
+
|
| 426 |
+
00:08:25.975 --> 00:08:29.175
|
| 427 |
+
en escalares, y que está definida por esta
|
| 428 |
+
|
| 429 |
+
00:08:29.175 --> 00:08:32.520
|
| 430 |
+
relación de aquí. G toma el vector x
|
| 431 |
+
|
| 432 |
+
00:08:32.660 --> 00:08:34.900
|
| 433 |
+
y lo convierte en el escalar x cero,
|
| 434 |
+
|
| 435 |
+
00:08:34.900 --> 00:08:37.720
|
| 436 |
+
es decir, nos devuelve únicamente la primera entrada.
|
| 437 |
+
|
| 438 |
+
00:08:38.740 --> 00:08:41.620
|
| 439 |
+
De esta manera, si nosotros evaluamos el tres
|
| 440 |
+
|
| 441 |
+
00:08:41.620 --> 00:08:44.034
|
| 442 |
+
vector cero, nos daría un cero, ya que
|
| 443 |
+
|
| 444 |
+
00:08:44.034 --> 00:08:46.035
|
| 445 |
+
la primera entrada es cero, bueno, en realidad
|
| 446 |
+
|
| 447 |
+
00:08:46.035 --> 00:08:47.715
|
| 448 |
+
todas las entradas son cero en el vector
|
| 449 |
+
|
| 450 |
+
00:08:47.715 --> 00:08:51.235
|
| 451 |
+
cero. Luego, si tomamos el vector cero coma
|
| 452 |
+
|
| 453 |
+
00:08:51.235 --> 00:08:53.475
|
| 454 |
+
cero coma uno, que es el tres, este
|
| 455 |
+
|
| 456 |
+
00:08:53.475 --> 00:08:56.320
|
| 457 |
+
es un tres vector, nos regresará la primera
|
| 458 |
+
|
| 459 |
+
00:08:56.320 --> 00:08:59.760
|
| 460 |
+
entrada únicamente, que sería cero también. Y si
|
| 461 |
+
|
| 462 |
+
00:08:59.760 --> 00:09:04.260
|
| 463 |
+
tomamos el vector uno cero cuatro, nos regresaría
|
| 464 |
+
|
| 465 |
+
00:09:04.480 --> 00:09:07.040
|
| 466 |
+
un uno, ya que nos regresa únicamente la
|
| 467 |
+
|
| 468 |
+
00:09:07.040 --> 00:09:09.635
|
| 469 |
+
primera entrada. Vamos a ver cómo programar esta
|
| 470 |
+
|
| 471 |
+
00:09:09.635 --> 00:09:14.967
|
| 472 |
+
función. Entonces, usamos la palabra reservada dev g
|
| 473 |
+
|
| 474 |
+
00:09:15.411 --> 00:09:18.115
|
| 475 |
+
de x, y vamos a decirle que nos
|
| 476 |
+
|
| 477 |
+
00:09:18.115 --> 00:09:22.295
|
| 478 |
+
regrese, ahora sí explícitamente, únicamente la componente cero.
|
| 479 |
+
|
| 480 |
+
00:09:24.030 --> 00:09:30.030
|
| 481 |
+
Y entonces evaluemos estas funciones. Estos estas función
|
| 482 |
+
|
| 483 |
+
00:09:30.030 --> 00:09:35.550
|
| 484 |
+
estas, bueno, esta función en estos vectores. Por
|
| 485 |
+
|
| 486 |
+
00:09:35.550 --> 00:09:38.085
|
| 487 |
+
ejemplo, para el vector cero, pues tenemos que
|
| 488 |
+
|
| 489 |
+
00:09:38.085 --> 00:09:40.725
|
| 490 |
+
esto es simplemente cero, y esa es la
|
| 491 |
+
|
| 492 |
+
00:09:40.725 --> 00:09:43.605
|
| 493 |
+
función g. Aquí también llamamos a la función
|
| 494 |
+
|
| 495 |
+
00:09:43.605 --> 00:09:48.165
|
| 496 |
+
g y sabemos que evalúa tres vectores. Uno,
|
| 497 |
+
|
| 498 |
+
00:09:48.165 --> 00:09:54.699
|
| 499 |
+
dos, tres. Y nos da exactamente cero. Ahora
|
| 500 |
+
|
| 501 |
+
00:09:54.699 --> 00:09:58.300
|
| 502 |
+
evaluemos en cero coma cero coma uno, y
|
| 503 |
+
|
| 504 |
+
00:09:58.300 --> 00:10:04.865
|
| 505 |
+
nos debería de dar un cero. Evaluamos de
|
| 506 |
+
|
| 507 |
+
00:10:04.865 --> 00:10:07.685
|
| 508 |
+
este lado y nos da también un cero.
|
| 509 |
+
|
| 510 |
+
00:10:08.144 --> 00:10:11.685
|
| 511 |
+
Y, por último, evaluemos la función en el
|
| 512 |
+
|
| 513 |
+
00:10:12.305 --> 00:10:16.305
|
| 514 |
+
uno coma cero coma cuatro, uno coma cero
|
| 515 |
+
|
| 516 |
+
00:10:16.305 --> 00:10:19.769
|
| 517 |
+
coma cuatro. Y eso nos debería de dar
|
| 518 |
+
|
| 519 |
+
00:10:19.769 --> 00:10:24.750
|
| 520 |
+
un uno, uno coma cero coma cuatro. Perfecto,
|
| 521 |
+
|
| 522 |
+
00:10:24.890 --> 00:10:27.790
|
| 523 |
+
nos da exactamente los resultados que estábamos esperando.
|
| 524 |
+
|
| 525 |
+
00:10:29.690 --> 00:10:32.915
|
| 526 |
+
Ahora, esas funciones, las que vimos la función
|
| 527 |
+
|
| 528 |
+
00:10:32.915 --> 00:10:35.895
|
| 529 |
+
f y la función g, tienen nombres especiales.
|
| 530 |
+
|
| 531 |
+
00:10:36.435 --> 00:10:39.555
|
| 532 |
+
F se llama la función suma y, esencialmente,
|
| 533 |
+
|
| 534 |
+
00:10:39.555 --> 00:10:41.465
|
| 535 |
+
lo que hace la función suma es que
|
| 536 |
+
|
| 537 |
+
00:10:41.465 --> 00:10:44.220
|
| 538 |
+
toma tu vector y lo convierte en un
|
| 539 |
+
|
| 540 |
+
00:10:44.220 --> 00:10:47.680
|
| 541 |
+
escalar por medio de sumar los elementos, las
|
| 542 |
+
|
| 543 |
+
00:10:47.740 --> 00:10:51.680
|
| 544 |
+
entradas de ese vector. Si tuviéramos la función
|
| 545 |
+
|
| 546 |
+
00:10:51.740 --> 00:10:54.540
|
| 547 |
+
suma para tres vectores, sumaría x cero más
|
| 548 |
+
|
| 549 |
+
00:10:54.540 --> 00:10:56.685
|
| 550 |
+
x uno más x dos. Si la tuviéramos
|
| 551 |
+
|
| 552 |
+
00:10:56.685 --> 00:10:59.405
|
| 553 |
+
para cinco vectores sumaría x cero más x
|
| 554 |
+
|
| 555 |
+
00:10:59.405 --> 00:11:01.405
|
| 556 |
+
uno más x dos más x tres más
|
| 557 |
+
|
| 558 |
+
00:11:01.405 --> 00:11:05.245
|
| 559 |
+
x cuatro. Y en el caso de la
|
| 560 |
+
|
| 561 |
+
00:11:05.245 --> 00:11:07.805
|
| 562 |
+
función g, la función g se llama la
|
| 563 |
+
|
| 564 |
+
00:11:07.805 --> 00:11:11.560
|
| 565 |
+
proyección sobre x cero y básicamente lo que
|
| 566 |
+
|
| 567 |
+
00:11:11.560 --> 00:11:14.600
|
| 568 |
+
esto nos da es únicamente la componente x
|
| 569 |
+
|
| 570 |
+
00:11:14.600 --> 00:11:19.399
|
| 571 |
+
cero. Como vemos, para R tres, para un
|
| 572 |
+
|
| 573 |
+
00:11:19.399 --> 00:11:23.240
|
| 574 |
+
espacio de dimensión tres, tenemos tres funciones de
|
| 575 |
+
|
| 576 |
+
00:11:23.240 --> 00:11:26.165
|
| 577 |
+
proyección. Tenemos la proyección sobre el x cero,
|
| 578 |
+
|
| 579 |
+
00:11:26.165 --> 00:11:28.245
|
| 580 |
+
tenemos la proyección sobre el x uno y
|
| 581 |
+
|
| 582 |
+
00:11:28.245 --> 00:11:31.205
|
| 583 |
+
tenemos la proyección sobre el x dos. Tenemos
|
| 584 |
+
|
| 585 |
+
00:11:31.205 --> 00:11:33.625
|
| 586 |
+
el número de proyecciones que sea la dimensión.
|
| 587 |
+
|
| 588 |
+
00:11:34.005 --> 00:11:36.745
|
| 589 |
+
En el caso de que tengamos un espacio
|
| 590 |
+
|
| 591 |
+
00:11:36.765 --> 00:11:39.765
|
| 592 |
+
de dimensión dos, tendríamos dos funciones de proyección,
|
| 593 |
+
|
| 594 |
+
00:11:39.765 --> 00:11:41.340
|
| 595 |
+
la que va sobre x cero y la
|
| 596 |
+
|
| 597 |
+
00:11:41.340 --> 00:11:43.740
|
| 598 |
+
que va sobre x uno. Hasta aquí llega
|
| 599 |
+
|
| 600 |
+
00:11:43.740 --> 00:11:46.380
|
| 601 |
+
esta clase. Nos vemos en la próxima. Vamos
|
| 602 |
+
|
| 603 |
+
00:11:46.380 --> 00:11:50.220
|
| 604 |
+
a seguir con algunas funciones especiales. Nos vemos
|
| 605 |
+
|
| 606 |
+
00:11:50.220 --> 00:11:50.720
|
| 607 |
+
allá.
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1uHLHnGyq5fgP917lwwh3JDNhNtr3EZhw?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_1_ca9b4768-2259-46e4-8050-1f11fcb161f2.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_2_a7a8105b-6058-423e-83cf-1a120fa9dbea.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_t1_a1432d51-f125-4847-b35a-aece8c65e623.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/01-fl_t2_40750924-caa5-49c7-ba5d-2d82e4ed6b3c.png
ADDED
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/01-funciones_lineales_c6d37f3c-958c-4696-be10-f62382807f2c.ipynb
ADDED
|
@@ -0,0 +1,603 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 5. Funciones Lineales"
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"La notación $f: \\mathbb{R}^{n}\\to \\mathbb{R}$ significa que $f$ es una función con **dominio** en $\\mathbb{R}^{n}$ e imagen en $\\mathbb{R}$, es decir, que toma un $n$-vector y lo convierte en un escalar. \n",
|
| 15 |
+
"La función puede denotarse como $f\\left(\\mathbf{x}\\right)= f\\left(x_{0},x_{1},\\dots,x_{n-1}\\right)$ donde $\\mathbf{x}\\in \\mathbb{R}^{n}$ y $x_{i}$ son las entradas del vector. \n",
|
| 16 |
+
"\n",
|
| 17 |
+
"Es necesario enfatizar que $f(\\mathbf{x})$ es un escalar. "
|
| 18 |
+
]
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"cell_type": "markdown",
|
| 22 |
+
"metadata": {},
|
| 23 |
+
"source": [
|
| 24 |
+
"Para describir una función $f: \\mathbb{R}^{n} \\to \\mathbb{R}$ tenemos que especificar el cual es el valor para cualquier vector $\\mathbf{x}\\in\\mathbb{R}^{n}$. Por ejemplo, sea $f: \\mathbb{R}^{4} \\to \\mathbb{R}$ definida por\n",
|
| 25 |
+
"$$\n",
|
| 26 |
+
"f(\\mathbf{x}) = x_{0} + x_{1} + x_{2} + x_{3}\n",
|
| 27 |
+
"$$"
|
| 28 |
+
]
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"cell_type": "markdown",
|
| 32 |
+
"metadata": {},
|
| 33 |
+
"source": [
|
| 34 |
+
"Así pues el valor de cualquier $4$-vector queda bien definido, por ejemplo:\n",
|
| 35 |
+
"\n",
|
| 36 |
+
"* $f(\\mathbf{0}) = 0 + 0+ 0+0 = 0$\n",
|
| 37 |
+
"\n",
|
| 38 |
+
"* $f([1\\; 0\\; 0\\; 0]) = 1+0+0+0 = 1$\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"* $f([1\\; 1\\; 1\\; 1]) = 1+1+1+1 = 4$"
|
| 41 |
+
]
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"cell_type": "code",
|
| 45 |
+
"execution_count": 15,
|
| 46 |
+
"metadata": {},
|
| 47 |
+
"outputs": [],
|
| 48 |
+
"source": [
|
| 49 |
+
"import numpy as np"
|
| 50 |
+
]
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"cell_type": "code",
|
| 54 |
+
"execution_count": 16,
|
| 55 |
+
"metadata": {},
|
| 56 |
+
"outputs": [],
|
| 57 |
+
"source": [
|
| 58 |
+
"def f(x):\n",
|
| 59 |
+
" return np.sum(x)"
|
| 60 |
+
]
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"cell_type": "code",
|
| 64 |
+
"execution_count": 17,
|
| 65 |
+
"metadata": {},
|
| 66 |
+
"outputs": [
|
| 67 |
+
{
|
| 68 |
+
"name": "stdout",
|
| 69 |
+
"output_type": "stream",
|
| 70 |
+
"text": [
|
| 71 |
+
"f(0) = 0\n"
|
| 72 |
+
]
|
| 73 |
+
}
|
| 74 |
+
],
|
| 75 |
+
"source": [
|
| 76 |
+
"print('f(0) = ',f(np.array([0,0,0,0])))"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"cell_type": "code",
|
| 81 |
+
"execution_count": 18,
|
| 82 |
+
"metadata": {},
|
| 83 |
+
"outputs": [
|
| 84 |
+
{
|
| 85 |
+
"name": "stdout",
|
| 86 |
+
"output_type": "stream",
|
| 87 |
+
"text": [
|
| 88 |
+
"f([1,0,0,0]) = 1\n"
|
| 89 |
+
]
|
| 90 |
+
}
|
| 91 |
+
],
|
| 92 |
+
"source": [
|
| 93 |
+
"print('f([1,0,0,0]) = ',f(np.array([1,0,0,0])))"
|
| 94 |
+
]
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"cell_type": "code",
|
| 98 |
+
"execution_count": 19,
|
| 99 |
+
"metadata": {},
|
| 100 |
+
"outputs": [
|
| 101 |
+
{
|
| 102 |
+
"name": "stdout",
|
| 103 |
+
"output_type": "stream",
|
| 104 |
+
"text": [
|
| 105 |
+
"f([1,1,1,1]) = 4\n"
|
| 106 |
+
]
|
| 107 |
+
}
|
| 108 |
+
],
|
| 109 |
+
"source": [
|
| 110 |
+
"print('f([1,1,1,1]) = ',f(np.array([1,1,1,1])))"
|
| 111 |
+
]
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"cell_type": "markdown",
|
| 115 |
+
"metadata": {},
|
| 116 |
+
"source": [
|
| 117 |
+
"Como otro ejemplo, sea $g: \\mathbb{R}^{3} \\to \\mathbb{R}$ definida por \n",
|
| 118 |
+
"$$\n",
|
| 119 |
+
"g(\\mathbf{x}) = x_{0}\n",
|
| 120 |
+
"$$"
|
| 121 |
+
]
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"cell_type": "markdown",
|
| 125 |
+
"metadata": {},
|
| 126 |
+
"source": [
|
| 127 |
+
"Tenemos entonces:\n",
|
| 128 |
+
"\n",
|
| 129 |
+
"* $g(\\mathbf{0}) = 0$ \n",
|
| 130 |
+
"\n",
|
| 131 |
+
"* $g([0\\; 0\\; 1]) = 0$\n",
|
| 132 |
+
"\n",
|
| 133 |
+
"* $g([1\\; 0\\; 4]) = 1$"
|
| 134 |
+
]
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"cell_type": "code",
|
| 138 |
+
"execution_count": 20,
|
| 139 |
+
"metadata": {},
|
| 140 |
+
"outputs": [],
|
| 141 |
+
"source": [
|
| 142 |
+
"def g(x):\n",
|
| 143 |
+
" return x[0]"
|
| 144 |
+
]
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"cell_type": "code",
|
| 148 |
+
"execution_count": 21,
|
| 149 |
+
"metadata": {},
|
| 150 |
+
"outputs": [
|
| 151 |
+
{
|
| 152 |
+
"name": "stdout",
|
| 153 |
+
"output_type": "stream",
|
| 154 |
+
"text": [
|
| 155 |
+
"g(0) = 0\n"
|
| 156 |
+
]
|
| 157 |
+
}
|
| 158 |
+
],
|
| 159 |
+
"source": [
|
| 160 |
+
"print('g(0) = ',g(np.array([0,0,0])))"
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"cell_type": "code",
|
| 165 |
+
"execution_count": 22,
|
| 166 |
+
"metadata": {},
|
| 167 |
+
"outputs": [
|
| 168 |
+
{
|
| 169 |
+
"name": "stdout",
|
| 170 |
+
"output_type": "stream",
|
| 171 |
+
"text": [
|
| 172 |
+
"g([0,0,1]) = 0\n"
|
| 173 |
+
]
|
| 174 |
+
}
|
| 175 |
+
],
|
| 176 |
+
"source": [
|
| 177 |
+
"print('g([0,0,1]) = ',g(np.array([0,0,1])))"
|
| 178 |
+
]
|
| 179 |
+
},
|
| 180 |
+
{
|
| 181 |
+
"cell_type": "code",
|
| 182 |
+
"execution_count": 23,
|
| 183 |
+
"metadata": {},
|
| 184 |
+
"outputs": [
|
| 185 |
+
{
|
| 186 |
+
"name": "stdout",
|
| 187 |
+
"output_type": "stream",
|
| 188 |
+
"text": [
|
| 189 |
+
"g([1,0,4]) = 1\n"
|
| 190 |
+
]
|
| 191 |
+
}
|
| 192 |
+
],
|
| 193 |
+
"source": [
|
| 194 |
+
"print('g([1,0,4]) = ',g(np.array([1,0,4])))"
|
| 195 |
+
]
|
| 196 |
+
},
|
| 197 |
+
{
|
| 198 |
+
"cell_type": "markdown",
|
| 199 |
+
"metadata": {},
|
| 200 |
+
"source": [
|
| 201 |
+
"Podemos notar que en este caso $f(\\mathbf{x})$ corresponde a la _función suma_ y $g(\\mathbf{x})$ a proyección sobre $x_{0}$."
|
| 202 |
+
]
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"cell_type": "markdown",
|
| 206 |
+
"metadata": {},
|
| 207 |
+
"source": [
|
| 208 |
+
"## 5.1 Algunas funciones"
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"cell_type": "markdown",
|
| 213 |
+
"metadata": {},
|
| 214 |
+
"source": [
|
| 215 |
+
"**Función producto interno**. Si una función tiene como aurgmentos dos $n$-vectores el dominio de la función se expresará como $\\mathbb{R}^{n}\\times\\mathbb{R}^{n}$. Por ejemplo, sea $f:\\mathbb{R}^{n}\\times\\mathbb{R}^{n} \\to \\mathbb{R}$ definida por:\n",
|
| 216 |
+
"\n",
|
| 217 |
+
"$$\n",
|
| 218 |
+
"f(\\mathbf{a},\\mathbf{b}) = a_{0}b_{0} + a_{1}b_{1} + \\cdots + a_{n-1}b_{n-1}\n",
|
| 219 |
+
"$$"
|
| 220 |
+
]
|
| 221 |
+
},
|
| 222 |
+
{
|
| 223 |
+
"cell_type": "markdown",
|
| 224 |
+
"metadata": {},
|
| 225 |
+
"source": [
|
| 226 |
+
"Notemos que podemos expresar lo anterior como\n",
|
| 227 |
+
"\n",
|
| 228 |
+
"$$\n",
|
| 229 |
+
"f(\\mathbf{a},\\mathbf{b}) = \\mathbf{a}^{T}\\mathbf{b}\n",
|
| 230 |
+
"$$\n",
|
| 231 |
+
"\n",
|
| 232 |
+
"Esta función recibe el nombre de función producto interno. Si quisieramos dejar fijo un vector, digamos el vector $\\mathbf{a}$ podemos recurrir a la siguiente notación:\n",
|
| 233 |
+
"\n",
|
| 234 |
+
"$$\n",
|
| 235 |
+
"f_{\\mathbf{a}}(\\mathbf{b}) = \\mathbf{a}^{T}\\mathbf{b}\n",
|
| 236 |
+
"$$\n",
|
| 237 |
+
"\n",
|
| 238 |
+
"Esto significará que $\\mathbf{a}$ estará fijo mientras que $\\mathbf{b}$ será el que variará. "
|
| 239 |
+
]
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"cell_type": "markdown",
|
| 243 |
+
"metadata": {},
|
| 244 |
+
"source": [
|
| 245 |
+
"**Superposición y linealidad.** La función producto interno satisface la siguiente propiedad:\n",
|
| 246 |
+
"\n",
|
| 247 |
+
"$$\n",
|
| 248 |
+
"\\begin{eqnarray}\n",
|
| 249 |
+
"f_\\mathbf{x}(\\alpha\\mathbf{a}+\\beta\\mathbf{b}) &=& \\mathbf{x}^{T}(\\alpha\\mathbf{a}+\\beta\\mathbf{b}) \\\\\n",
|
| 250 |
+
" &=& \\mathbf{x}^{T}(\\alpha\\mathbf{a})+\\mathbf{x}^{T}(\\beta\\mathbf{b}) \\\\\n",
|
| 251 |
+
" &=& \\alpha(\\mathbf{x}^{T}\\mathbf{a}) + \\beta(\\mathbf{x}^{T}\\mathbf{b}) \\\\\n",
|
| 252 |
+
" &=& \\alpha f_{\\mathbf{x}}(\\mathbf{a}) + \\beta f_{\\mathbf{x}}(\\mathbf{b})\n",
|
| 253 |
+
"\\end{eqnarray}\n",
|
| 254 |
+
"$$\n",
|
| 255 |
+
"\n",
|
| 256 |
+
"Si la función $g$ cumple que $g(\\alpha\\mathbf{x}+\\beta\\mathbf{y}) = \\alpha g(\\mathbf{x})+\\beta g(\\mathbf{y})$ decimos que la función $g$ es una **función lineal.** "
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"cell_type": "markdown",
|
| 261 |
+
"metadata": {},
|
| 262 |
+
"source": [
|
| 263 |
+
"Si $f$ es una función lineal la _linearidad_ se extiende a cualquier combinación lineal y no solamente a una combinación de dos vectores, tenemos \n",
|
| 264 |
+
"\n",
|
| 265 |
+
"$$\n",
|
| 266 |
+
"f(\\alpha_{0}\\mathbf{x_{0}} + \\alpha_{1}\\mathbf{x_{1}} + \\alpha_{2}\\mathbf{x_{2}} + \\cdots \n",
|
| 267 |
+
" + \\alpha_{n-1}\\mathbf{x_{n-1}}) = \\alpha_{0}f(\\mathbf{x_{0}}) + \\alpha_{1}f(\\mathbf{x_{1}}) + \\alpha_{2}f(\\mathbf{x_{2}}) + \\cdots + \\alpha_{n-1}f(\\mathbf{x_{n-1}})\n",
|
| 268 |
+
"$$\n"
|
| 269 |
+
]
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"cell_type": "markdown",
|
| 273 |
+
"metadata": {},
|
| 274 |
+
"source": [
|
| 275 |
+
"Si una función $g:\\mathbf{R}^{n} \\to \\mathbf{R}$ es lineal sabemo que cumple $g(\\alpha\\mathbf{x}+\\beta\\mathbf{y}) = \\alpha g(\\mathbf{x})+\\beta g(\\mathbf{y})$, propiedad que llamaremos _superposición_. Ahora, la superposición puede ser separada en dos propiedades:\n",
|
| 276 |
+
"\n",
|
| 277 |
+
"* _Homogeneidad_. Para cualquier $n$-vector $\\mathbf{x}$ y cualquier escalar $\\alpha$ tenemos que $g(\\alpha \\mathbf{x}) = \\alpha g(\\mathbf{x})$\n",
|
| 278 |
+
"\n",
|
| 279 |
+
"* _Aditividad_. Para cualquier $n$-vector $\\mathbf{x}$ y $\\mathbf{y}$ tenemos que $g(\\mathbf{x}+\\mathbf{y}) = g(\\mathbf{x})+g(\\mathbf{y})$\n",
|
| 280 |
+
"\n",
|
| 281 |
+
"La homogeneidad nos dice que escalar el argumento es igual que escalar el valor de la función; la aditividad nos indica que sumar los argumentos es igual que sumar los valores de la función. "
|
| 282 |
+
]
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"cell_type": "code",
|
| 286 |
+
"execution_count": 24,
|
| 287 |
+
"metadata": {},
|
| 288 |
+
"outputs": [],
|
| 289 |
+
"source": [
|
| 290 |
+
"a = np.array([1,1,1,1])\n",
|
| 291 |
+
"b = np.array([1,0,1,0])\n",
|
| 292 |
+
"x,y = 1,-2"
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"cell_type": "code",
|
| 297 |
+
"execution_count": 25,
|
| 298 |
+
"metadata": {},
|
| 299 |
+
"outputs": [
|
| 300 |
+
{
|
| 301 |
+
"name": "stdout",
|
| 302 |
+
"output_type": "stream",
|
| 303 |
+
"text": [
|
| 304 |
+
"f(x*a + y*b) = 0\n"
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"source": [
|
| 309 |
+
"print('f(x*a + y*b) = ',f(x*a + y*b))"
|
| 310 |
+
]
|
| 311 |
+
},
|
| 312 |
+
{
|
| 313 |
+
"cell_type": "code",
|
| 314 |
+
"execution_count": 27,
|
| 315 |
+
"metadata": {},
|
| 316 |
+
"outputs": [
|
| 317 |
+
{
|
| 318 |
+
"name": "stdout",
|
| 319 |
+
"output_type": "stream",
|
| 320 |
+
"text": [
|
| 321 |
+
"x*f(a) + y*f(b) = 0\n"
|
| 322 |
+
]
|
| 323 |
+
}
|
| 324 |
+
],
|
| 325 |
+
"source": [
|
| 326 |
+
"print('x*f(a) + y*f(b) =',x*f(a) + y*f(b))"
|
| 327 |
+
]
|
| 328 |
+
},
|
| 329 |
+
{
|
| 330 |
+
"cell_type": "markdown",
|
| 331 |
+
"metadata": {},
|
| 332 |
+
"source": [
|
| 333 |
+
"**Representación producto interno de una función lineal.** En matemáticas las verdades, cuando son verdades, se demuestran usando argumentos principalmente lógicos. Estas verdades vienen empaquetadas en _teoremas_, _corolarios_ y _lemas_. Si no podemos demostrarlo pero creemos que es verdad lo llamamos _conjetura_. Por ejemplo, consideremos el siguiente teorema:"
|
| 334 |
+
]
|
| 335 |
+
},
|
| 336 |
+
{
|
| 337 |
+
"cell_type": "markdown",
|
| 338 |
+
"metadata": {},
|
| 339 |
+
"source": [
|
| 340 |
+
"**Teorema.** Los ángulos a ambos lados de una recta, que intersecta a otra, siempre suman $180^\\circ$ \n",
|
| 341 |
+
"\n",
|
| 342 |
+
""
|
| 343 |
+
]
|
| 344 |
+
},
|
| 345 |
+
{
|
| 346 |
+
"cell_type": "markdown",
|
| 347 |
+
"metadata": {},
|
| 348 |
+
"source": [
|
| 349 |
+
"*Demostración*: Supongamos que $\\alpha + \\beta \\neq 180$ eso quiere decir que $\\alpha + \\beta > 180$ o $\\alpha + \\beta < 180$. Ahora, pensemos en la linea **f** pasa por el diámetro, es decir, corta a la mitad al círculo. \n",
|
| 350 |
+
"\n",
|
| 351 |
+
"\n",
|
| 352 |
+
"\n",
|
| 353 |
+
"Al pasar por el diámetro sabemos que ambos lados tenemos un ángulo de $180^\\circ$. Llamemos a ese ángulo $\\Omega=180^\\circ$. Ahora, llamemos **g** a una línea que pase por otro diámetro. \n",
|
| 354 |
+
"\n",
|
| 355 |
+
""
|
| 356 |
+
]
|
| 357 |
+
},
|
| 358 |
+
{
|
| 359 |
+
"cell_type": "markdown",
|
| 360 |
+
"metadata": {},
|
| 361 |
+
"source": [
|
| 362 |
+
"Entonces, al seccionar con **g** tenemos nuevamente los ángulos $\\alpha$ y $\\beta$ entonces tenemos que $\\alpha + \\beta = \\Omega$ pero asumimos que $\\alpha + \\beta \\neq 180^\\circ$ lo cuyal nos lleva a una contradicción $!$ por ello lo anteior debe ser cierto. "
|
| 363 |
+
]
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"cell_type": "markdown",
|
| 367 |
+
"metadata": {},
|
| 368 |
+
"source": [
|
| 369 |
+
"**Corolario.** Cuando dos líneas se intersectan los ángulos opuestos entre ellos son iguales.\n",
|
| 370 |
+
"\n",
|
| 371 |
+
""
|
| 372 |
+
]
|
| 373 |
+
},
|
| 374 |
+
{
|
| 375 |
+
"cell_type": "markdown",
|
| 376 |
+
"metadata": {},
|
| 377 |
+
"source": [
|
| 378 |
+
"*Demostración:* Sabemos que $\\beta + \\alpha = 180^\\circ$ entonces $\\alpha = 180^\\circ - \\beta$. Por otro lado, sabemos que también $\\gamma + \\beta = 180^\\circ$ así pues $\\gamma = 180^\\circ - \\beta$. Juntando lo anteior tenemos que:\n",
|
| 379 |
+
"\n",
|
| 380 |
+
"$$\n",
|
| 381 |
+
"\\alpha = 180^\\circ - \\beta = \\gamma\n",
|
| 382 |
+
"$$\n",
|
| 383 |
+
"\n",
|
| 384 |
+
"Lo mismo es posible aplicarse para $\\beta$ y $\\delta$. **QED**. "
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"cell_type": "markdown",
|
| 389 |
+
"metadata": {},
|
| 390 |
+
"source": [
|
| 391 |
+
"Ya explorados los teoremas y los corolarios veamos la siguiente proposición: \n",
|
| 392 |
+
"\n",
|
| 393 |
+
"**Proposición:** Una función definida como el producto punto de sus argumentos y algún vector fijo es lineal. Lo inverso es también verdadero: si una función es lineal entonces puede ser expresada como el producto interno de sus argumentos y algún vector fijo."
|
| 394 |
+
]
|
| 395 |
+
},
|
| 396 |
+
{
|
| 397 |
+
"cell_type": "markdown",
|
| 398 |
+
"metadata": {},
|
| 399 |
+
"source": [
|
| 400 |
+
"Ahora, sea $f$ una función escalar de $n$-vectores que además es lineal. Entonces decimos que _existe_ un $n$-vector $\\mathbf{a}$ tal que $f(\\mathbf{x}) = \\mathbf{a}^{T}\\mathbf{x}$ para cualquier $\\mathbf{x}$. A la expresión $\\mathbf{a}^{T}\\mathbf{x}$ le llamaremos *representación producto punto* de $f$. "
|
| 401 |
+
]
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"cell_type": "markdown",
|
| 405 |
+
"metadata": {},
|
| 406 |
+
"source": [
|
| 407 |
+
"Otra propiedad interesante es que la *representación producto punto* de $f$ como $\\mathbf{a}^{T}\\mathbf{x}$ es única. "
|
| 408 |
+
]
|
| 409 |
+
},
|
| 410 |
+
{
|
| 411 |
+
"cell_type": "markdown",
|
| 412 |
+
"metadata": {},
|
| 413 |
+
"source": [
|
| 414 |
+
"$ f(\\mathbf{x}) = \\displaystyle\\sum_{i}^{n-1} x_{i}$ si n=4 esto lo podemos expresar como $f(\\mathbf{x}) = \\mathbf{a}^{T}\\mathbf{x}$ donde:\n",
|
| 415 |
+
"$$\n",
|
| 416 |
+
"a^T = [1,1,1,1]\n",
|
| 417 |
+
"$$"
|
| 418 |
+
]
|
| 419 |
+
},
|
| 420 |
+
{
|
| 421 |
+
"cell_type": "markdown",
|
| 422 |
+
"metadata": {},
|
| 423 |
+
"source": [
|
| 424 |
+
"**Promedio.** El promedio de una $n$-vector es definida como\n",
|
| 425 |
+
"\n",
|
| 426 |
+
"$$\n",
|
| 427 |
+
"f(x) = (x_{0}+x_{1}+\\cdots+x_{n-1})/n\n",
|
| 428 |
+
"$$\n",
|
| 429 |
+
"\n",
|
| 430 |
+
"Y se denota como $\\mathbf{avg}(x)$, notemos que este $\\mathbf{avg}(x) = a^{T}x$ con\n",
|
| 431 |
+
"\n",
|
| 432 |
+
"$$\n",
|
| 433 |
+
"a^T = [1/n\\; 1/n\\; \\cdots \\; 1/n] = \\mathbf{1}/n\n",
|
| 434 |
+
"$$"
|
| 435 |
+
]
|
| 436 |
+
},
|
| 437 |
+
{
|
| 438 |
+
"cell_type": "markdown",
|
| 439 |
+
"metadata": {},
|
| 440 |
+
"source": [
|
| 441 |
+
"**Máximo.** Para $n$-vectores $x$ la función que nos da el máximo coeficiente de un vector es $f(x)=max\\{x_{0},x_{1},\\dots,x_{n-1}\\}$ y no es lineal. Para demostrar esto voy a suponer que es lineal y dar un contraejemplo. Si tomamos $x^T = [1,-1]$ y $y^T=[-1,1]$ con $\\alpha = 1/2$ y $\\beta = 1/2$. Entonces tenemos que:\n",
|
| 442 |
+
"\n",
|
| 443 |
+
"$$\n",
|
| 444 |
+
"f(\\alpha x + \\beta y) = 0 \\neq \\alpha f(x) + \\beta f(y) = 1\n",
|
| 445 |
+
"$$"
|
| 446 |
+
]
|
| 447 |
+
},
|
| 448 |
+
{
|
| 449 |
+
"cell_type": "code",
|
| 450 |
+
"execution_count": 28,
|
| 451 |
+
"metadata": {},
|
| 452 |
+
"outputs": [],
|
| 453 |
+
"source": [
|
| 454 |
+
"def MAX(x):\n",
|
| 455 |
+
" return np.max(x)"
|
| 456 |
+
]
|
| 457 |
+
},
|
| 458 |
+
{
|
| 459 |
+
"cell_type": "code",
|
| 460 |
+
"execution_count": 29,
|
| 461 |
+
"metadata": {},
|
| 462 |
+
"outputs": [
|
| 463 |
+
{
|
| 464 |
+
"name": "stdout",
|
| 465 |
+
"output_type": "stream",
|
| 466 |
+
"text": [
|
| 467 |
+
"MAX([1,0,2]) = 2\n"
|
| 468 |
+
]
|
| 469 |
+
}
|
| 470 |
+
],
|
| 471 |
+
"source": [
|
| 472 |
+
"print('MAX([1,0,2]) = ', MAX(np.array([1,0,2])))"
|
| 473 |
+
]
|
| 474 |
+
},
|
| 475 |
+
{
|
| 476 |
+
"cell_type": "code",
|
| 477 |
+
"execution_count": 30,
|
| 478 |
+
"metadata": {},
|
| 479 |
+
"outputs": [],
|
| 480 |
+
"source": [
|
| 481 |
+
"x = np.array([1,-1])\n",
|
| 482 |
+
"y = np.array([-1,1])\n",
|
| 483 |
+
"a,b = 1/2, 1/2"
|
| 484 |
+
]
|
| 485 |
+
},
|
| 486 |
+
{
|
| 487 |
+
"cell_type": "code",
|
| 488 |
+
"execution_count": 31,
|
| 489 |
+
"metadata": {},
|
| 490 |
+
"outputs": [
|
| 491 |
+
{
|
| 492 |
+
"name": "stdout",
|
| 493 |
+
"output_type": "stream",
|
| 494 |
+
"text": [
|
| 495 |
+
"MAX(a*x + b*y) = 0.0\n"
|
| 496 |
+
]
|
| 497 |
+
}
|
| 498 |
+
],
|
| 499 |
+
"source": [
|
| 500 |
+
"print('MAX(a*x + b*y) = ', MAX(a*x + b*y))"
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"cell_type": "code",
|
| 505 |
+
"execution_count": 32,
|
| 506 |
+
"metadata": {},
|
| 507 |
+
"outputs": [
|
| 508 |
+
{
|
| 509 |
+
"name": "stdout",
|
| 510 |
+
"output_type": "stream",
|
| 511 |
+
"text": [
|
| 512 |
+
"a*MAX(x) + b*MAX(y) = 1.0\n"
|
| 513 |
+
]
|
| 514 |
+
}
|
| 515 |
+
],
|
| 516 |
+
"source": [
|
| 517 |
+
"print('a*MAX(x) + b*MAX(y) = ', a*MAX(x) + b*MAX(y))"
|
| 518 |
+
]
|
| 519 |
+
},
|
| 520 |
+
{
|
| 521 |
+
"cell_type": "markdown",
|
| 522 |
+
"metadata": {},
|
| 523 |
+
"source": [
|
| 524 |
+
"## 5.2 Algunas consideraciones"
|
| 525 |
+
]
|
| 526 |
+
},
|
| 527 |
+
{
|
| 528 |
+
"cell_type": "markdown",
|
| 529 |
+
"metadata": {},
|
| 530 |
+
"source": [
|
| 531 |
+
"**Funciones Afines.** Una función $f:\\mathbb{R}^{n} \\to \\mathbb{R}$ es afín si y solo si puede ser expresada como $f(x) = a^{T}x + b$ para algún $n$-vector $a$ y un escalar $b$, es llamado algunas veces *offset* o *bias*. Por ejemplo si consideramos la siguiente función:\n",
|
| 532 |
+
"\n",
|
| 533 |
+
"$$\n",
|
| 534 |
+
"f(x) = 3 + x_{0}+x_{1}+x_{2}\n",
|
| 535 |
+
"$$\n",
|
| 536 |
+
"\n",
|
| 537 |
+
"La podemos representar como \n",
|
| 538 |
+
"\n",
|
| 539 |
+
"$$\n",
|
| 540 |
+
"f(x) = a^T x + b = [1 \\; 1 \\; 1] x + 3\n",
|
| 541 |
+
"$$"
|
| 542 |
+
]
|
| 543 |
+
},
|
| 544 |
+
{
|
| 545 |
+
"cell_type": "markdown",
|
| 546 |
+
"metadata": {},
|
| 547 |
+
"source": [
|
| 548 |
+
"Una función afín cumplirá la superposición si y solo si la suma de de los coeficientes de la combinación lineal es uno. Es decir, si $f$ es una función afín entonces $f(\\alpha x + \\beta y) = \\alpha f(x)+ \\beta f(y)$ si y solo si $ \\alpha + \\beta = 1$.\n",
|
| 549 |
+
"\n",
|
| 550 |
+
"*Demostración.* Como $f$ es afín tenemos que $f(x)=a^T x + b$ entonces, usando que $ \\alpha + \\beta = 1$\n",
|
| 551 |
+
"\n",
|
| 552 |
+
"$$\n",
|
| 553 |
+
"\\begin{eqnarray}\n",
|
| 554 |
+
"f(\\alpha x + \\beta y) &=& a^T (\\alpha x + \\beta y) + b \\\\\n",
|
| 555 |
+
" &=& a^T \\alpha x + a^T \\beta y + (\\alpha + \\beta) b \\\\\n",
|
| 556 |
+
" &=& \\alpha a^T x + \\alpha b + \\beta a^T y + \\beta b \\\\\n",
|
| 557 |
+
" &=& \\alpha (a^T x + b) + \\beta (a^T y + b) \\\\\n",
|
| 558 |
+
" &=& \\alpha f(x) + \\beta f(y)\n",
|
| 559 |
+
"\\end{eqnarray}\n",
|
| 560 |
+
"$$"
|
| 561 |
+
]
|
| 562 |
+
},
|
| 563 |
+
{
|
| 564 |
+
"cell_type": "markdown",
|
| 565 |
+
"metadata": {},
|
| 566 |
+
"source": [
|
| 567 |
+
"**Ejercicio.** Determina si las siguientes funciones son lineales o no:\n",
|
| 568 |
+
"* $f(\\mathbf{x}) = x_{n-1} - x_{0}$\n",
|
| 569 |
+
"\n",
|
| 570 |
+
"* Si $\\mathbf{x}\\in\\mathbb{R}^{4}$ y $f:\\mathbb{R}^{4} \\to \\mathbb{R}$ definida como $f(\\mathbf{x})=x_{3}+(x_{3}-x_{2})$"
|
| 571 |
+
]
|
| 572 |
+
},
|
| 573 |
+
{
|
| 574 |
+
"cell_type": "markdown",
|
| 575 |
+
"metadata": {},
|
| 576 |
+
"source": [
|
| 577 |
+
"**Problema: Potencia en un clúster de procesadores y temperatura.** La temperatura $T$ de un cluster de tres procesadores es una función afín de la potencia de los procesadores $P^T = [P_{0}\\; P_{1}\\; P_{2}]$. Cuando los tres procesadores están en reposo tenemos que $P^T = [10\\; 10\\; 10]$ lo cual nos da una temperatura de $T=35$. Cuando el primer procesador opera a potencia absoluta tenemos que $P^T = [100\\; 10\\; 10]$ y la temperatura se eleva a $T=60$. Cuando el segundo procesador opera a su máxima capacidad tenemos $P^T = [10\\; 100\\; 10]$ y la temperatura se eleva a $T=75$. Cuando el tercer procesador opera a máxima potencia mientras que los otros dos están en reposo tenemos que $P^T = [10\\; 10\\; 100]$ y la temperatura se elevea a $T=65$. Supongamos que los tres procesadores operan a máxima potencia ¿Qué temperatura se alcanza? La temperatura de fusión de los procesadores (a la que los procesadores se derriten) es cerca de $150$ ¿Cuál es la potencia máxima que pueden alcanzar los procesadores para que $T\\le 150$? \n",
|
| 578 |
+
"*Hint:* $T(P) = a^T P + b$"
|
| 579 |
+
]
|
| 580 |
+
}
|
| 581 |
+
],
|
| 582 |
+
"metadata": {
|
| 583 |
+
"kernelspec": {
|
| 584 |
+
"display_name": "Python 3",
|
| 585 |
+
"language": "python",
|
| 586 |
+
"name": "python3"
|
| 587 |
+
},
|
| 588 |
+
"language_info": {
|
| 589 |
+
"codemirror_mode": {
|
| 590 |
+
"name": "ipython",
|
| 591 |
+
"version": 3
|
| 592 |
+
},
|
| 593 |
+
"file_extension": ".py",
|
| 594 |
+
"mimetype": "text/x-python",
|
| 595 |
+
"name": "python",
|
| 596 |
+
"nbconvert_exporter": "python",
|
| 597 |
+
"pygments_lexer": "ipython3",
|
| 598 |
+
"version": "3.7.3"
|
| 599 |
+
}
|
| 600 |
+
},
|
| 601 |
+
"nbformat": 4,
|
| 602 |
+
"nbformat_minor": 4
|
| 603 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Funciones Lineales y Propiedades de Superposición.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1ca61ff5682b9d3bc6450546dcfb81d4fdcb8426a6526458ea4a841ee48bc17b
|
| 3 |
+
size 139603434
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Funciones Lineales y Propiedades de Superposición.vtt
ADDED
|
@@ -0,0 +1,700 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00:03.040 --> 00:00:05.200
|
| 4 |
+
Hola, te doy la bienvenida de nuevo. La
|
| 5 |
+
|
| 6 |
+
00:00:05.200 --> 00:00:08.080
|
| 7 |
+
clase pasada definimos las funciones y vimos cómo
|
| 8 |
+
|
| 9 |
+
00:00:08.080 --> 00:00:11.200
|
| 10 |
+
operar con ellas de manera algebraica. También vimos
|
| 11 |
+
|
| 12 |
+
00:00:11.200 --> 00:00:13.920
|
| 13 |
+
que necesitábamos tener las funciones definidas de manera
|
| 14 |
+
|
| 15 |
+
00:00:13.920 --> 00:00:16.575
|
| 16 |
+
explícita para poder operar con ellas y vimos
|
| 17 |
+
|
| 18 |
+
00:00:16.575 --> 00:00:19.975
|
| 19 |
+
cómo implementar algún tipo de ellas en Python.
|
| 20 |
+
|
| 21 |
+
00:00:19.975 --> 00:00:22.055
|
| 22 |
+
Lo que vamos a ver ahora son algunas
|
| 23 |
+
|
| 24 |
+
00:00:22.055 --> 00:00:25.755
|
| 25 |
+
funciones lineales. Sin más, vamos a la computadora.
|
| 26 |
+
|
| 27 |
+
00:00:27.494 --> 00:00:29.654
|
| 28 |
+
Este es el notebook que vimos la clase
|
| 29 |
+
|
| 30 |
+
00:00:29.654 --> 00:00:32.479
|
| 31 |
+
pasada. Vamos a ver la parte de algunas
|
| 32 |
+
|
| 33 |
+
00:00:32.479 --> 00:00:37.360
|
| 34 |
+
funciones. Ahora bien, vamos a empezar con la
|
| 35 |
+
|
| 36 |
+
00:00:37.360 --> 00:00:41.520
|
| 37 |
+
función producto interno. Vamos a decir que Eso
|
| 38 |
+
|
| 39 |
+
00:00:41.520 --> 00:00:44.125
|
| 40 |
+
eso es muy importante. Lo que vamos a
|
| 41 |
+
|
| 42 |
+
00:00:44.125 --> 00:00:46.365
|
| 43 |
+
mencionar ahora es que si una función tiene
|
| 44 |
+
|
| 45 |
+
00:00:46.365 --> 00:00:49.405
|
| 46 |
+
como argumento dos n vectores, vamos a expresar
|
| 47 |
+
|
| 48 |
+
00:00:49.405 --> 00:00:52.405
|
| 49 |
+
el función, el dominio de la función como
|
| 50 |
+
|
| 51 |
+
00:00:52.405 --> 00:00:54.605
|
| 52 |
+
r n cruz r n, asumiendo que los
|
| 53 |
+
|
| 54 |
+
00:00:54.605 --> 00:00:57.690
|
| 55 |
+
vectores viven en r n. Notemos la diferencia
|
| 56 |
+
|
| 57 |
+
00:00:57.750 --> 00:01:00.230
|
| 58 |
+
entre esta notación y la notación que habíamos
|
| 59 |
+
|
| 60 |
+
00:01:00.230 --> 00:01:02.630
|
| 61 |
+
venido manejando acá, en este caso, un r
|
| 62 |
+
|
| 63 |
+
00:01:02.630 --> 00:01:05.750
|
| 64 |
+
tres y, en este caso, una rn. Entonces,
|
| 65 |
+
|
| 66 |
+
00:01:05.750 --> 00:01:08.890
|
| 67 |
+
básicamente, lo que nos está denotando rn cruz
|
| 68 |
+
|
| 69 |
+
00:01:08.950 --> 00:01:12.515
|
| 70 |
+
rn es que vamos a tomar dos vectores,
|
| 71 |
+
|
| 72 |
+
00:01:12.515 --> 00:01:14.674
|
| 73 |
+
la función va a tomar dos n vectores
|
| 74 |
+
|
| 75 |
+
00:01:14.674 --> 00:01:17.955
|
| 76 |
+
como argumentos. Si tuviera la función tres n
|
| 77 |
+
|
| 78 |
+
00:01:17.955 --> 00:01:21.955
|
| 79 |
+
vectores como argumentos, estaríamos denotando r n cruz
|
| 80 |
+
|
| 81 |
+
00:01:21.955 --> 00:01:24.650
|
| 82 |
+
r n cruz r n. Sé que a
|
| 83 |
+
|
| 84 |
+
00:01:24.650 --> 00:01:27.370
|
| 85 |
+
este momento la cantidad de notación que empezamos
|
| 86 |
+
|
| 87 |
+
00:01:27.370 --> 00:01:30.490
|
| 88 |
+
a utilizar se va aumentando, pero el propósito
|
| 89 |
+
|
| 90 |
+
00:01:30.490 --> 00:01:33.130
|
| 91 |
+
de este curso es que, a través de
|
| 92 |
+
|
| 93 |
+
00:01:33.130 --> 00:01:36.190
|
| 94 |
+
este curso, puedas estar preparado para el siguiente
|
| 95 |
+
|
| 96 |
+
00:01:36.410 --> 00:01:39.885
|
| 97 |
+
curso, en donde es totalmente necesaria. Y para
|
| 98 |
+
|
| 99 |
+
00:01:39.885 --> 00:01:42.125
|
| 100 |
+
cursos siguientes también va a ser muy necesario
|
| 101 |
+
|
| 102 |
+
00:01:42.125 --> 00:01:43.165
|
| 103 |
+
y va a ser muy útil que ya
|
| 104 |
+
|
| 105 |
+
00:01:43.165 --> 00:01:47.245
|
| 106 |
+
puedas dar ese tipo de cosas. Ahora, digamos
|
| 107 |
+
|
| 108 |
+
00:01:47.245 --> 00:01:49.645
|
| 109 |
+
entonces que tenemos una función que va de
|
| 110 |
+
|
| 111 |
+
00:01:49.645 --> 00:01:53.130
|
| 112 |
+
r n cruz RNAR, es decir, toma dos
|
| 113 |
+
|
| 114 |
+
00:01:53.130 --> 00:01:55.690
|
| 115 |
+
vectores y esos dos vectores los convierte en
|
| 116 |
+
|
| 117 |
+
00:01:55.690 --> 00:01:58.410
|
| 118 |
+
un escalar. Ya hemos visto una función que
|
| 119 |
+
|
| 120 |
+
00:01:58.410 --> 00:02:02.810
|
| 121 |
+
hace esto, un una operación. Las clases pasadas
|
| 122 |
+
|
| 123 |
+
00:02:02.810 --> 00:02:05.530
|
| 124 |
+
vimos el producto interno y vimos que era
|
| 125 |
+
|
| 126 |
+
00:02:05.530 --> 00:02:10.695
|
| 127 |
+
dos dos vectores, se multiplicaban entre ellos, y
|
| 128 |
+
|
| 129 |
+
00:02:10.695 --> 00:02:13.115
|
| 130 |
+
lo que nos daba al final era exactamente
|
| 131 |
+
|
| 132 |
+
00:02:13.495 --> 00:02:16.135
|
| 133 |
+
un escalar. Vamos a ver cómo esta función
|
| 134 |
+
|
| 135 |
+
00:02:16.135 --> 00:02:19.435
|
| 136 |
+
reproduce eso. Entonces, tenemos a la función a
|
| 137 |
+
|
| 138 |
+
00:02:19.815 --> 00:02:22.315
|
| 139 |
+
que consume, o que le damos de comer,
|
| 140 |
+
|
| 141 |
+
00:02:23.280 --> 00:02:25.380
|
| 142 |
+
dos vectores, el vector a y el vector
|
| 143 |
+
|
| 144 |
+
00:02:25.600 --> 00:02:29.060
|
| 145 |
+
b, y esto se define únicamente como a
|
| 146 |
+
|
| 147 |
+
00:02:29.600 --> 00:02:31.680
|
| 148 |
+
cero por b cero, es decir, las componentes,
|
| 149 |
+
|
| 150 |
+
00:02:31.680 --> 00:02:34.000
|
| 151 |
+
las primeras componentes multiplicadas de a y de
|
| 152 |
+
|
| 153 |
+
00:02:34.000 --> 00:02:36.365
|
| 154 |
+
b, más a uno por b uno, más
|
| 155 |
+
|
| 156 |
+
00:02:36.365 --> 00:02:38.365
|
| 157 |
+
a dos por b dos, más a n
|
| 158 |
+
|
| 159 |
+
00:02:38.365 --> 00:02:44.445
|
| 160 |
+
por b n menos uno. Entonces, notemos que
|
| 161 |
+
|
| 162 |
+
00:02:44.445 --> 00:02:47.085
|
| 163 |
+
esta de aquí realmente lo podemos expresar como
|
| 164 |
+
|
| 165 |
+
00:02:47.085 --> 00:02:50.170
|
| 166 |
+
una multiplicación de vectores, y esto lo podemos
|
| 167 |
+
|
| 168 |
+
00:02:50.170 --> 00:02:53.130
|
| 169 |
+
expresar como f de a b como a
|
| 170 |
+
|
| 171 |
+
00:02:53.130 --> 00:02:56.330
|
| 172 |
+
traspuesta por b, donde a traspuesta es este
|
| 173 |
+
|
| 174 |
+
00:02:56.330 --> 00:02:58.489
|
| 175 |
+
vector de aquí y b traspuesta es este
|
| 176 |
+
|
| 177 |
+
00:02:58.489 --> 00:03:02.650
|
| 178 |
+
vector de acá. Esta función recibe el nombre
|
| 179 |
+
|
| 180 |
+
00:03:02.650 --> 00:03:06.355
|
| 181 |
+
de función producto interno, y esto lo hace
|
| 182 |
+
|
| 183 |
+
00:03:06.355 --> 00:03:09.954
|
| 184 |
+
totalmente porque es un símil al producto interno
|
| 185 |
+
|
| 186 |
+
00:03:09.954 --> 00:03:14.034
|
| 187 |
+
que habíamos venido viendo. Entonces, vamos a ver
|
| 188 |
+
|
| 189 |
+
00:03:14.034 --> 00:03:16.114
|
| 190 |
+
un poco más de esta función. Si nosotros
|
| 191 |
+
|
| 192 |
+
00:03:16.114 --> 00:03:19.080
|
| 193 |
+
quisiéramos dejar el vector fijo, digamos, el vector
|
| 194 |
+
|
| 195 |
+
00:03:19.080 --> 00:03:21.640
|
| 196 |
+
a solamente por decir un vector, la anotación
|
| 197 |
+
|
| 198 |
+
00:03:21.640 --> 00:03:25.659
|
| 199 |
+
que seguiríamos es f subíndice del vector a
|
| 200 |
+
|
| 201 |
+
00:03:26.040 --> 00:03:28.940
|
| 202 |
+
evaluada en b, y esto es a traspuesta
|
| 203 |
+
|
| 204 |
+
00:03:29.159 --> 00:03:31.799
|
| 205 |
+
por b. Ahora, ¿para qué nos serviría en
|
| 206 |
+
|
| 207 |
+
00:03:31.799 --> 00:03:35.004
|
| 208 |
+
esta clase de funciones? Nosotros vimos la clase
|
| 209 |
+
|
| 210 |
+
00:03:35.004 --> 00:03:38.765
|
| 211 |
+
pasada, o en clases pasadas, que el producto
|
| 212 |
+
|
| 213 |
+
00:03:38.765 --> 00:03:41.484
|
| 214 |
+
punto era un indicador de de ortogonalidad, es
|
| 215 |
+
|
| 216 |
+
00:03:41.484 --> 00:03:43.805
|
| 217 |
+
decir, si el producto punto entre dos vectores
|
| 218 |
+
|
| 219 |
+
00:03:43.805 --> 00:03:46.385
|
| 220 |
+
es igual a cero, significa que esos vectores
|
| 221 |
+
|
| 222 |
+
00:03:46.525 --> 00:03:49.160
|
| 223 |
+
estaban a noventa grados, lo que significa que
|
| 224 |
+
|
| 225 |
+
00:03:49.160 --> 00:03:52.200
|
| 226 |
+
los vectores son ortogonales. Será muy útil en
|
| 227 |
+
|
| 228 |
+
00:03:52.200 --> 00:03:54.680
|
| 229 |
+
el futuro conocer este tipo de funciones y
|
| 230 |
+
|
| 231 |
+
00:03:54.680 --> 00:03:57.640
|
| 232 |
+
saber que podemos comparar un vector contra una
|
| 233 |
+
|
| 234 |
+
00:03:57.640 --> 00:04:00.760
|
| 235 |
+
serie de vectores para saber contra cuál es
|
| 236 |
+
|
| 237 |
+
00:04:00.760 --> 00:04:05.885
|
| 238 |
+
ese ortogonal. Entonces, empecemos aquí, en donde esta
|
| 239 |
+
|
| 240 |
+
00:04:05.885 --> 00:04:08.945
|
| 241 |
+
función va a dejar fijo al vector b,
|
| 242 |
+
|
| 243 |
+
00:04:09.005 --> 00:04:10.845
|
| 244 |
+
al vector a, y vamos a empezar a
|
| 245 |
+
|
| 246 |
+
00:04:10.845 --> 00:04:14.525
|
| 247 |
+
variar el vector b. Ahora, vamos a ver
|
| 248 |
+
|
| 249 |
+
00:04:14.525 --> 00:04:16.910
|
| 250 |
+
una propiedad. Esa propiedad es la propiedad de
|
| 251 |
+
|
| 252 |
+
00:04:16.910 --> 00:04:19.310
|
| 253 |
+
la superposición, y vamos a ver cómo la
|
| 254 |
+
|
| 255 |
+
00:04:19.310 --> 00:04:22.770
|
| 256 |
+
superposición nos lleva a la linealidad o linealidad.
|
| 257 |
+
|
| 258 |
+
00:04:24.510 --> 00:04:28.430
|
| 259 |
+
La función producto interno satisface esta propiedad, y
|
| 260 |
+
|
| 261 |
+
00:04:28.430 --> 00:04:31.385
|
| 262 |
+
es que, si la función producto interno dejamos
|
| 263 |
+
|
| 264 |
+
00:04:31.445 --> 00:04:34.245
|
| 265 |
+
fijo un vector x y la evaluamos en
|
| 266 |
+
|
| 267 |
+
00:04:34.245 --> 00:04:36.725
|
| 268 |
+
la combinación, en esta combinación lineal, en este
|
| 269 |
+
|
| 270 |
+
00:04:36.725 --> 00:04:39.685
|
| 271 |
+
vector como combinación lineal, lo que tenemos es
|
| 272 |
+
|
| 273 |
+
00:04:39.685 --> 00:04:42.759
|
| 274 |
+
que eso es, partiendo de la definición, x
|
| 275 |
+
|
| 276 |
+
00:04:42.759 --> 00:04:47.240
|
| 277 |
+
transpuesta, estamos dejando fijo al vector x, por
|
| 278 |
+
|
| 279 |
+
00:04:47.240 --> 00:04:49.159
|
| 280 |
+
el vector en el que está siendo evaluado,
|
| 281 |
+
|
| 282 |
+
00:04:49.159 --> 00:04:51.259
|
| 283 |
+
que en este caso es esta combinación lineal,
|
| 284 |
+
|
| 285 |
+
00:04:52.120 --> 00:04:57.014
|
| 286 |
+
alfa a más beta b. Ahora, por las
|
| 287 |
+
|
| 288 |
+
00:04:57.014 --> 00:05:00.854
|
| 289 |
+
propiedades que vimos, la multiplicación se distribuye sobre
|
| 290 |
+
|
| 291 |
+
00:05:00.854 --> 00:05:04.935
|
| 292 |
+
la suma, entonces esta multiplicación de vectores es
|
| 293 |
+
|
| 294 |
+
00:05:04.935 --> 00:05:09.220
|
| 295 |
+
exactamente lo mismo que la multiplicación por cada
|
| 296 |
+
|
| 297 |
+
00:05:09.220 --> 00:05:12.520
|
| 298 |
+
una de de los elementos de la combinación
|
| 299 |
+
|
| 300 |
+
00:05:12.660 --> 00:05:18.340
|
| 301 |
+
lineal. Entonces, tenemos que x transpuesta es, que
|
| 302 |
+
|
| 303 |
+
00:05:18.340 --> 00:05:20.660
|
| 304 |
+
x transpuesta por la suma de alfa más
|
| 305 |
+
|
| 306 |
+
00:05:20.660 --> 00:05:24.225
|
| 307 |
+
a más beta más b es igual a
|
| 308 |
+
|
| 309 |
+
00:05:24.245 --> 00:05:28.805
|
| 310 |
+
x traspuesta por alfa veces a más x
|
| 311 |
+
|
| 312 |
+
00:05:28.805 --> 00:05:32.885
|
| 313 |
+
traspuesta por beta veces b. Ahora sabemos que
|
| 314 |
+
|
| 315 |
+
00:05:32.885 --> 00:05:37.700
|
| 316 |
+
la multiplicación entre escalares y vectores con muta,
|
| 317 |
+
|
| 318 |
+
00:05:38.000 --> 00:05:40.639
|
| 319 |
+
y de igual manera es asociativa, por eso
|
| 320 |
+
|
| 321 |
+
00:05:40.639 --> 00:05:46.980
|
| 322 |
+
podemos escribir alfa veces x traspuesta por a,
|
| 323 |
+
|
| 324 |
+
00:05:47.815 --> 00:05:51.035
|
| 325 |
+
es decir, este escalar lo pasamos para acá.
|
| 326 |
+
|
| 327 |
+
00:05:51.575 --> 00:05:55.175
|
| 328 |
+
Y de igual manera podemos escribir beta veces
|
| 329 |
+
|
| 330 |
+
00:05:55.175 --> 00:05:58.775
|
| 331 |
+
x transpuesta por b. Este escalar lo pasamos
|
| 332 |
+
|
| 333 |
+
00:05:58.775 --> 00:06:01.710
|
| 334 |
+
para acá y multiplica x transpuesta por b.
|
| 335 |
+
|
| 336 |
+
00:06:02.509 --> 00:06:05.410
|
| 337 |
+
Ahora, si nos damos cuenta, esto de aquí
|
| 338 |
+
|
| 339 |
+
00:06:05.470 --> 00:06:08.530
|
| 340 |
+
y esto de aquí corresponden con las definiciones
|
| 341 |
+
|
| 342 |
+
00:06:08.990 --> 00:06:12.430
|
| 343 |
+
que habíamos dado para la función producto interno
|
| 344 |
+
|
| 345 |
+
00:06:12.430 --> 00:06:15.414
|
| 346 |
+
evaluado en algún vector. En este caso, aquí
|
| 347 |
+
|
| 348 |
+
00:06:15.414 --> 00:06:17.854
|
| 349 |
+
estamos dejando fijo al vector x y la
|
| 350 |
+
|
| 351 |
+
00:06:17.854 --> 00:06:21.615
|
| 352 |
+
estamos evaluando en a. Entonces, esto de aquí
|
| 353 |
+
|
| 354 |
+
00:06:21.615 --> 00:06:26.995
|
| 355 |
+
lo podemos escribir como f de X0F subíndice
|
| 356 |
+
|
| 357 |
+
00:06:27.215 --> 00:06:29.880
|
| 358 |
+
vector x con con x fijo evaluado en
|
| 359 |
+
|
| 360 |
+
00:06:30.420 --> 00:06:36.260
|
| 361 |
+
A0FX de a. Y tenemos un escalar afuera,
|
| 362 |
+
|
| 363 |
+
00:06:36.260 --> 00:06:40.420
|
| 364 |
+
pasa normal, pasa multiplicando. Entonces, alfa veces f
|
| 365 |
+
|
| 366 |
+
00:06:40.420 --> 00:06:43.225
|
| 367 |
+
de x a es igual a alfa por
|
| 368 |
+
|
| 369 |
+
00:06:43.225 --> 00:06:46.025
|
| 370 |
+
x traspuesta de a, y lo mismo hacemos
|
| 371 |
+
|
| 372 |
+
00:06:46.025 --> 00:06:49.645
|
| 373 |
+
para beta, en donde podemos expresar a beta
|
| 374 |
+
|
| 375 |
+
00:06:49.945 --> 00:06:52.365
|
| 376 |
+
veces f de x en b es exactamente
|
| 377 |
+
|
| 378 |
+
00:06:53.545 --> 00:07:00.990
|
| 379 |
+
esta expresión. Ahora bien, notemos que si una
|
| 380 |
+
|
| 381 |
+
00:07:00.990 --> 00:07:05.070
|
| 382 |
+
función, llamémosle a esa función g, cumple que
|
| 383 |
+
|
| 384 |
+
00:07:05.070 --> 00:07:09.345
|
| 385 |
+
g evaluada en esta combinación lineal es igual
|
| 386 |
+
|
| 387 |
+
00:07:09.884 --> 00:07:13.564
|
| 388 |
+
a esta combinación lineal de escalares, notemos que
|
| 389 |
+
|
| 390 |
+
00:07:13.564 --> 00:07:16.044
|
| 391 |
+
aquí tenemos una combinación lineal de vectores y
|
| 392 |
+
|
| 393 |
+
00:07:16.044 --> 00:07:19.324
|
| 394 |
+
aquí de escalares, ya que g de XYG
|
| 395 |
+
|
| 396 |
+
00:07:19.324 --> 00:07:22.365
|
| 397 |
+
de y son escalares, o simplemente a esta
|
| 398 |
+
|
| 399 |
+
00:07:22.365 --> 00:07:25.530
|
| 400 |
+
suma, entonces decimos que g es una función
|
| 401 |
+
|
| 402 |
+
00:07:25.530 --> 00:07:28.730
|
| 403 |
+
lineal. Si cumplen esta propiedad, decimos que es
|
| 404 |
+
|
| 405 |
+
00:07:28.730 --> 00:07:31.930
|
| 406 |
+
lineal. También notemos que si f es una
|
| 407 |
+
|
| 408 |
+
00:07:31.930 --> 00:07:34.650
|
| 409 |
+
función lineal, llamemos de f a una función
|
| 410 |
+
|
| 411 |
+
00:07:34.650 --> 00:07:39.175
|
| 412 |
+
cualquiera, la linealidad o la linealidad se extiende
|
| 413 |
+
|
| 414 |
+
00:07:39.175 --> 00:07:42.135
|
| 415 |
+
a cualquier combinación lineal, no únicamente a una
|
| 416 |
+
|
| 417 |
+
00:07:42.135 --> 00:07:44.375
|
| 418 |
+
combinación lineal de dos vectores, sino puede ser
|
| 419 |
+
|
| 420 |
+
00:07:44.375 --> 00:07:47.495
|
| 421 |
+
una combinación lineal de n vectores. Por ejemplo,
|
| 422 |
+
|
| 423 |
+
00:07:47.495 --> 00:07:51.050
|
| 424 |
+
consideremos esta combinación lineal de aquí. Vamos a
|
| 425 |
+
|
| 426 |
+
00:07:51.050 --> 00:07:54.170
|
| 427 |
+
evaluar f en esta combinación lineal, pero como
|
| 428 |
+
|
| 429 |
+
00:07:54.170 --> 00:07:57.210
|
| 430 |
+
sabemos que f es lineal, entonces cumple esta
|
| 431 |
+
|
| 432 |
+
00:07:57.210 --> 00:08:01.530
|
| 433 |
+
propiedad, y la cumple para cualesquiera vectores y
|
| 434 |
+
|
| 435 |
+
00:08:01.530 --> 00:08:05.544
|
| 436 |
+
escalares. Entonces, podemos escribir toda esa expresión de
|
| 437 |
+
|
| 438 |
+
00:08:05.544 --> 00:08:10.185
|
| 439 |
+
aquí simplemente como cero por f evaluado en
|
| 440 |
+
|
| 441 |
+
00:08:10.185 --> 00:08:13.224
|
| 442 |
+
x cero, más alfa uno por f evaluado
|
| 443 |
+
|
| 444 |
+
00:08:13.224 --> 00:08:15.465
|
| 445 |
+
en x uno, más alfa dos por f
|
| 446 |
+
|
| 447 |
+
00:08:15.465 --> 00:08:18.840
|
| 448 |
+
evaluado en x dos. Y así hasta alfa
|
| 449 |
+
|
| 450 |
+
00:08:18.840 --> 00:08:22.280
|
| 451 |
+
n menos uno evaluada la f en x
|
| 452 |
+
|
| 453 |
+
00:08:22.280 --> 00:08:27.660
|
| 454 |
+
n menos uno. Ahora, si una función g
|
| 455 |
+
|
| 456 |
+
00:08:28.920 --> 00:08:32.905
|
| 457 |
+
va de RNARY además es lineal y tenemos
|
| 458 |
+
|
| 459 |
+
00:08:32.905 --> 00:08:36.225
|
| 460 |
+
que cumple esto, a esta propiedad le vamos
|
| 461 |
+
|
| 462 |
+
00:08:36.225 --> 00:08:40.505
|
| 463 |
+
a llamar la superposición. Entonces, decimos que una
|
| 464 |
+
|
| 465 |
+
00:08:40.505 --> 00:08:44.580
|
| 466 |
+
función es, si una función cumple el principio
|
| 467 |
+
|
| 468 |
+
00:08:44.580 --> 00:08:49.940
|
| 469 |
+
de superposición, es lineal. Ahora, veamos que la
|
| 470 |
+
|
| 471 |
+
00:08:49.940 --> 00:08:54.220
|
| 472 |
+
superposición puede ser separada en dos propiedades. Esas
|
| 473 |
+
|
| 474 |
+
00:08:54.220 --> 00:08:57.985
|
| 475 |
+
propiedades son la homogeneidad, es decir, si tenemos
|
| 476 |
+
|
| 477 |
+
00:08:57.985 --> 00:09:01.791
|
| 478 |
+
cualquier n vector x y cualquier escalar alfa,
|
| 479 |
+
|
| 480 |
+
00:09:01.958 --> 00:09:05.125
|
| 481 |
+
y si tenemos que la función que definimos
|
| 482 |
+
|
| 483 |
+
00:09:05.345 --> 00:09:09.825
|
| 484 |
+
acá cumple que g evaluado en alfa veces
|
| 485 |
+
|
| 486 |
+
00:09:09.825 --> 00:09:13.180
|
| 487 |
+
x es igual que alfa veces g de
|
| 488 |
+
|
| 489 |
+
00:09:13.480 --> 00:09:16.760
|
| 490 |
+
x, decimos que la función es homogénea, ¿de
|
| 491 |
+
|
| 492 |
+
00:09:16.760 --> 00:09:22.380
|
| 493 |
+
acuerdo? Repito, si la función g cumple que
|
| 494 |
+
|
| 495 |
+
00:09:22.440 --> 00:09:25.000
|
| 496 |
+
g alfa veces x es igual que alfa
|
| 497 |
+
|
| 498 |
+
00:09:25.000 --> 00:09:27.795
|
| 499 |
+
veces g evaluado en x, decimos que la
|
| 500 |
+
|
| 501 |
+
00:09:27.795 --> 00:09:31.395
|
| 502 |
+
función es homogénea. Ahora vamos para la propiedad
|
| 503 |
+
|
| 504 |
+
00:09:31.395 --> 00:09:35.015
|
| 505 |
+
de la aditividad. Agarremos cualquiera en el vector
|
| 506 |
+
|
| 507 |
+
00:09:35.155 --> 00:09:41.475
|
| 508 |
+
XYY. Entonces, tenemos que g evaluado en x
|
| 509 |
+
|
| 510 |
+
00:09:41.475 --> 00:09:46.780
|
| 511 |
+
más y es igual a g de x
|
| 512 |
+
|
| 513 |
+
00:09:46.780 --> 00:09:50.780
|
| 514 |
+
más g de y. Si g cumple esto,
|
| 515 |
+
|
| 516 |
+
00:09:50.780 --> 00:09:54.380
|
| 517 |
+
si cumple esta propiedad, decimos que g es
|
| 518 |
+
|
| 519 |
+
00:09:54.380 --> 00:09:56.460
|
| 520 |
+
cumple la propiedad de la actividad o es
|
| 521 |
+
|
| 522 |
+
00:09:56.460 --> 00:10:01.315
|
| 523 |
+
aditiva. Y si la función g cumple estas
|
| 524 |
+
|
| 525 |
+
00:10:01.315 --> 00:10:05.655
|
| 526 |
+
dos propiedades, entonces decimos que g es lineal,
|
| 527 |
+
|
| 528 |
+
00:10:06.275 --> 00:10:08.755
|
| 529 |
+
es decir, si g cumple la homogeneidad y
|
| 530 |
+
|
| 531 |
+
00:10:08.755 --> 00:10:13.309
|
| 532 |
+
la aditividad, cumple la superposición, y si cumple
|
| 533 |
+
|
| 534 |
+
00:10:13.309 --> 00:10:16.482
|
| 535 |
+
la superposición es lineal. De igual manera, si
|
| 536 |
+
|
| 537 |
+
00:10:16.482 --> 00:10:19.655
|
| 538 |
+
es lineal, si ya sabemos que es lineal,
|
| 539 |
+
|
| 540 |
+
00:10:19.655 --> 00:10:22.828
|
| 541 |
+
sabemos que cumple la superposición y sabemos que
|
| 542 |
+
|
| 543 |
+
00:10:22.828 --> 00:10:28.665
|
| 544 |
+
es homogénea y además que es aditiva. Vamos
|
| 545 |
+
|
| 546 |
+
00:10:29.524 --> 00:10:32.084
|
| 547 |
+
a comprobar si la función suma que habíamos
|
| 548 |
+
|
| 549 |
+
00:10:32.084 --> 00:10:36.324
|
| 550 |
+
denotado arriba cumple esta propiedad, es decir, si
|
| 551 |
+
|
| 552 |
+
00:10:36.324 --> 00:10:39.470
|
| 553 |
+
cumple la superposición. Lo que vamos a comprobar
|
| 554 |
+
|
| 555 |
+
00:10:39.530 --> 00:10:41.930
|
| 556 |
+
es si nuestra función f es o no
|
| 557 |
+
|
| 558 |
+
00:10:41.930 --> 00:10:45.370
|
| 559 |
+
es lineal. Entonces, recordemos que f ya está
|
| 560 |
+
|
| 561 |
+
00:10:45.370 --> 00:10:47.870
|
| 562 |
+
declarada el de arriba, y vamos a agarrar
|
| 563 |
+
|
| 564 |
+
00:10:48.330 --> 00:10:51.935
|
| 565 |
+
dos vectores cuales quiera a, supongamos que a
|
| 566 |
+
|
| 567 |
+
00:10:51.935 --> 00:10:55.134
|
| 568 |
+
es igual a Hagamos del vector de los
|
| 569 |
+
|
| 570 |
+
00:10:55.134 --> 00:11:00.574
|
| 571 |
+
unos, np array, uno coma uno coma uno
|
| 572 |
+
|
| 573 |
+
00:11:00.574 --> 00:11:03.475
|
| 574 |
+
coma uno, coma uno, porque g f recibía
|
| 575 |
+
|
| 576 |
+
00:11:03.535 --> 00:11:07.010
|
| 577 |
+
cuatro vectores, y b, vamos a ponerlo como
|
| 578 |
+
|
| 579 |
+
00:11:07.010 --> 00:11:11.570
|
| 580 |
+
n p array, vamos a elegir el uno
|
| 581 |
+
|
| 582 |
+
00:11:11.570 --> 00:11:16.290
|
| 583 |
+
coma cero coma uno coma cero, y vamos
|
| 584 |
+
|
| 585 |
+
00:11:16.290 --> 00:11:20.365
|
| 586 |
+
a elegir dos escalares XYY. Vamos a decir
|
| 587 |
+
|
| 588 |
+
00:11:20.365 --> 00:11:23.965
|
| 589 |
+
que x es igual a uno y que
|
| 590 |
+
|
| 591 |
+
00:11:23.965 --> 00:11:30.365
|
| 592 |
+
y es igual a menos dos. Ahora, si
|
| 593 |
+
|
| 594 |
+
00:11:30.365 --> 00:11:33.750
|
| 595 |
+
la función f es lineal, cumple la superposición,
|
| 596 |
+
|
| 597 |
+
00:11:34.209 --> 00:11:37.910
|
| 598 |
+
es decir, si yo evalúo f en x
|
| 599 |
+
|
| 600 |
+
00:11:38.769 --> 00:11:41.730
|
| 601 |
+
veces, en este caso, x veces a más
|
| 602 |
+
|
| 603 |
+
00:11:41.730 --> 00:11:44.629
|
| 604 |
+
y veces b, debería de ser lo mismo
|
| 605 |
+
|
| 606 |
+
00:11:44.850 --> 00:11:48.264
|
| 607 |
+
que si yo multiplico x, en este caso
|
| 608 |
+
|
| 609 |
+
00:11:48.264 --> 00:11:52.125
|
| 610 |
+
abajo, por g evaluado en a, más y,
|
| 611 |
+
|
| 612 |
+
00:11:54.024 --> 00:11:57.165
|
| 613 |
+
más y por g evaluado en el vector
|
| 614 |
+
|
| 615 |
+
00:11:57.225 --> 00:12:05.590
|
| 616 |
+
b. Vamos a comprobarlo. Escribimos un print y
|
| 617 |
+
|
| 618 |
+
00:12:05.930 --> 00:12:11.770
|
| 619 |
+
tenemos f evaluado en x, que es nuestro
|
| 620 |
+
|
| 621 |
+
00:12:11.770 --> 00:12:23.704
|
| 622 |
+
escalar, por a más y por b. Esto
|
| 623 |
+
|
| 624 |
+
00:12:23.704 --> 00:12:26.365
|
| 625 |
+
de aquí es igual a, y lo evaluamos,
|
| 626 |
+
|
| 627 |
+
00:12:27.870 --> 00:12:30.030
|
| 628 |
+
y nos da un cero. Vamos a comprobar
|
| 629 |
+
|
| 630 |
+
00:12:30.030 --> 00:12:34.610
|
| 631 |
+
que es cero. Recordemos que f suma las
|
| 632 |
+
|
| 633 |
+
00:12:34.830 --> 00:12:38.530
|
| 634 |
+
entradas, entonces aquí estamos sumando también componentes, primero
|
| 635 |
+
|
| 636 |
+
00:12:38.590 --> 00:12:40.990
|
| 637 |
+
sumamos las componentes y después lo evaluamos en
|
| 638 |
+
|
| 639 |
+
00:12:40.990 --> 00:12:44.905
|
| 640 |
+
f. Si sumamos las componentes, es decir, la
|
| 641 |
+
|
| 642 |
+
00:12:44.905 --> 00:12:54.105
|
| 643 |
+
combinación lineal, esto nos devuelve este arreglo, menos
|
| 644 |
+
|
| 645 |
+
00:12:54.105 --> 00:12:57.510
|
| 646 |
+
uno, uno, menos uno, uno, y si nosotros
|
| 647 |
+
|
| 648 |
+
00:12:57.570 --> 00:13:00.610
|
| 649 |
+
sumamos componente a componente, este de aquí se
|
| 650 |
+
|
| 651 |
+
00:13:00.610 --> 00:13:03.010
|
| 652 |
+
cancela con este de aquí y este de
|
| 653 |
+
|
| 654 |
+
00:13:03.010 --> 00:13:05.350
|
| 655 |
+
aquí se cancela con este de aquí, entonces,
|
| 656 |
+
|
| 657 |
+
00:13:05.490 --> 00:13:08.450
|
| 658 |
+
en efecto, nos da un cero. Si esta
|
| 659 |
+
|
| 660 |
+
00:13:08.450 --> 00:13:12.505
|
| 661 |
+
función cumple la propiedad de la linealidad y
|
| 662 |
+
|
| 663 |
+
00:13:12.505 --> 00:13:16.825
|
| 664 |
+
la superposición, debería de ser lo mismo esto
|
| 665 |
+
|
| 666 |
+
00:13:16.825 --> 00:13:20.585
|
| 667 |
+
de aquí que evaluarlo como les voy a
|
| 668 |
+
|
| 669 |
+
00:13:20.585 --> 00:13:48.045
|
| 670 |
+
mostrar ahora. Quiero evaluarlo así. Que es justo
|
| 671 |
+
|
| 672 |
+
00:13:48.105 --> 00:13:50.444
|
| 673 |
+
como nos aparece la propiedad de la superposición.
|
| 674 |
+
|
| 675 |
+
00:13:54.010 --> 00:13:55.690
|
| 676 |
+
Y nos damos cuenta que sí es lo
|
| 677 |
+
|
| 678 |
+
00:13:55.690 --> 00:13:59.070
|
| 679 |
+
mismo. Ya con esto comprobamos que nuestra función
|
| 680 |
+
|
| 681 |
+
00:13:59.130 --> 00:14:02.190
|
| 682 |
+
f, la función suma, es una función lineal.
|
| 683 |
+
|
| 684 |
+
00:14:03.050 --> 00:14:05.645
|
| 685 |
+
Te dejo como ejercicio que compruebes si la
|
| 686 |
+
|
| 687 |
+
00:14:05.645 --> 00:14:11.005
|
| 688 |
+
función proyección, la función g que habíamos definido
|
| 689 |
+
|
| 690 |
+
00:14:11.005 --> 00:14:13.985
|
| 691 |
+
aquí arriba, es una función lineal o no.
|
| 692 |
+
|
| 693 |
+
00:14:15.369 --> 00:14:18.809
|
| 694 |
+
Hasta aquí llega esta clase. Nos vemos en
|
| 695 |
+
|
| 696 |
+
00:14:18.809 --> 00:14:21.369
|
| 697 |
+
la siguiente, en donde vamos a ver algunos
|
| 698 |
+
|
| 699 |
+
00:14:21.369 --> 00:14:21.869
|
| 700 |
+
teoremas.
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://colab.research.google.com/drive/1uHLHnGyq5fgP917lwwh3JDNhNtr3EZhw?usp=sharing
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_1_e9705b8d-df25-4f93-9a4b-0290357a6c0c.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_2_869e4304-cce7-43be-9ed0-d36af00c8797.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_t1_9abd2d3c-38bc-4596-9bc7-7cb2b4b0d72e.png
ADDED
|
a/Curso de Introducci/303/263n al /303/201lgebra Lineal Vectores/03-Funciones lineales/02-fl_t2_5f9fbb8a-3b72-4513-b759-b5d63f6b3590.png
ADDED
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/02-funciones_lineales_d6135d0f-fc5c-405c-b74f-b88766a8ce07.ipynb
ADDED
|
@@ -0,0 +1,603 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "markdown",
|
| 5 |
+
"metadata": {},
|
| 6 |
+
"source": [
|
| 7 |
+
"# 5. Funciones Lineales"
|
| 8 |
+
]
|
| 9 |
+
},
|
| 10 |
+
{
|
| 11 |
+
"cell_type": "markdown",
|
| 12 |
+
"metadata": {},
|
| 13 |
+
"source": [
|
| 14 |
+
"La notación $f: \\mathbb{R}^{n}\\to \\mathbb{R}$ significa que $f$ es una función con **dominio** en $\\mathbb{R}^{n}$ e imagen en $\\mathbb{R}$, es decir, que toma un $n$-vector y lo convierte en un escalar. \n",
|
| 15 |
+
"La función puede denotarse como $f\\left(\\mathbf{x}\\right)= f\\left(x_{0},x_{1},\\dots,x_{n-1}\\right)$ donde $\\mathbf{x}\\in \\mathbb{R}^{n}$ y $x_{i}$ son las entradas del vector. \n",
|
| 16 |
+
"\n",
|
| 17 |
+
"Es necesario enfatizar que $f(\\mathbf{x})$ es un escalar. "
|
| 18 |
+
]
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"cell_type": "markdown",
|
| 22 |
+
"metadata": {},
|
| 23 |
+
"source": [
|
| 24 |
+
"Para describir una función $f: \\mathbb{R}^{n} \\to \\mathbb{R}$ tenemos que especificar el cual es el valor para cualquier vector $\\mathbf{x}\\in\\mathbb{R}^{n}$. Por ejemplo, sea $f: \\mathbb{R}^{4} \\to \\mathbb{R}$ definida por\n",
|
| 25 |
+
"$$\n",
|
| 26 |
+
"f(\\mathbf{x}) = x_{0} + x_{1} + x_{2} + x_{3}\n",
|
| 27 |
+
"$$"
|
| 28 |
+
]
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"cell_type": "markdown",
|
| 32 |
+
"metadata": {},
|
| 33 |
+
"source": [
|
| 34 |
+
"Así pues el valor de cualquier $4$-vector queda bien definido, por ejemplo:\n",
|
| 35 |
+
"\n",
|
| 36 |
+
"* $f(\\mathbf{0}) = 0 + 0+ 0+0 = 0$\n",
|
| 37 |
+
"\n",
|
| 38 |
+
"* $f([1\\; 0\\; 0\\; 0]) = 1+0+0+0 = 1$\n",
|
| 39 |
+
"\n",
|
| 40 |
+
"* $f([1\\; 1\\; 1\\; 1]) = 1+1+1+1 = 4$"
|
| 41 |
+
]
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"cell_type": "code",
|
| 45 |
+
"execution_count": 15,
|
| 46 |
+
"metadata": {},
|
| 47 |
+
"outputs": [],
|
| 48 |
+
"source": [
|
| 49 |
+
"import numpy as np"
|
| 50 |
+
]
|
| 51 |
+
},
|
| 52 |
+
{
|
| 53 |
+
"cell_type": "code",
|
| 54 |
+
"execution_count": 16,
|
| 55 |
+
"metadata": {},
|
| 56 |
+
"outputs": [],
|
| 57 |
+
"source": [
|
| 58 |
+
"def f(x):\n",
|
| 59 |
+
" return np.sum(x)"
|
| 60 |
+
]
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"cell_type": "code",
|
| 64 |
+
"execution_count": 17,
|
| 65 |
+
"metadata": {},
|
| 66 |
+
"outputs": [
|
| 67 |
+
{
|
| 68 |
+
"name": "stdout",
|
| 69 |
+
"output_type": "stream",
|
| 70 |
+
"text": [
|
| 71 |
+
"f(0) = 0\n"
|
| 72 |
+
]
|
| 73 |
+
}
|
| 74 |
+
],
|
| 75 |
+
"source": [
|
| 76 |
+
"print('f(0) = ',f(np.array([0,0,0,0])))"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"cell_type": "code",
|
| 81 |
+
"execution_count": 18,
|
| 82 |
+
"metadata": {},
|
| 83 |
+
"outputs": [
|
| 84 |
+
{
|
| 85 |
+
"name": "stdout",
|
| 86 |
+
"output_type": "stream",
|
| 87 |
+
"text": [
|
| 88 |
+
"f([1,0,0,0]) = 1\n"
|
| 89 |
+
]
|
| 90 |
+
}
|
| 91 |
+
],
|
| 92 |
+
"source": [
|
| 93 |
+
"print('f([1,0,0,0]) = ',f(np.array([1,0,0,0])))"
|
| 94 |
+
]
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"cell_type": "code",
|
| 98 |
+
"execution_count": 19,
|
| 99 |
+
"metadata": {},
|
| 100 |
+
"outputs": [
|
| 101 |
+
{
|
| 102 |
+
"name": "stdout",
|
| 103 |
+
"output_type": "stream",
|
| 104 |
+
"text": [
|
| 105 |
+
"f([1,1,1,1]) = 4\n"
|
| 106 |
+
]
|
| 107 |
+
}
|
| 108 |
+
],
|
| 109 |
+
"source": [
|
| 110 |
+
"print('f([1,1,1,1]) = ',f(np.array([1,1,1,1])))"
|
| 111 |
+
]
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"cell_type": "markdown",
|
| 115 |
+
"metadata": {},
|
| 116 |
+
"source": [
|
| 117 |
+
"Como otro ejemplo, sea $g: \\mathbb{R}^{3} \\to \\mathbb{R}$ definida por \n",
|
| 118 |
+
"$$\n",
|
| 119 |
+
"g(\\mathbf{x}) = x_{0}\n",
|
| 120 |
+
"$$"
|
| 121 |
+
]
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"cell_type": "markdown",
|
| 125 |
+
"metadata": {},
|
| 126 |
+
"source": [
|
| 127 |
+
"Tenemos entonces:\n",
|
| 128 |
+
"\n",
|
| 129 |
+
"* $g(\\mathbf{0}) = 0$ \n",
|
| 130 |
+
"\n",
|
| 131 |
+
"* $g([0\\; 0\\; 1]) = 0$\n",
|
| 132 |
+
"\n",
|
| 133 |
+
"* $g([1\\; 0\\; 4]) = 1$"
|
| 134 |
+
]
|
| 135 |
+
},
|
| 136 |
+
{
|
| 137 |
+
"cell_type": "code",
|
| 138 |
+
"execution_count": 20,
|
| 139 |
+
"metadata": {},
|
| 140 |
+
"outputs": [],
|
| 141 |
+
"source": [
|
| 142 |
+
"def g(x):\n",
|
| 143 |
+
" return x[0]"
|
| 144 |
+
]
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"cell_type": "code",
|
| 148 |
+
"execution_count": 21,
|
| 149 |
+
"metadata": {},
|
| 150 |
+
"outputs": [
|
| 151 |
+
{
|
| 152 |
+
"name": "stdout",
|
| 153 |
+
"output_type": "stream",
|
| 154 |
+
"text": [
|
| 155 |
+
"g(0) = 0\n"
|
| 156 |
+
]
|
| 157 |
+
}
|
| 158 |
+
],
|
| 159 |
+
"source": [
|
| 160 |
+
"print('g(0) = ',g(np.array([0,0,0])))"
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"cell_type": "code",
|
| 165 |
+
"execution_count": 22,
|
| 166 |
+
"metadata": {},
|
| 167 |
+
"outputs": [
|
| 168 |
+
{
|
| 169 |
+
"name": "stdout",
|
| 170 |
+
"output_type": "stream",
|
| 171 |
+
"text": [
|
| 172 |
+
"g([0,0,1]) = 0\n"
|
| 173 |
+
]
|
| 174 |
+
}
|
| 175 |
+
],
|
| 176 |
+
"source": [
|
| 177 |
+
"print('g([0,0,1]) = ',g(np.array([0,0,1])))"
|
| 178 |
+
]
|
| 179 |
+
},
|
| 180 |
+
{
|
| 181 |
+
"cell_type": "code",
|
| 182 |
+
"execution_count": 23,
|
| 183 |
+
"metadata": {},
|
| 184 |
+
"outputs": [
|
| 185 |
+
{
|
| 186 |
+
"name": "stdout",
|
| 187 |
+
"output_type": "stream",
|
| 188 |
+
"text": [
|
| 189 |
+
"g([1,0,4]) = 1\n"
|
| 190 |
+
]
|
| 191 |
+
}
|
| 192 |
+
],
|
| 193 |
+
"source": [
|
| 194 |
+
"print('g([1,0,4]) = ',g(np.array([1,0,4])))"
|
| 195 |
+
]
|
| 196 |
+
},
|
| 197 |
+
{
|
| 198 |
+
"cell_type": "markdown",
|
| 199 |
+
"metadata": {},
|
| 200 |
+
"source": [
|
| 201 |
+
"Podemos notar que en este caso $f(\\mathbf{x})$ corresponde a la _función suma_ y $g(\\mathbf{x})$ a proyección sobre $x_{0}$."
|
| 202 |
+
]
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"cell_type": "markdown",
|
| 206 |
+
"metadata": {},
|
| 207 |
+
"source": [
|
| 208 |
+
"## 5.1 Algunas funciones"
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"cell_type": "markdown",
|
| 213 |
+
"metadata": {},
|
| 214 |
+
"source": [
|
| 215 |
+
"**Función producto interno**. Si una función tiene como aurgmentos dos $n$-vectores el dominio de la función se expresará como $\\mathbb{R}^{n}\\times\\mathbb{R}^{n}$. Por ejemplo, sea $f:\\mathbb{R}^{n}\\times\\mathbb{R}^{n} \\to \\mathbb{R}$ definida por:\n",
|
| 216 |
+
"\n",
|
| 217 |
+
"$$\n",
|
| 218 |
+
"f(\\mathbf{a},\\mathbf{b}) = a_{0}b_{0} + a_{1}b_{1} + \\cdots + a_{n-1}b_{n-1}\n",
|
| 219 |
+
"$$"
|
| 220 |
+
]
|
| 221 |
+
},
|
| 222 |
+
{
|
| 223 |
+
"cell_type": "markdown",
|
| 224 |
+
"metadata": {},
|
| 225 |
+
"source": [
|
| 226 |
+
"Notemos que podemos expresar lo anterior como\n",
|
| 227 |
+
"\n",
|
| 228 |
+
"$$\n",
|
| 229 |
+
"f(\\mathbf{a},\\mathbf{b}) = \\mathbf{a}^{T}\\mathbf{b}\n",
|
| 230 |
+
"$$\n",
|
| 231 |
+
"\n",
|
| 232 |
+
"Esta función recibe el nombre de función producto interno. Si quisieramos dejar fijo un vector, digamos el vector $\\mathbf{a}$ podemos recurrir a la siguiente notación:\n",
|
| 233 |
+
"\n",
|
| 234 |
+
"$$\n",
|
| 235 |
+
"f_{\\mathbf{a}}(\\mathbf{b}) = \\mathbf{a}^{T}\\mathbf{b}\n",
|
| 236 |
+
"$$\n",
|
| 237 |
+
"\n",
|
| 238 |
+
"Esto significará que $\\mathbf{a}$ estará fijo mientras que $\\mathbf{b}$ será el que variará. "
|
| 239 |
+
]
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"cell_type": "markdown",
|
| 243 |
+
"metadata": {},
|
| 244 |
+
"source": [
|
| 245 |
+
"**Superposición y linealidad.** La función producto interno satisface la siguiente propiedad:\n",
|
| 246 |
+
"\n",
|
| 247 |
+
"$$\n",
|
| 248 |
+
"\\begin{eqnarray}\n",
|
| 249 |
+
"f_\\mathbf{x}(\\alpha\\mathbf{a}+\\beta\\mathbf{b}) &=& \\mathbf{x}^{T}(\\alpha\\mathbf{a}+\\beta\\mathbf{b}) \\\\\n",
|
| 250 |
+
" &=& \\mathbf{x}^{T}(\\alpha\\mathbf{a})+\\mathbf{x}^{T}(\\beta\\mathbf{b}) \\\\\n",
|
| 251 |
+
" &=& \\alpha(\\mathbf{x}^{T}\\mathbf{a}) + \\beta(\\mathbf{x}^{T}\\mathbf{b}) \\\\\n",
|
| 252 |
+
" &=& \\alpha f_{\\mathbf{x}}(\\mathbf{a}) + \\beta f_{\\mathbf{x}}(\\mathbf{b})\n",
|
| 253 |
+
"\\end{eqnarray}\n",
|
| 254 |
+
"$$\n",
|
| 255 |
+
"\n",
|
| 256 |
+
"Si la función $g$ cumple que $g(\\alpha\\mathbf{x}+\\beta\\mathbf{y}) = \\alpha g(\\mathbf{x})+\\beta g(\\mathbf{y})$ decimos que la función $g$ es una **función lineal.** "
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"cell_type": "markdown",
|
| 261 |
+
"metadata": {},
|
| 262 |
+
"source": [
|
| 263 |
+
"Si $f$ es una función lineal la _linearidad_ se extiende a cualquier combinación lineal y no solamente a una combinación de dos vectores, tenemos \n",
|
| 264 |
+
"\n",
|
| 265 |
+
"$$\n",
|
| 266 |
+
"f(\\alpha_{0}\\mathbf{x_{0}} + \\alpha_{1}\\mathbf{x_{1}} + \\alpha_{2}\\mathbf{x_{2}} + \\cdots \n",
|
| 267 |
+
" + \\alpha_{n-1}\\mathbf{x_{n-1}}) = \\alpha_{0}f(\\mathbf{x_{0}}) + \\alpha_{1}f(\\mathbf{x_{1}}) + \\alpha_{2}f(\\mathbf{x_{2}}) + \\cdots + \\alpha_{n-1}f(\\mathbf{x_{n-1}})\n",
|
| 268 |
+
"$$\n"
|
| 269 |
+
]
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"cell_type": "markdown",
|
| 273 |
+
"metadata": {},
|
| 274 |
+
"source": [
|
| 275 |
+
"Si una función $g:\\mathbf{R}^{n} \\to \\mathbf{R}$ es lineal sabemo que cumple $g(\\alpha\\mathbf{x}+\\beta\\mathbf{y}) = \\alpha g(\\mathbf{x})+\\beta g(\\mathbf{y})$, propiedad que llamaremos _superposición_. Ahora, la superposición puede ser separada en dos propiedades:\n",
|
| 276 |
+
"\n",
|
| 277 |
+
"* _Homogeneidad_. Para cualquier $n$-vector $\\mathbf{x}$ y cualquier escalar $\\alpha$ tenemos que $g(\\alpha \\mathbf{x}) = \\alpha g(\\mathbf{x})$\n",
|
| 278 |
+
"\n",
|
| 279 |
+
"* _Aditividad_. Para cualquier $n$-vector $\\mathbf{x}$ y $\\mathbf{y}$ tenemos que $g(\\mathbf{x}+\\mathbf{y}) = g(\\mathbf{x})+g(\\mathbf{y})$\n",
|
| 280 |
+
"\n",
|
| 281 |
+
"La homogeneidad nos dice que escalar el argumento es igual que escalar el valor de la función; la aditividad nos indica que sumar los argumentos es igual que sumar los valores de la función. "
|
| 282 |
+
]
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"cell_type": "code",
|
| 286 |
+
"execution_count": 24,
|
| 287 |
+
"metadata": {},
|
| 288 |
+
"outputs": [],
|
| 289 |
+
"source": [
|
| 290 |
+
"a = np.array([1,1,1,1])\n",
|
| 291 |
+
"b = np.array([1,0,1,0])\n",
|
| 292 |
+
"x,y = 1,-2"
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"cell_type": "code",
|
| 297 |
+
"execution_count": 25,
|
| 298 |
+
"metadata": {},
|
| 299 |
+
"outputs": [
|
| 300 |
+
{
|
| 301 |
+
"name": "stdout",
|
| 302 |
+
"output_type": "stream",
|
| 303 |
+
"text": [
|
| 304 |
+
"f(x*a + y*b) = 0\n"
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"source": [
|
| 309 |
+
"print('f(x*a + y*b) = ',f(x*a + y*b))"
|
| 310 |
+
]
|
| 311 |
+
},
|
| 312 |
+
{
|
| 313 |
+
"cell_type": "code",
|
| 314 |
+
"execution_count": 27,
|
| 315 |
+
"metadata": {},
|
| 316 |
+
"outputs": [
|
| 317 |
+
{
|
| 318 |
+
"name": "stdout",
|
| 319 |
+
"output_type": "stream",
|
| 320 |
+
"text": [
|
| 321 |
+
"x*f(a) + y*f(b) = 0\n"
|
| 322 |
+
]
|
| 323 |
+
}
|
| 324 |
+
],
|
| 325 |
+
"source": [
|
| 326 |
+
"print('x*f(a) + y*f(b) =',x*f(a) + y*f(b))"
|
| 327 |
+
]
|
| 328 |
+
},
|
| 329 |
+
{
|
| 330 |
+
"cell_type": "markdown",
|
| 331 |
+
"metadata": {},
|
| 332 |
+
"source": [
|
| 333 |
+
"**Representación producto interno de una función lineal.** En matemáticas las verdades, cuando son verdades, se demuestran usando argumentos principalmente lógicos. Estas verdades vienen empaquetadas en _teoremas_, _corolarios_ y _lemas_. Si no podemos demostrarlo pero creemos que es verdad lo llamamos _conjetura_. Por ejemplo, consideremos el siguiente teorema:"
|
| 334 |
+
]
|
| 335 |
+
},
|
| 336 |
+
{
|
| 337 |
+
"cell_type": "markdown",
|
| 338 |
+
"metadata": {},
|
| 339 |
+
"source": [
|
| 340 |
+
"**Teorema.** Los ángulos a ambos lados de una recta, que intersecta a otra, siempre suman $180^\\circ$ \n",
|
| 341 |
+
"\n",
|
| 342 |
+
""
|
| 343 |
+
]
|
| 344 |
+
},
|
| 345 |
+
{
|
| 346 |
+
"cell_type": "markdown",
|
| 347 |
+
"metadata": {},
|
| 348 |
+
"source": [
|
| 349 |
+
"*Demostración*: Supongamos que $\\alpha + \\beta \\neq 180$ eso quiere decir que $\\alpha + \\beta > 180$ o $\\alpha + \\beta < 180$. Ahora, pensemos en la linea **f** pasa por el diámetro, es decir, corta a la mitad al círculo. \n",
|
| 350 |
+
"\n",
|
| 351 |
+
"\n",
|
| 352 |
+
"\n",
|
| 353 |
+
"Al pasar por el diámetro sabemos que ambos lados tenemos un ángulo de $180^\\circ$. Llamemos a ese ángulo $\\Omega=180^\\circ$. Ahora, llamemos **g** a una línea que pase por otro diámetro. \n",
|
| 354 |
+
"\n",
|
| 355 |
+
""
|
| 356 |
+
]
|
| 357 |
+
},
|
| 358 |
+
{
|
| 359 |
+
"cell_type": "markdown",
|
| 360 |
+
"metadata": {},
|
| 361 |
+
"source": [
|
| 362 |
+
"Entonces, al seccionar con **g** tenemos nuevamente los ángulos $\\alpha$ y $\\beta$ entonces tenemos que $\\alpha + \\beta = \\Omega$ pero asumimos que $\\alpha + \\beta \\neq 180^\\circ$ lo cuyal nos lleva a una contradicción $!$ por ello lo anteior debe ser cierto. "
|
| 363 |
+
]
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"cell_type": "markdown",
|
| 367 |
+
"metadata": {},
|
| 368 |
+
"source": [
|
| 369 |
+
"**Corolario.** Cuando dos líneas se intersectan los ángulos opuestos entre ellos son iguales.\n",
|
| 370 |
+
"\n",
|
| 371 |
+
""
|
| 372 |
+
]
|
| 373 |
+
},
|
| 374 |
+
{
|
| 375 |
+
"cell_type": "markdown",
|
| 376 |
+
"metadata": {},
|
| 377 |
+
"source": [
|
| 378 |
+
"*Demostración:* Sabemos que $\\beta + \\alpha = 180^\\circ$ entonces $\\alpha = 180^\\circ - \\beta$. Por otro lado, sabemos que también $\\gamma + \\beta = 180^\\circ$ así pues $\\gamma = 180^\\circ - \\beta$. Juntando lo anteior tenemos que:\n",
|
| 379 |
+
"\n",
|
| 380 |
+
"$$\n",
|
| 381 |
+
"\\alpha = 180^\\circ - \\beta = \\gamma\n",
|
| 382 |
+
"$$\n",
|
| 383 |
+
"\n",
|
| 384 |
+
"Lo mismo es posible aplicarse para $\\beta$ y $\\delta$. **QED**. "
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"cell_type": "markdown",
|
| 389 |
+
"metadata": {},
|
| 390 |
+
"source": [
|
| 391 |
+
"Ya explorados los teoremas y los corolarios veamos la siguiente proposición: \n",
|
| 392 |
+
"\n",
|
| 393 |
+
"**Proposición:** Una función definida como el producto punto de sus argumentos y algún vector fijo es lineal. Lo inverso es también verdadero: si una función es lineal entonces puede ser expresada como el producto interno de sus argumentos y algún vector fijo."
|
| 394 |
+
]
|
| 395 |
+
},
|
| 396 |
+
{
|
| 397 |
+
"cell_type": "markdown",
|
| 398 |
+
"metadata": {},
|
| 399 |
+
"source": [
|
| 400 |
+
"Ahora, sea $f$ una función escalar de $n$-vectores que además es lineal. Entonces decimos que _existe_ un $n$-vector $\\mathbf{a}$ tal que $f(\\mathbf{x}) = \\mathbf{a}^{T}\\mathbf{x}$ para cualquier $\\mathbf{x}$. A la expresión $\\mathbf{a}^{T}\\mathbf{x}$ le llamaremos *representación producto punto* de $f$. "
|
| 401 |
+
]
|
| 402 |
+
},
|
| 403 |
+
{
|
| 404 |
+
"cell_type": "markdown",
|
| 405 |
+
"metadata": {},
|
| 406 |
+
"source": [
|
| 407 |
+
"Otra propiedad interesante es que la *representación producto punto* de $f$ como $\\mathbf{a}^{T}\\mathbf{x}$ es única. "
|
| 408 |
+
]
|
| 409 |
+
},
|
| 410 |
+
{
|
| 411 |
+
"cell_type": "markdown",
|
| 412 |
+
"metadata": {},
|
| 413 |
+
"source": [
|
| 414 |
+
"$ f(\\mathbf{x}) = \\displaystyle\\sum_{i}^{n-1} x_{i}$ si n=4 esto lo podemos expresar como $f(\\mathbf{x}) = \\mathbf{a}^{T}\\mathbf{x}$ donde:\n",
|
| 415 |
+
"$$\n",
|
| 416 |
+
"a^T = [1,1,1,1]\n",
|
| 417 |
+
"$$"
|
| 418 |
+
]
|
| 419 |
+
},
|
| 420 |
+
{
|
| 421 |
+
"cell_type": "markdown",
|
| 422 |
+
"metadata": {},
|
| 423 |
+
"source": [
|
| 424 |
+
"**Promedio.** El promedio de una $n$-vector es definida como\n",
|
| 425 |
+
"\n",
|
| 426 |
+
"$$\n",
|
| 427 |
+
"f(x) = (x_{0}+x_{1}+\\cdots+x_{n-1})/n\n",
|
| 428 |
+
"$$\n",
|
| 429 |
+
"\n",
|
| 430 |
+
"Y se denota como $\\mathbf{avg}(x)$, notemos que este $\\mathbf{avg}(x) = a^{T}x$ con\n",
|
| 431 |
+
"\n",
|
| 432 |
+
"$$\n",
|
| 433 |
+
"a^T = [1/n\\; 1/n\\; \\cdots \\; 1/n] = \\mathbf{1}/n\n",
|
| 434 |
+
"$$"
|
| 435 |
+
]
|
| 436 |
+
},
|
| 437 |
+
{
|
| 438 |
+
"cell_type": "markdown",
|
| 439 |
+
"metadata": {},
|
| 440 |
+
"source": [
|
| 441 |
+
"**Máximo.** Para $n$-vectores $x$ la función que nos da el máximo coeficiente de un vector es $f(x)=max\\{x_{0},x_{1},\\dots,x_{n-1}\\}$ y no es lineal. Para demostrar esto voy a suponer que es lineal y dar un contraejemplo. Si tomamos $x^T = [1,-1]$ y $y^T=[-1,1]$ con $\\alpha = 1/2$ y $\\beta = 1/2$. Entonces tenemos que:\n",
|
| 442 |
+
"\n",
|
| 443 |
+
"$$\n",
|
| 444 |
+
"f(\\alpha x + \\beta y) = 0 \\neq \\alpha f(x) + \\beta f(y) = 1\n",
|
| 445 |
+
"$$"
|
| 446 |
+
]
|
| 447 |
+
},
|
| 448 |
+
{
|
| 449 |
+
"cell_type": "code",
|
| 450 |
+
"execution_count": 28,
|
| 451 |
+
"metadata": {},
|
| 452 |
+
"outputs": [],
|
| 453 |
+
"source": [
|
| 454 |
+
"def MAX(x):\n",
|
| 455 |
+
" return np.max(x)"
|
| 456 |
+
]
|
| 457 |
+
},
|
| 458 |
+
{
|
| 459 |
+
"cell_type": "code",
|
| 460 |
+
"execution_count": 29,
|
| 461 |
+
"metadata": {},
|
| 462 |
+
"outputs": [
|
| 463 |
+
{
|
| 464 |
+
"name": "stdout",
|
| 465 |
+
"output_type": "stream",
|
| 466 |
+
"text": [
|
| 467 |
+
"MAX([1,0,2]) = 2\n"
|
| 468 |
+
]
|
| 469 |
+
}
|
| 470 |
+
],
|
| 471 |
+
"source": [
|
| 472 |
+
"print('MAX([1,0,2]) = ', MAX(np.array([1,0,2])))"
|
| 473 |
+
]
|
| 474 |
+
},
|
| 475 |
+
{
|
| 476 |
+
"cell_type": "code",
|
| 477 |
+
"execution_count": 30,
|
| 478 |
+
"metadata": {},
|
| 479 |
+
"outputs": [],
|
| 480 |
+
"source": [
|
| 481 |
+
"x = np.array([1,-1])\n",
|
| 482 |
+
"y = np.array([-1,1])\n",
|
| 483 |
+
"a,b = 1/2, 1/2"
|
| 484 |
+
]
|
| 485 |
+
},
|
| 486 |
+
{
|
| 487 |
+
"cell_type": "code",
|
| 488 |
+
"execution_count": 31,
|
| 489 |
+
"metadata": {},
|
| 490 |
+
"outputs": [
|
| 491 |
+
{
|
| 492 |
+
"name": "stdout",
|
| 493 |
+
"output_type": "stream",
|
| 494 |
+
"text": [
|
| 495 |
+
"MAX(a*x + b*y) = 0.0\n"
|
| 496 |
+
]
|
| 497 |
+
}
|
| 498 |
+
],
|
| 499 |
+
"source": [
|
| 500 |
+
"print('MAX(a*x + b*y) = ', MAX(a*x + b*y))"
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"cell_type": "code",
|
| 505 |
+
"execution_count": 32,
|
| 506 |
+
"metadata": {},
|
| 507 |
+
"outputs": [
|
| 508 |
+
{
|
| 509 |
+
"name": "stdout",
|
| 510 |
+
"output_type": "stream",
|
| 511 |
+
"text": [
|
| 512 |
+
"a*MAX(x) + b*MAX(y) = 1.0\n"
|
| 513 |
+
]
|
| 514 |
+
}
|
| 515 |
+
],
|
| 516 |
+
"source": [
|
| 517 |
+
"print('a*MAX(x) + b*MAX(y) = ', a*MAX(x) + b*MAX(y))"
|
| 518 |
+
]
|
| 519 |
+
},
|
| 520 |
+
{
|
| 521 |
+
"cell_type": "markdown",
|
| 522 |
+
"metadata": {},
|
| 523 |
+
"source": [
|
| 524 |
+
"## 5.2 Algunas consideraciones"
|
| 525 |
+
]
|
| 526 |
+
},
|
| 527 |
+
{
|
| 528 |
+
"cell_type": "markdown",
|
| 529 |
+
"metadata": {},
|
| 530 |
+
"source": [
|
| 531 |
+
"**Funciones Afines.** Una función $f:\\mathbb{R}^{n} \\to \\mathbb{R}$ es afín si y solo si puede ser expresada como $f(x) = a^{T}x + b$ para algún $n$-vector $a$ y un escalar $b$, es llamado algunas veces *offset* o *bias*. Por ejemplo si consideramos la siguiente función:\n",
|
| 532 |
+
"\n",
|
| 533 |
+
"$$\n",
|
| 534 |
+
"f(x) = 3 + x_{0}+x_{1}+x_{2}\n",
|
| 535 |
+
"$$\n",
|
| 536 |
+
"\n",
|
| 537 |
+
"La podemos representar como \n",
|
| 538 |
+
"\n",
|
| 539 |
+
"$$\n",
|
| 540 |
+
"f(x) = a^T x + b = [1 \\; 1 \\; 1] x + 3\n",
|
| 541 |
+
"$$"
|
| 542 |
+
]
|
| 543 |
+
},
|
| 544 |
+
{
|
| 545 |
+
"cell_type": "markdown",
|
| 546 |
+
"metadata": {},
|
| 547 |
+
"source": [
|
| 548 |
+
"Una función afín cumplirá la superposición si y solo si la suma de de los coeficientes de la combinación lineal es uno. Es decir, si $f$ es una función afín entonces $f(\\alpha x + \\beta y) = \\alpha f(x)+ \\beta f(y)$ si y solo si $ \\alpha + \\beta = 1$.\n",
|
| 549 |
+
"\n",
|
| 550 |
+
"*Demostración.* Como $f$ es afín tenemos que $f(x)=a^T x + b$ entonces, usando que $ \\alpha + \\beta = 1$\n",
|
| 551 |
+
"\n",
|
| 552 |
+
"$$\n",
|
| 553 |
+
"\\begin{eqnarray}\n",
|
| 554 |
+
"f(\\alpha x + \\beta y) &=& a^T (\\alpha x + \\beta y) + b \\\\\n",
|
| 555 |
+
" &=& a^T \\alpha x + a^T \\beta y + (\\alpha + \\beta) b \\\\\n",
|
| 556 |
+
" &=& \\alpha a^T x + \\alpha b + \\beta a^T y + \\beta b \\\\\n",
|
| 557 |
+
" &=& \\alpha (a^T x + b) + \\beta (a^T y + b) \\\\\n",
|
| 558 |
+
" &=& \\alpha f(x) + \\beta f(y)\n",
|
| 559 |
+
"\\end{eqnarray}\n",
|
| 560 |
+
"$$"
|
| 561 |
+
]
|
| 562 |
+
},
|
| 563 |
+
{
|
| 564 |
+
"cell_type": "markdown",
|
| 565 |
+
"metadata": {},
|
| 566 |
+
"source": [
|
| 567 |
+
"**Ejercicio.** Determina si las siguientes funciones son lineales o no:\n",
|
| 568 |
+
"* $f(\\mathbf{x}) = x_{n-1} - x_{0}$\n",
|
| 569 |
+
"\n",
|
| 570 |
+
"* Si $\\mathbf{x}\\in\\mathbb{R}^{4}$ y $f:\\mathbb{R}^{4} \\to \\mathbb{R}$ definida como $f(\\mathbf{x})=x_{3}+(x_{3}-x_{2})$"
|
| 571 |
+
]
|
| 572 |
+
},
|
| 573 |
+
{
|
| 574 |
+
"cell_type": "markdown",
|
| 575 |
+
"metadata": {},
|
| 576 |
+
"source": [
|
| 577 |
+
"**Problema: Potencia en un clúster de procesadores y temperatura.** La temperatura $T$ de un cluster de tres procesadores es una función afín de la potencia de los procesadores $P^T = [P_{0}\\; P_{1}\\; P_{2}]$. Cuando los tres procesadores están en reposo tenemos que $P^T = [10\\; 10\\; 10]$ lo cual nos da una temperatura de $T=35$. Cuando el primer procesador opera a potencia absoluta tenemos que $P^T = [100\\; 10\\; 10]$ y la temperatura se eleva a $T=60$. Cuando el segundo procesador opera a su máxima capacidad tenemos $P^T = [10\\; 100\\; 10]$ y la temperatura se eleva a $T=75$. Cuando el tercer procesador opera a máxima potencia mientras que los otros dos están en reposo tenemos que $P^T = [10\\; 10\\; 100]$ y la temperatura se elevea a $T=65$. Supongamos que los tres procesadores operan a máxima potencia ¿Qué temperatura se alcanza? La temperatura de fusión de los procesadores (a la que los procesadores se derriten) es cerca de $150$ ¿Cuál es la potencia máxima que pueden alcanzar los procesadores para que $T\\le 150$? \n",
|
| 578 |
+
"*Hint:* $T(P) = a^T P + b$"
|
| 579 |
+
]
|
| 580 |
+
}
|
| 581 |
+
],
|
| 582 |
+
"metadata": {
|
| 583 |
+
"kernelspec": {
|
| 584 |
+
"display_name": "Python 3",
|
| 585 |
+
"language": "python",
|
| 586 |
+
"name": "python3"
|
| 587 |
+
},
|
| 588 |
+
"language_info": {
|
| 589 |
+
"codemirror_mode": {
|
| 590 |
+
"name": "ipython",
|
| 591 |
+
"version": 3
|
| 592 |
+
},
|
| 593 |
+
"file_extension": ".py",
|
| 594 |
+
"mimetype": "text/x-python",
|
| 595 |
+
"name": "python",
|
| 596 |
+
"nbconvert_exporter": "python",
|
| 597 |
+
"pygments_lexer": "ipython3",
|
| 598 |
+
"version": "3.7.3"
|
| 599 |
+
}
|
| 600 |
+
},
|
| 601 |
+
"nbformat": 4,
|
| 602 |
+
"nbformat_minor": 4
|
| 603 |
+
}
|
a/Curso de Introducción al Álgebra Lineal Vectores/03-Funciones lineales/03-Teoremas y Corolarios en Funciones Lineales.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6e12f85b2bc7ed902e1af09bc970fd14e6ea903a1e1c45bcfd396d87f349ac65
|
| 3 |
+
size 173990656
|