Resolviendo problemas reales.
En artículos anteriores vimos operaciones sobre vectores y matrices desde la perspectiva matemática. Vamos a ver cómo esas mismas operaciones pueden resolver problemas reales, como descubrir cuánto cuesta cada producto de un supermercado.
Escenario

Volvemos a nuestro supermercado de frutas. Imaginemos que tenemos tres personas:
Bob, Alice y Tim, que han ido al supermercado y compraron manzanas, naranjas y peras. Podemos representar sus compras en una matriz \(M\):
$$M = \begin{bmatrix} 3 & 6 & 2 \\ 10 & 3 & 8 \\ 1 & 7 & 5 \end{bmatrix}$$
Cada fila representa una persona, y cada columna representa un producto:
| Persona | Manzanas | Naranjas | Peras |
|---|---|---|---|
| Bob | 3 | 6 | 2 |
| Alice | 10 | 3 | 8 |
| Tim | 1 | 7 | 5 |
El coste total
Sabemos cuánto pagó cada persona:
$$C =\begin{bmatrix} 34 \\ 69 \\ 48 \end{bmatrix}$$
Y queremos averiguar cuánto cuesta cada producto. Presentemos los importes que gasto cada uno en un vector que llamamos \( P \) , vector de precios:
$$P = \begin{bmatrix} p_1 \\ p_2 \\ p_3 \end{bmatrix} $$
Donde:
- \(p_1\) –> precio de la manzana
- \(p_2\) –> precio de la naranja
- \(p_3\) –> precio de la pera
Sabemos que:
$$M \cdot P = C$$
o, dicho en palabras: la cantidad comprada multiplicada por el precio unitario da el coste total.
Escribiendo las ecuaciones
Multiplicar la matriz \(M\) por el vector \(P\) nos da tres ecuaciones:
$$ \begin{cases} 3p_1 + 6p_2 + 2p_3 = 34 \\ 10p_1 + 3p_2 + 8p_3 = 69 \\ 1p_1 + 7p_2 + 5p_3 = 48 \end{cases}$$
Esto es un sistema de ecuaciones lineales con tres incógnitas: \( p_1, p_2, p_3 \). El sistema de ecuaciones en formato matricial:
$$ \begin{bmatrix} 3 & 6 & 2 \\ 10 & 3 & 8 \\ 1 & 7 & 5 \end{bmatrix} \cdot \begin{bmatrix} p_1 \\ p_2 \\ p_3 \end{bmatrix} = \begin{bmatrix} 34 \\ 69 \\ 48 \end{bmatrix} $$
Recordando, tenemos aqui:
- Matriz de coeficientes: contiene los números que multiplican a las variables (las cantidades de las frutas).
- Vector de incógnitas: las variables que queremos encontrar (precio de las frutas).
- Vector de resultados: los valores en el lado derecho (total de dinero gastado).
Solución
Método de eliminación (Gauss, eliminación hacia adelante con sustitución). Se despeja una variable y se sustituye, reduciendo gradualmente el sistema hasta obtener cada variable.
Paso 1 — despejar p1 de la ecuación (1)
$$ 3p_1 + 6p_2 + 2p_3 = 34$$
$$ p_1 =\frac{34}{3} \, – 2p_2 \, – \frac{2p_3}{3}$$
Paso 2 — sustituir \(p_1\) en las ecuaciones (2) y (3)
Sustitución en la ecuación (2):
$$10p_1 + 3p_2 + 8p_3 = 69$$
$$10(\frac{34}{3} – 2p_2 – \frac{2p_3}{3}) + 3p_2 + 8p_3 = 69$$
Multiplicamos todo por 3 para eliminar el denominador:
$$340−60p2−20p3+9p2+24p3 \\ =207$$
Agrupamos términos semejantes:
- Términos en p_2: −60p_2+9p_2=−51p_2
- Términos en p_3: −20p_3+24p_3=4p_3
Queda:
$$340−51p2+4p3=207$$
Pasamos 340 al otro lado y calculamos:
$$−51p2+4p3=207−340$$
$$−51p2+4p3=-133$$
Multiplicamos por −1 (para simplificar signos)(Ecuación A):
$$51p2-4p3=133$$
Sustitución en la ecuación (3):
$$1p_1 + 7p_2 + 5p_3 = 48$$
$$\frac{34}{3} – 2p_2 – \frac{2p_3}{3} + 7p_2 + 5p_3 = 48$$
Multiplicamos por 3:
$$34−6p2−2p3+21p2+15p3=144$$
Agrupamos:
- Términos en \(p_2: -6p_2 + 21p_2 = 15p_2\)
- Términos en \(p_3: -2p_3 + 15p_3 = 13p_3\)
Queda:
$$34+15p_2+13p_3=144$$
Pasamos 34 al otro lado (Ecuación B):
$$15p_2+13p_3=144−34=110$$
Ahora hemos reducido el sistema original a dos ecuaciones en \(p_2\) y \(p_3\):
- (A) \(51p_2 – 4p_3 = 133\)
- (B) \(15p_2 +13p_3 = 110\)
Paso 3 — resolver el sistema reducido (A) y (B)
Usamos eliminación. Multiplicamos la ecuación A por 15 y la B por −51 para cancelar \(p_2\):
- A * 15: \( 765p_2 – 60p_3 = 1995\)
- B * (-51): \( -765p_2 – 663p_3 = -5610\)
Sumamos las dos ecuaciones:
$$(765p2−60p3)+(−765p2−663p3)\\=1995−5610$$
Se cancelan los \(p_2\) Queda:
$$−723p3=−3615$$
Despejamos \(p_3\):
$$p_3 = \frac{-3615}{-723} = \frac{3615}{723} = 5$$
Ahora sustituimos \(p_3 = 5\) en la ecuación B:
$$15p_2+13 \cdot 5=110$$
$$15p_2+65 =110$$
$$15p_2 =45$$
$$p_2 =3$$
Por último, calculamos \(p_1\) usando la fórmula que obtuvimos en el Paso 1:
$$p_1 = \frac{34 – 6p_2 – 2p_3}{3}$$
$$p_1 = \frac{34 – 6 \cdot 3 – 2 \cdot 5}{3}$$
$$p_1 = \frac{34 – 18 – 10}{3}$$
$$p_1 = \frac{6}{3} = 2$$
Resultado final: \(p_1 = 2, p_2 = 3, p_3 = 5\)
Precios
- Manaza: 2$
- Naranja: 3€
- Pera: 5€
Paso 4 — verificación (comprobación directa)
Multiplicamos la matriz por el vector precios para ver si obtenemos los costes:
$$M = \begin{bmatrix} 3 & 6 & 2 \\ 10 & 3 & 8 \\ 1 & 7 & 5 \end{bmatrix}, p = \begin{bmatrix} 2 \\ 3 \\ 5 \end{bmatrix}$$
Producto \(Mp\):
- Fila 1: \( 3 \cdot 2 + 6 \cdot 3 + 2 \cdot 5 = 34\)
- Fila 2: \( 10 \cdot 2 + 3 \cdot 3 + 8 \cdot 5 = 69\)
- Fila 3: \( 1 \cdot 2 + 7 \cdot 3 + 5 \cdot 5 = 48\)
Solución con Python
Este código usa numpy.linalg.solve, que aplica internamente eliminación de Gauss con pivotado, y es la forma más eficiente y segura de resolver sistemas lineales \(\)A \cdot x = b en Python.
import numpy as np
# Matriz de coeficientes
A = np.array([
[3, 6, 2],
[10, 3, 8],
[1, 7, 5]
], dtype=float)
# Vector de resultados
b = np.array([34, 69, 48], dtype=float)
# Resolver el sistema A·x = b
sol = np.linalg.solve(A, b)
# Mostrar resultados
p1, p2, p3 = sol
print(f"p1 = {p1:.2f}, p2 = {p2:.2f}, p3 = {p3:.2f}")Salida:
p1 = 2.00, p2 = 3.00, p3 = 5.00
Deja una respuesta