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.
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.
Un sistema de ecuaciones es un conjunto de ecuaciones que deben cumplirse al mismo tiempo.
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);
En un sistema con dos incógnitas, la solución suele escribirse como un par ordenado (x, y).
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.
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.
El método de sustitución consiste en despejar una variable en una ecuación y reemplazarla en la otra.
const y = (10 - 2) / 2;
const x = 10 - y;
console.log(x);
console.log(y);
El método de eliminación combina ecuaciones para cancelar una variable. Es útil cuando los coeficientes permiten sumar o restar ecuaciones fácilmente.
const sumaEcuaciones = 10 + 2;
const x = sumaEcuaciones / 2;
const y = 10 - x;
console.log(x);
console.log(y);
Un sistema lineal de dos ecuaciones con dos incógnitas puede escribirse así:
Los coeficientes a1, b1, a2 y b2 indican cómo participa cada variable en cada ecuación.
Para sistemas 2x2 con solución única, podemos usar determinantes. El denominador común es:
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));
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.
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.
Si conocemos el total pagado por dos tipos de entradas y sus cantidades, podemos plantear un sistema para encontrar precios.
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.
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);
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.
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.
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);
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.