21. Sistemas simples de ecuaciones

Un sistema de ecuaciones reúne varias igualdades que deben cumplirse al mismo tiempo. Resolverlo significa encontrar valores que satisfacen todas las ecuaciones simultáneamente.

21.1 Introducción

En una ecuación de primer grado buscamos una incógnita. En un sistema simple de ecuaciones buscamos varios valores relacionados entre sí.

Estos sistemas aparecen cuando un problema tiene más de una condición. Por ejemplo, conocer el total de una compra y también la diferencia entre cantidades, o calcular dos precios cuando sabemos una suma y otra relación.

En este tema trabajaremos principalmente con sistemas de dos ecuaciones y dos incógnitas.

21.2 Qué es un sistema de ecuaciones

Un sistema de ecuaciones es un conjunto de ecuaciones que deben cumplirse al mismo tiempo.

x + y = 10
x - y = 2

La solución es el par de valores que hace verdaderas ambas igualdades. En este caso, x = 6 e y = 4.

const x = 6;
const y = 4;

console.log(x + y);
console.log(x - y);

21.3 Solución como par ordenado

En un sistema con dos incógnitas, la solución suele escribirse como un par ordenado (x, y).

Para el sistema:
x + y = 10
x - y = 2
la solución es (6, 4).
const solucion = {
  x: 6,
  y: 4
};

console.log(solucion);

Representar la solución como objeto ayuda a mantener claro qué valor corresponde a cada variable.

21.4 Verificar una solución

Antes de confiar en una solución, conviene sustituir los valores en todas las ecuaciones del sistema.

function verificaSistema(x, y) {
  const primera = x + y === 10;
  const segunda = x - y === 2;

  return primera && segunda;
}

console.log(verificaSistema(6, 4));
console.log(verificaSistema(5, 5));

Una solución debe cumplir todas las ecuaciones, no solo una de ellas.

21.5 Método de sustitución

El método de sustitución consiste en despejar una variable en una ecuación y reemplazarla en la otra.

x + y = 10
x - y = 2

De la primera: x = 10 - y
Sustituyendo: (10 - y) - y = 2
10 - 2y = 2
y = 4
x = 6
const y = (10 - 2) / 2;
const x = 10 - y;

console.log(x);
console.log(y);

21.6 Método de eliminación

El método de eliminación combina ecuaciones para cancelar una variable. Es útil cuando los coeficientes permiten sumar o restar ecuaciones fácilmente.

x + y = 10
x - y = 2

Sumando ambas ecuaciones:
2x = 12
x = 6
const sumaEcuaciones = 10 + 2;
const x = sumaEcuaciones / 2;
const y = 10 - x;

console.log(x);
console.log(y);

21.7 Forma general de un sistema 2x2

Un sistema lineal de dos ecuaciones con dos incógnitas puede escribirse así:

a1x + b1y = c1
a2x + b2y = c2

Los coeficientes a1, b1, a2 y b2 indican cómo participa cada variable en cada ecuación.

21.8 Resolver un sistema 2x2 con fórmula

Para sistemas 2x2 con solución única, podemos usar determinantes. El denominador común es:

determinante = a1 × b2 - a2 × b1

Si el determinante no es cero, hay una solución única.

function resolverSistema(a1, b1, c1, a2, b2, c2) {
  const determinante = a1 * b2 - a2 * b1;

  if (determinante === 0) {
    return "No hay solución única";
  }

  const x = (c1 * b2 - c2 * b1) / determinante;
  const y = (a1 * c2 - a2 * c1) / determinante;

  return { x: x, y: y };
}

console.log(resolverSistema(1, 1, 10, 1, -1, 2));

21.9 Aplicación: dos productos y un total

Supongamos que una compra tiene dos tipos de productos. Sabemos que se compraron 10 unidades en total y que hay 2 unidades más del producto A que del producto B.

a + b = 10
a - b = 2
const total = 10;
const diferencia = 2;

const productoA = (total + diferencia) / 2;
const productoB = total - productoA;

console.log(productoA);
console.log(productoB);

Este patrón aparece cuando conocemos una suma y una diferencia.

21.10 Aplicación: precios de dos entradas

Si conocemos el total pagado por dos tipos de entradas y sus cantidades, podemos plantear un sistema para encontrar precios.

2a + 3b = 21000
a + b = 8000
function resolverSistema(a1, b1, c1, a2, b2, c2) {
  const determinante = a1 * b2 - a2 * b1;

  if (determinante === 0) {
    return "No hay solución única";
  }

  return {
    x: (c1 * b2 - c2 * b1) / determinante,
    y: (a1 * c2 - a2 * c1) / determinante
  };
}

console.log(resolverSistema(2, 3, 21000, 1, 1, 8000));

En el objeto devuelto, x representa el precio de la entrada A e y el precio de la entrada B.

21.11 Sistemas sin solución única

Si el determinante es cero, las rectas pueden ser paralelas o coincidir. En esos casos no hay una solución única.

Caso Interpretación Soluciones
Rectas que se cruzan Hay un punto común Una solución
Rectas paralelas No se cruzan Sin solución
Rectas coincidentes Son la misma recta Infinitas soluciones
const a1 = 1;
const b1 = 2;
const a2 = 2;
const b2 = 4;

const determinante = a1 * b2 - a2 * b1;

console.log(determinante);

21.12 Verificación con tolerancia

Cuando los resultados tienen decimales, puede ser conveniente verificar con una tolerancia en lugar de igualdad exacta.

function casiIguales(a, b, tolerancia) {
  return Math.abs(a - b) < tolerancia;
}

const x = 1 / 3;
const y = 2 / 3;

console.log(casiIguales(x + y, 1, 0.0000001));

Esto evita problemas por precisión numérica cuando trabajamos con decimales.

21.13 Resolver por prueba en rangos pequeños

Para problemas sencillos con valores enteros pequeños, también podemos buscar soluciones probando combinaciones. No es el método algebraico más elegante, pero puede ser útil en programación.

for (let x = 0; x <= 10; x++) {
  for (let y = 0; y <= 10; y++) {
    if (x + y === 10 && x - y === 2) {
      console.log({ x: x, y: y });
    }
  }
}

Este enfoque se parece a una búsqueda exhaustiva y solo conviene cuando el rango es pequeño.

21.14 Errores comunes

  • Encontrar valores que cumplen una ecuación pero no verificar la otra.
  • Confundir el orden de las variables al representar la solución.
  • Olvidar validar si el determinante es cero.
  • Cambiar signos al eliminar variables.
  • Usar igualdad exacta con decimales cuando conviene una tolerancia.
  • No traducir correctamente los datos del problema a ecuaciones.
const x = 6;
const y = 4;

const cumplePrimera = x + y === 10;
const cumpleSegunda = x - y === 2;

console.log(cumplePrimera);
console.log(cumpleSegunda);
console.log(cumplePrimera && cumpleSegunda);

21.15 Qué debes recordar de este tema

  • Un sistema de ecuaciones exige que varias igualdades se cumplan al mismo tiempo.
  • En sistemas con dos incógnitas, la solución puede representarse como un par (x, y).
  • El método de sustitución despeja una variable y la reemplaza en otra ecuación.
  • El método de eliminación combina ecuaciones para cancelar una variable.
  • Un sistema 2x2 tiene solución única si su determinante no es cero.
  • Siempre conviene verificar la solución en todas las ecuaciones.
  • En programación también puede resolverse por fórmula o por búsqueda, según el problema.

21.16 Conclusión

Los sistemas simples de ecuaciones permiten resolver problemas con varias condiciones simultáneas. Son una herramienta útil para relacionar cantidades, modelar restricciones y encontrar valores que deben cumplir más de una regla.

En el próximo tema estudiaremos interpretación de fórmulas, para leer correctamente relaciones matemáticas antes de transformarlas en código.