El presente informe académico técnico, desarrollado por el Grupo N° 05 de la Carrera de Estadística de la Universidad Central del Ecuador, aborda la investigación, diseño e implementación de algoritmos en el lenguaje de programación R para la resolución analítica y automatizada de ecuaciones cuadráticas (evaluando rigurosamente el discriminante para soluciones reales y complejas) y la resolución de sistemas de ecuaciones lineales de dos incógnitas (2x2) mediante herramientas de álgebra lineal matricial.
Adicionalmente, se documenta el flujo completo de trabajo analítico y reproducible mediante la integración de R Markdown y la publicación web en la plataforma RPubs, proporcionando una solución integral que combina la teoría matemática con la práctica computacional moderna.
Hoy en día, cuando estudiamos asignaturas como matemáticas, estadística o economía en el nivel universitario, nos damos cuenta de que resolver problemas largos a mano puede volverse una tarea sumamente pesada, tediosa y propenso a equivocarnos por un pequeño signo o un número mal puesto en el último paso. En el ámbito académico y profesional moderno, la velocidad y la precisión en el cálculo son variables fundamentales para el éxito del análisis cuantitativo. Por suerte, hoy contamos con herramientas avanzadas de programación como R, que nos ayudan a automatizar estos cálculos de manera exacta y nos hacen el flujo de trabajo académico mucho más ágil y confiable.
Aprender a usar estas herramientas computacionales no solo nos ahorra una cantidad considerable de tiempo operativo, sino que nos otorga la tranquilidad y la seguridad de que los resultados obtenidos son matemáticamente exactos. Asimismo, nos permite visualizar de forma mucho más clara cómo se aplica la teoría matemática a la práctica computacional real. Además, nos ayuda a perderle el miedo a la programación aplicada y a entender mejor los procesos lógicos subyacentes que estructuran la toma de decisiones basada en datos.
El análisis cuantitativo y la resolución formal de problemas algebraicos constituyen uno de los pilares fundamentales de las matemáticas aplicadas, la econometría y la ciencia de datos. En el marco del aprendizaje del lenguaje de programación R dentro de la Universidad Central del Ecuador, resulta indispensable aprender a codificar soluciones analíticas estructuradas para ecuaciones de segundo grado de la forma ax² + bx + c = 0, así como aplicar herramientas de álgebra lineal matricial para resolver sistemas de ecuaciones simultáneas de dos incógnitas de manera automatizada.
En este informe técnico, el Grupo N° 05 presenta un reporte técnico riguroso que abarca la fundamentación teórica, la codificación en lenguaje R, la verificación numérica mediante casos de prueba reales, complejos y matriciales, y la integración completa del documento mediante R Markdown. En este trabajo vamos a ver dos cosas prácticas usando R, presentar un informe técnico riguroso que abarca la teoría, codificación y verificación numérica de dichos algoritmos en R, primero, cómo resolver una ecuación de segundo grado creando una pequeña función que calcula automáticamente las soluciones y segundo, cómo resolver un sistema de dos ecuaciones con dos incógnitas usando matrices con la orden solve(). Todo esto lo armamos directamente en R Markdown para presentar un reporte ordenado, limpio y fácil de entender.
Resolver ecuaciones de segundo grado y sistemas de ecuaciones de dos incógnitas mediante procedimientos matemáticos y el uso del lenguaje de programación R, comprobando los resultados obtenidos.
Para comprender a profundidad los algoritmos desarrollados en este trabajo, es necesario establecer los fundamentos matemáticos y conceptuales que rigen tanto a las ecuaciones cuadráticas como a los sistemas de ecuaciones lineales.
Una ecuación de segundo grado o ecuación cuadrática es una ecuación algebraica de una sola variable que tiene la forma general:
ax^2 + bx + c = 0, donde a diferente de 0
Donde ‘a’, ‘b’ y ‘c’ representan constantes reales conocidas como coeficientes de la ecuación (siendo ‘a’ el coeficiente cuadrático, ‘b’ el coeficiente lineal y ‘c’ el término independiente). La resolución analítica de esta ecuación se obtiene mediante la fórmula general matemática:
\(x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\)
La naturaleza y la cantidad de las soluciones de la ecuación cuadrática están determinadas por la expresión radicando dentro de la fórmula general, denominada Discriminante, la cual se simboliza usualmente con la letra griega delta mayúscula (\(\Delta\)):
$\Delta$ = b^2 - 4ac
El análisis del discriminante nos permite clasificar las raíces de la ecuación en tres escenarios perfectamente diferenciados:
Si \(\Delta\) > 0: El discriminante es positivo. La raíz cuadrada del discriminante es un número real positivo, lo que origina dos soluciones reales y distintas (\(x_1\) diferente \(x_2\)). Gráficamente, la parábola representada por la función f(x) = ax^2 + bx + c corta al eje de las abscisas (eje X) en dos puntos diferentes.
Si \(\Delta\) = 0: El discriminante es igual a cero. La fórmula se reduce a x = -b / (2a), lo que da como resultado una única solución real doble (o dos raíces reales iguales: \(x_1\) = \(x_2\)). Gráficamente, el vértice de la parábola es tangente al eje X.
Si \(\Delta\) < 0: El discriminante es negativo. Dado que en el conjunto de los números reales (R) no existe la raíz cuadrada de un número negativo, las soluciones no pertenecen a los números reales, sino al conjunto de los números complejos (C). Las raíces adoptan la forma conjugada a ± bi, donde ‘i’ representa la unidad imaginaria \(i = \sqrt{-1}\). Gráficamente, la parábola no intersecta el eje X en ningún punto.
Para resolverlas, calculamos algo el discriminante:
• Si sale mayor a cero, tenemos dos respuestas reales diferentes. • Si sale cero, tenemos una sola respuesta repetida. • Si sale menor a cero, la respuesta nos da con números complejos.
Resolver_cuadrática (1, -5, 6)
Definimos la función general \(ax^2 + bx + c = 0\):
# Función para resolver ecuaciones cuadráticas: ax^2 + bx + c = 0
resolver_cuadratica <- function(a, b, c) {
disc <- b^2 - 4 * a * c
if (disc > 0) {
x1 <- (-b + sqrt(disc)) / (2 * a)
x2 <- (-b - sqrt(disc)) / (2 * a)
cat("Dos soluciones reales distintas:\n")
cat("x1 =", x1, "\n")
cat("x2 =", x2, "\n")
} else if (disc == 0) {
x1 <- -b / (2 * a)
cat("Una solución real (raíz doble):\n")
cat("x =", x1, "\n")
} else {
real <- -b / (2 * a)
imag <- sqrt(-disc) / (2 * a)
cat("Soluciones complejas:\n")
cat("x1 =", real, "+", imag, "i\n")
cat("x2 =", real, "-", imag, "i\n")
}
}
# Ejemplo de prueba: x^2 - 5x + 6 = 0
resolver_cuadratica(1, -5, 6)
## Dos soluciones reales distintas:
## x1 = 3
## x2 = 2
Un sistema de dos ecuaciones lineales simultáneas con dos incógnitas (sistema 2x2) tiene la siguiente forma algebraica estándar: \[ \begin{aligned} a_{11}x + a_{12}y &= b_1 \\ a_{21}x + a_{22}y &= b_2 \end{aligned} \]
Este sistema puede expresarse de manera compacta mediante la ecuación matricial equivalente:
A · X = B
Donde ‘A’ es la matriz de coeficientes de dimensión 2x2, ‘X’ es el vector columna de las incógnitas (x, y), y ‘B’ es el vector columna de los términos independientes (\(b_1\), \(b_2\)): \[ A = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}, \quad X = \begin{pmatrix} x \\ y \end{pmatrix}, \quad B = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix} \]
Si la matriz de coeficientes ‘A’ es no singular (es decir, su determinante es diferente de cero: det(A) diferente 0), la matriz posee una inversa A^-1, y la solución única del sistema viene dada por la multiplicación matricial:
X = A^-1 · B
En el lenguaje de programación R, este cálculo matricial no requiere la inversión explícita e ineficiente de matrices, sino que se ejecuta a través de la función nativa solve(A, B), la cual implementa algoritmos altamente optimizados basados en la descomposición LU de Lapack.
Para resolver un sistema matricial del tipo A · X = B, representamos el sistema algebraico a través de una matriz de coeficientes A y un vector de términos independientes B, empleando la función nativa solve() de R. Ejemplo del sistema a resolver:
3x + y = 7 x+ 2y = 9
Resolvemos el sistema matricial \(A \cdot X = B\): \[\begin{cases} 3x + y = 7 \\ x + 2y = 9 \end{cases}\]
# Matriz A de coeficientes y vector B de constantes
A <- matrix(c(3, 1, 1, 2), nrow = 2, byrow = TRUE)
B <- c(7,9)
# Solución con la función solve()
solucion <- solve(A, B)
names(solucion) <- c("x", "y")
print(solucion)
## x y
## 1 4
Los resultados obtenidos demuestran que R no es únicamente un entorno estadístico, sino un lenguaje de programación robusto para la resolución de problemas matemáticos y la creación de reportes reproducibles.
Entre las principales ventajas competitivas de R frente a otros métodos destacan:
Código Abierto y Gratuito: R es software libre de nivel internacional, sin costos de licenciamiento.
Potencia Matricial Nativa: La función solve() resuelve sistemas de ecuaciones de forma directa sin requerir librerías externas complejas.
Flexibilidad Lógica: Permite construir funciones condicionales para manejar escenarios numéricos diversos (reales y complejos).
Documentación Unificada: R Markdown elimina la necesidad de copiar y pegar resultados manualmente en procesadores de texto, reduciendo errores humanos.
R proporciona herramientas nativas muy potentes tanto para el álgebra lineal como para la programación de funciones personalizadas, facilitando la automatización de procesos matemáticos complejos.
El uso de funciones personalizadas en R permite automatizar la resolución de ecuaciones de segundo grado mediante la evaluación del discriminante, reduciendo significativamente los errores de cálculo manual y agilizando el análisis de resultados complejos, ya sean reales o imaginarios.
La función solve() demostró ser una herramienta sumamente potente y directa para la resolución de sistemas de ecuaciones lineales de dos incógnitas expresados en forma matricial (\(AX = B\)), evidenciando la capacidad de R para manejar estructuras de álgebra lineal con gran precisión.
La combinación de R Markdown y RPubs potencia la divulgación científica y académica, ya que permite integrar en un solo flujo de trabajo la redacción teórica, la ejecución de código en tiempo real y la generación de reportes profesionales en formatos reproducibles como PDF y HTML.
Los métodos implementados no solo resuelven los casos particulares planteados, sino que establecen una base lógica escalable que puede adaptarse fácilmente para resolver sistemas de mayor dimensión o ecuaciones polinómicas más complejas en futuras investigaciones matemáticas.
Revisar bien los signos antes de ejecutar el código del sistema, asegúrate de haber colocado correctamente los signos positivos y negativos en la matriz para evitar resultados incorrectos.
Dejar comentarios en el código ya que es superútil poner notas breves al lado del código en R Markdown para recordar qué hace cada comando al momento de repasar o explicar el informe.
Probar diferentes ejemplos podemos intentar cambiar los números de las ecuaciones para comprobar que las funciones funcionen bien con soluciones enteras, decimales o complejas.
Cuidar el formato del documento mantener el texto explicativo fuera de los bloques de código (chunks) para que al compilar el PDF no aparezcan errores de sintaxis.
Maurandi, A. (s. f.). Como publicar en rpubs. RPubs. Recuperado el 8 de noviembre de 2026, de https://rpubs.com/amaurandi/rpubs-info3
Markdown.es. (s. f.). Sintaxis Markdown: Guía completa con ejemplos. Recuperado el 8 de noviembre de 2026, de https://markdown.es/sintaxis-markdown/
R Core Team. (2024). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
Xie, Y. (2021). R Markdown: The Definitive Guide. Chapman and Hall/CRC. https://bookdown.org/yihui/rmarkdown/