Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VECTORES Y MATRICES
”Todo el mundo deberı́a aprender como programar una computadora, porque te enseña como
pensar”
Colecciones
Además de los tipos de datos simples, numéricos, booleanos y caracteres, python posee
tipos más complejos que admiten una colección de datos, se trata de las tuplas, las listas y los
diccionarios.
Una tupla es una secuencia que permite almacenar una colección de datos inmutables (no
pueden ser modificados una vez creados). Los datos pueden ser de tipos diferentes y se puede
acceder a cada uno de ellos mediante su ı́ndice correspondiente, el ı́ndice 0 corresponde al primer
elemento de la tupla. Se puede acceder a un rango de la tupla y utilizar ı́ndices negativos para
empezar por el final:
Las listas comparten las propiedades de las tuplas, pero con la posibilidad de modificar y añadir
elementos.
Para eliminar un elemento de una lista se pueden usar los comandos remove y del.
lista . remove ( ’u ’)
print ( lista ) [ ’ hola ’ , 7 , 22.5 , ’a ’ , ’ True ’]
del ( lista [0])
print ( lista ) [7 , 22.5 , ’a ’ , ’ True ’]
Los diccionarios usan una clave en vez de un ı́ndice para acceder a sus elementos.
dic ={ ’ c1 ’ :21 , ’ c2 ’: ’a ’}
print ( dic ) { ’ c2 ’: ’a ’ , ’ c1 ’: 21}
dic [ ’ c1 ’ ]=23
print ( dic [ ’ c1 ’ ]) 23
del ( dic [ ’ c1 ’ ])
print ( dic ) { ’ c2 ’: ’a ’}
dic [ ’ c1 ’ ]= ’ nueva ’
print ( dic ) { ’ c2 ’: ’a ’ , ’ c1 ’: ’ nueva ’}
Actividades
1. Crear una lista que contenga 10 nombres
2. Crear un diccionario que contenga los nombres de los 4 componentes de una familia y el
dia de su cumpleaños.
Tuplas, listas y diccionarios son elementos básicos del lenguaje, a continuación se verán
estructuras más especializadas en el manejo de objetos matemáticos.
import numpy as np
a = np . array ([2 ,3 ,5 ,8 ,9])
print ( a ) [2 3 5 8 9]
print ( a . shape ) (5 ,)
print ( b . shape ) (2 , 3)
Una capacidad muy útil de la librerı́a numpy es la de crear vectores equiespaciados, se pueden
usar los comandos linspace y arange.
a = np . linspace (0 ,1 ,10)
print ( a . shape ) (10 ,)
a = a [: , np . newaxis ]
print ( a . shape ) (10 , 1)
También existen funciones para crear matrices especiales, como una matriz de ceros, de unos
o la matriz identidad.
print (z ,o , e )
Se pueden buscar en la matriz datos que cumplan una determinada condición. En el ejemplo
se crea una matriz con valores aleatorios y se buscan los valores mayores que 0.5.
print ( x +y , x * y ) [[ 5 12]
[21 32]]
Actividades
3. Definir el vector a = (2, 3, 5, 8, 9) y realizar las siguientes operaciones
(a) Calcular el cuadrado de cada elemento de a
(b) Encontrar el seno de a
(c) Agregar 3 a cada elemento de a
(d) Dividir cada elemento de a entre 2
5. Usar la función linspace para crear un vector de seis valores uniformemente espaciados
de 10 a 20
6. Usar la función a para crear un vector cuyos elementos vayan entre 1 y 49 con un
incremento de 3
1
4
5
7. Definir los vectores X = (1, 5, 6, 7, 3), Y = (3, 5, 0, 1, 6), Z =
2
6
1 6 2 4 1
y las matrices A = 4 5 0, B = 2 5.
3 7 8 3 3
i. XY xi. A2
ii. XZ xii. B2
iii. X+Z (X + Y )
xiii.
iv. X+Y 4
v. BA xiv. El cuadrado de cada elemento de X
vi. AAB xv. El cuadrado de cada elemento de B
vii. AAA xvi. X sin(Y )
viii. BB xvii. Sustituir el tercer elemento de X por
ix. 5X el quinto
x. 3Z + 1 xviii. Sumar todos los elementos de X
1 1 1 ··· 1
8. a) Definir la matriz M = 2 4 6 ··· 200 donde la última
3.0001 4.8976 4.2117 · · · 3.8876
fila son valores aleatorios entre 3 y 5
b) Seleccionar los elementos de la columna 10
c) Sumar los elementos de la segunda fila
12. En 1873, Johannes van der Diderik Waals propuso una versión modificada de la ley del
gas ideal con la que se modela mejor el comportamiento de los gases reales en un rango
más amplio de temperatura y presión.
n2 a
P + 2 (V − nb) = nRT
V
(a) Usar la ley de los gases ideales y la ecuación de van der Waals para calcular la
temperatura de vapor de agua (vapor), dados los siguientes datos:
13. Los datos cientı́ficos acostumbran a expresarse en unidades del Sistema Internacional.
Sin embargo, gran parte de la infraestructura en los Estados Unidos se ha fabricado en
unidades Sistema Anglosajón. Los ingenieros deben tener fluidez en ambos sistemas y
deben tener especial cuidado al compartir datos con otros ingenieros.
Tal vez el ejemplo más notorio de la confusión de unidades es el M ars Climate Orbiter.
En septiembre de 1999: la nave se quemó en la órbita de Marte a causa de que la tabla
de datos, probablemente generada a partir de las pruebas de túnel de viento, expresaba
la fuerza en libras cuando el programa esperaba los valores en newtons.
Crear una tabla de conversión de libras a newtons. La tabla debe comenzar desde 0 hasta
1,000 lb, en intervalos de 100 lb. El factor de conversión es 1 lb=4.4482216 N.
14. Quemar un galón de gasolina en su coche produce unas 19.4 libras de CO2 . Calcular la
cantidad de CO2 emitida durante un año para los siguientes vehı́culos, suponiendo que
todos recorren 12,000 millas al año.
En Europa el consumo de los vehı́culos suele expresarse en litros por 100 km. Completar
la tabla anterior para añadir una columna en la que se muestre el consumo en litros por
100 km.
15. La fuerza de fricción que sufre una masa m sobre una superficie horizontal es Froz = µmg,
donde µ es el coeficiente de fricción, que es una constante que depende fundamentalmente
de los materiales que componen la masa y la superficie.
material µ
madera 0.4
acero 0.7
cemento 1
material ρ (Ω/m)
plata 1.59 · 10−8
cobre 1.68 · 10−8
oro 2.44 · 10−8
aluminio 2.82 · 10−8
hierro 1.00 · 10−7
(a) Calcular la potencia que se disipa a través de un cable con diámetro de 0.001 m y
longitud 2.00 m para cada uno de los materiales mencionados en la tabla. Suponga
que el cable lleva una corriente de 120 amperios.
(b) Repetir el inciso a) para 10 longitudes de cable, desde 1 m hasta 1 km. Usar
espaciamiento logarı́tmico.
Gráficos
La librerı́a que contiene las capacidades gráficas se llama matplotlib.
import numpy as np
import matplotlib . pyplot as plt
from math import pi
plt . plot (x , y )
plt . show ()
Ficheros de texto
A menudo es conveniente guardar o cargar información en fichero de texto, la librerı́a numpy
cuenta con las funciones savetxt y loadtxt que permiten almacenar o recuperar una matriz
de un archivo de texto.
El siguiente código guarda diez valores aleatorios entre 0 y 1 en el archivo datos.txt, para
recuperarlos de nuevo del archivo y graficarlos.
import numpy as np
import matplotlib . pyplot as plt
N = 10
n = np . arange (1 , N +1)
r = np . random . random (10)
M = np . array ([ n , r ])
print ( M )
import numpy as np
import matplotlib . pyplot as plt
x = np . linspace (0 , 2 * np . pi , 400)
y = np . sin ( x ** 2)
Gráficas 3D
Comando mesh
La gráficas 3D muestran una superficie, dada por las coordenadas z de los valores de la
función evaluada sobre una malla en el plano xy, utilizando lı́neas rectas para conectar los
puntos adyacentes.
Previamente al uso de las funciones gráficas es necesario construir la malla de valores donde
se evaluará la función de dos variables con el comando meshgrid.
La función plot surf ace muestra superficies en tres dimensiones. En este ejemplo se grafica
sin r p
la función sinc f (r) = donde r = x2 + y 2
r
X = np . arange ( -5 , 5 , 0.25)
Y = np . arange ( -5 , 5 , 0.25)
X , Y = np . meshgrid (X , Y )
R = np . sqrt ( X **2 + Y **2)
Z = np . sin ( R )
surf = ax . plot_surface (X , Y , Z )
plt . show ()
import numpy as np
import matplotlib . pyplot as plt
x = np . linspace ( -2 ,2 ,100)
y = np . linspace ( -2 ,2 ,100)
X , Y = np . meshgrid (x , y )
Z = np . exp ( X * Y )
fig = plt . figure ()
plt . contour (X ,Y , Z )
Actividades
17. Utilizar la librerı́a matplotlib para graficar la función y = ex entre -2 y 3.
18. (a) Graficar en una misma gráfica las funciones y1 = sin x e y2 = cos x en el intervalo de
0 a 2π con un incremento de 0.1π. Añadir un tı́tulo.
(b) Rehacer el inciso anterior pero haciendo que la lı́nea de sin x sea de color rojo y la
lı́nea de cos x de color verde y salpicado. Agregue nombres a los ejes y una leyenda.
(c) Ajuste los ejes de modo que el eje x vaya de −1 a 2π + 1 y el eje y de −1.5 a 1.5.
19. Graficar las 6 funciones trigonométricas básicas en una misma ventana dividida en 3 filas
y dos columnas.
20. Un proyectil lanzado verticalmente a una velocidad inicial v0 tiene como posición y =
y0 + v0 t − 12 gt2 donde g = 9.8.
Mm 2
21. La ley de gravitación universal establece que F = G donde G = 6.67 × 10−11 Nkgm2 y
r2
M = 5.97 × 1024 kg.
a) Calcular la fuerza en Newtons que sufrirá una masa m = 75kg que esté a una distancia
r = 6400km.
b) Construir una tabla que muestre la fuerza para r entre 6400 y 10400 km con un
tamaño de paso de 50.
c) Graficar F frente a r.
q1 q2
22. La ley de Coulomb establece que la fuerza entre dos cargas es F = k , donde k =
r2
9 × 109 , qi son las cargas en Coulombs y r es la distancia que las separa. Además, F tiene
la dirección del radio vector que une las dos cargas.
a) Escribir un script que calcule la fuerza entre dos cargas dadas sus magnitudes y
posiciones.
b) Usar el script para calcular la fuerza entre una carga q1 = 2 × 10−5 C situada en la
posición (0,0) y q2 = 3 × 10−5 C situada en (2,2).
c) Graficar las dos cargas y el vector que representa la fuerza de Coulomb. Para graficar
un vector se puede usar la función quiver.