Ejercicio 1: Producto Escalar y Norma de un Vector
Objetivo: Implementar funciones para calcular el producto escalar de dos vectores y la norma de un vector.
- Producto Escalar: Escribe una función
producto_escalar(u, v)
que tome dos vectoresu
yv
como listas de números reales y devuelva su producto escalar. - Norma de un Vector: Escribe una función
norma_vector(v)
que tome un vectorv
y devuelva su norma (longitud).
Ejercicio 2: Ortogonalidad y Bases Ortogonales
Objetivo: Verificar si dos vectores son ortogonales y generar una base ortogonal a partir de un conjunto de vectores.
- Verificar Ortogonalidad: Escribe una función
es_ortogonal(u, v)
que verifique si dos vectores son ortogonales. - Base Ortogonal: Utilizando el método de Gram-Schmidt, escribe una función
gram_schmidt(vectores)
que tome una lista de vectores y devuelva una base ortogonal.
Isometrías Vectoriales (Capítulo 9)
Ejercicio 3: Clasificación de Isometrías
Objetivo: Clasificar isometrías en el plano y el espacio tridimensional, determinando elementos geométricos clave.
- Isometría en el Plano: Escribe una función que tome una matriz y determine si representa una rotación o reflexión en el plano, identificando el ángulo de rotación o el eje de reflexión.
- Isometría en el Espacio: Similar al ejercicio anterior, pero para el espacio tridimensional, identificando el eje de giro o el plano/eje de simetría.
Implementación Sugerida en Python
A continuación, se proporcionan las implementaciones sugeridas para los primeros dos ejercicios:
import numpy as np
# Ejercicio 1
def producto_escalar(u, v):
return np.dot(u, v)
def norma_vector(v):
return np.sqrt(producto_escalar(v, v))
# Ejercicio 2
def es_ortogonal(u, v):
return producto_escalar(u, v) == 0
def gram_schmidt(vectores):
base_ortogonal = []
for v in vectores:
for u in base_ortogonal:
v -= np.dot(np.dot(u, v), u) / np.dot(u, u)
base_ortogonal.append(v / np.linalg.norm(v))
return base_ortogonal
Para los ejercicios sobre isometrías, te recomendaría primero definir qué significa una matriz de rotación o reflexión en términos matemáticos, cómo identificar sus componentes y, basado en ello, proceder a la implementación.
Estos ejercicios te permitirán aplicar conceptos teóricos de álgebra lineal a problemas concretos, reforzando tu comprensión y habilidades de programación en Python.
NUESTRAS ÚLTIMAS PUBLICACIONES
- Ejercicio: Implementación de una Clase Base y Clases Derivadas con Polimorfismo
- Ejercicios Prácticos de C++: Dominando Punteros, Clases y Polimorfismo
- Implementando Polimorfismo en C++: Uso de Métodos Virtuales y Destructores Virtuales en Herencia
- Excepciones de Polimorfismo y Herencia en Java: Un Enfoque Práctico
- Excepciones en Clases de Java: Manejo y Buenas Prácticas
- Manejo de Excepciones Comunes en Arrays y ArrayLists en Java
- Tratamiento de Excepciones en Java: Cómo Manejar Errores Comunes en tu Código
- Manejo de Excepciones en Java: Guía Práctica para Desarrolladores
- El “harén” de Harvard
- Ejercicio 4: Análisis del Tiempo de Ejecución de una Subrutina en Microcontroladores
- Ejercicio 3: Selección del Banco de Registros en Microcontroladores
- Ejercicio 10: Traduciendo Operaciones de Ensamblador a C para Manipulación de Bits
Contenido restringido
Comments are closed