En programación, a menudo se necesita generar valores numéricos uniformemente espaciados y para ello necesitamos una fórmula que nos proporciones los valores. En matemáticas esos conjunto de valores se denominan sucesiones aritméticas y con un poco de entrenamiento, las fórmulas se pueden hacer de cabeza.
En esta lección se trata la teoría y la práctica de las sucesiones aritméticas. En la página de Ejercicios Sucesiones aritméticas se puede practicar el cálculo de fórmulas.
Una sucesión artimética (o progresión aritmética) es una serie ordenada de valores (también llamados términos) ...
`U_n = { U_0, U_1, U_2, U_3, U_4, ...}`
... en la que la diferencia entre dos valores consecutivos es siempre la misma:
`U_(n+1) - U_n = d`
Por ejemplo, la sucesión ...
`U_n = { 10, 13, 16, 19, 22, ...}`
es una sucesión aritmética de diferencia 3 porque la diferencia entre dos términos consecutivos es siempre 3:
`U_1 - U_0 = 13 - 10 = 3`
`U_2 - U_1 = 16 - 13 = 3`
`U_3 - U_2 = 19 - 16 = 3`
... etc ...
El índice `n` que identifica a los términos de la sucesión suele empezar desde 0, es decir, que el primer término de la sucesión es el término `U_0`, el segundo término es el término `U_1`, etc.
En una sucesión aritmética cada término se puede calcular a partir del anterior, ya que si ...
`U_(n+1) - U_n = d`
... entonces ...
`U_(n+1) = U_n + d`
Es decir,
`U_1 = U_0 + d`
`U_2 = U_1 + d`
`U_3 = U_2 + d`
... etc ...
Entonces,
`U_1 = U_0 + d`
`U_2 = U_1 + d = (U_0 + d) + d = U_0 + 2 * d`
`U_3 = U_2 + d = (U_0 + 2 * d) + d = U_0 + 3 * d`
... etc ...
En general, podemos expresar un término cualquiera en función del primer término:
`U_n = U_0 + n * d`
Esta fórmula expresa el término general de la sucesión y se puede escribir también como:
`U_n = d * n + U_0`
Por ejemplo, la sucesión ...
`U_n = { 10, 13, 16, 19, 22, ...}`
... que es una sucesión aritmética de diferencia 3 tiene por término general:
`U_n = 3 * n + 10`
Por ejemplo, el quinto valor de la sucesión es `U_4 = 3 * 4 + 10 = 22`
Se puede expresar el término general `U_n` en función de un término cualquiera `U_i`, ya que si ...
`U_n = U_0 + n * d`
... y ...
`U_i = U_0 + i * d`
... podemos escribir ...
`U_n = U_0 + n * d = U_0 + (i + n - i) * d = U_0 + i * d + (n - i) * d = U_i + (n - i) * d`
Si en vez de utilizar la notación `U_n`utilizamos la notación `f(n)`, el término general se escribiría como:
`f(n) = d * n + f(0)`
Es decir, que los términos de una sucesión aritmética se pueden calcular mediante una fórmula del tipo
`f(n) = a * n + b`
... en la que `a` es la diferencia entre dos términos consecutivos y b el valor `f(0)`.
El término general de una sucesión aritmética se puede emplear para obtener fórmulas a partir de valores en sucesión aritmética.
Si unos valores están en sucesión aritmética, sabemos por lo visto anteriormente que la fórmula será del tipo:
`f(n) = a * n + b`
... en la que `a` es la diferencia entre dos términos consecutivos y `b` se puede calcular a partir de cualquier valor de la sucesión, como podemos ver en los siguientes ejemplos:
Por ejemplo, consideremos estos dibujos hechos con palillos (un cuadrado, dos cuadrados, tres cuadrados, etc.):
Nos planteamos la pregunta de cuántos palillos harían falta para hacer un dibujo de 18 cuadrados (o cualquier otro número).
Una forma de resolver el problema sería encontrar la fórmula que relaciona el número de cuadros con el número de palillos.
Si escribimos los valores en una tabla, es fácil ver que se trata de una sucesión aritmética de diferencia 3:
Cuadros | 1 | 2 | 3 | ... | `n` |
---|---|---|---|---|---|
Palillos | 4 | 7 | 10 | ... | `f(n)` |
La fórmula será entonces la de una sucesión aritmética:
`f(n) = a * n + b`
Como en este caso la diferencia es 3, la fórmula será:
`f(n) = 3 * n + b`
Para averiguar `b`, basta con sustituir cualquier pareja de valores. Por ejemplo, para `n = 1` (un cuadrado), `f(n) = 4` (cuatro palillos), es decir:
`4 = 3 * 1 + b`
Resolviendo esta ecuación, tenemos que `b = 4 - 3 = 1`, por lo que la fórmula es:
`f(n) = 3 * n + 1`
La respuesta a la pregunta inicial es que para hacer un dibujo de 18 cuadrados necesitaremos `f(18) = 3 * 18 + 1 = 55` palillos.
Este método se puede aplicar a cualquier sucesión aritmética. Por ejemplo, queremos obtener la fórmula correspondiente a los siguientes valores:
`n` | ... | 17 | 18 | 19 | ... |
---|---|---|---|---|---|
`f(n)` | ... | 120 | 135 | 150 | ... |
Como se trata de una sucesión aritmética, la fórmula será entonces:
`f(n) = a * n + b`
Como en este caso la diferencia es 15, la fórmula será:
`f(n) = 15 * n + b`
Para averiguar b, basta con sustituir cualquier pareja de valores. Por ejemplo, para `n = 17`, `f(n) = 120`, es decir:
`120 = 15 * 17 + b`
Resolviendo esta ecuación, tenemos que `b = 120 - 255 = -135`, por lo que la fórmula buscada es:
`f(n) = 15 * n - 135`
Un caso un poco más complicado es cuando no conocemos valores consecutivos. Por ejemplo, queremos obtener la fórmula correspondiente a los siguientes valores:
`n` | ... | 4 | 9 | 13 | ... |
---|---|---|---|---|---|
`f(n)` | ... | -2 | 13 | 25 | ... |
Como se trata de una sucesión aritmética, la fórmula será entonces:
`f(n) = a * n + b`
Para calcular la diferencia, habrá que tener en cuenta que los valores no son consecutivos. Tomando cualquier pareja de valores:
`a = (25 - 13) / (13 - 9) = 12 / 4 = 3`
o
`a = (13 - (-2)) / (9 - 4) = 15 / 5 = 3`
Como en este caso la diferencia es 3, la fórmula será:
`f(n) = 3 * n + b`
Para averiguar b, basta con sustituir cualquier pareja de valores. Por ejemplo, para `n = 9`, `f(n) = 13`, es decir:
`13 = 3 * 9 + b`
Resolviendo esta ecuación, tenemos que `b = 13 - 27 = -14`, por lo que la fórmula buscada es:
`f(n) = 3 * n - 14`