Matemática Discreta/Relaciones de Recurrencia

De testwiki
Ir a la navegación Ir a la búsqueda

Plantilla:Referencias En Matemáticas, una relación de recurrencia es una ecuación que define una secuencia recursiva; cada término de la secuencia es definido como una función de términos anteriores.[1]

Definición

Una ecuación recurrente es un tipo específico de relación de recurrencia. Una relación de recurrencia para la sucesión a0,a1,a2, es una ecuación que relaciona an con alguno de sus predecesores a0,a1,,an1. Las condiciones iniciales para la sucesión a0,a1, son valores dados en forma explícita para un número finito de términos de la sucesión.[2]


Resolver una relación de recurrencia consiste en determinar una fórmula explícita (cerrada) para el término general an, es decir una función no recursiva de n.

Hay tres métodos para resolver relaciones recurrentes: iteración, transformada Z y un método especial que se aplica a las relaciones de recurrencia lineales homogéneas con coeficientes constantes.

Un ejemplo de una relación de recurrencia es el siguiente:

xn+1=rxn(1xn)

Algunas definiciones de recurrencia pueden tener relaciones muy complejas (caóticas), y sus comportamientos a veces son estudiados por los físicos y matemáticos en un campo conocido como análisis no lineal.

Resolución

Por hipótesis comprobada

La forma más sencilla para resolver una relación de recurrencia es formular una posible solución (hipótesis) y comprobar por inducción la validez de la misma.

En el caso de las "Torres de Hanoi", siendo t el número de pasos para resolver el problema con n discos, tn está dado por la siguiente ecuación de recurrencia:

t1:=1;tn:=2tn1+1

Resolver la recurrencia sería encontrar la ecuación que nos da el valor de tn en términos de n.

Al analizar la correspondencia para cada valor de tn con n desde {1,2,3,4,5}{1,3,7,15,31} especulamos que quizás la solución sea tn:=2n1, por lo que para comprobarla se procede a sustituir la hipótesis en la ecuación de recurrencia:

tn=2tn1+1=2(2n11)+1=2(2n21)+1=(2n2)+1=2n1

comprobándose la hipótesis como verdadera.[3]

Iteración

Para resolver una relación de recurrencia asociada a la sucesión: a0,a1,a2 por iteración, utilizamos la relación de recurrencia para escribir el n-ésimo término an en términos de algunos de sus predecesores. Luego utilizamos de manera sucesiva la relación de recurrencia para reemplazar cada uno de los términos por algunos de sus predecesores. Continuamos hasta llegar a alguno de los casos base.

Recurrencias Lineales

Una relación de recurrencia es lineal de grado k si tiene la siguiente estructura:

c0(n)an+c1(n)an1+...+ck1(n)ank+1+ck(n)ank=0

siendo ci(n) funciones reales de n, y F(n) una función de n.

El adjetivo lineal indica que cada término de la secuencia está definido como una función lineal de sus términos anteriores. El orden de una relación de recurrencia lineal es el número de términos anteriores exigidos por la definición.

En la relación an=an2 el orden es dos, porque debe haber al menos dos términos anteriores (ya sean usados o no).

Ejemplos :

3ann1an1+2an2=0

Ecuación de Recurrencia lineal homogénea con coeficientes constantes

Se llama ecuación de recurrencia lineal homogénea de grado k, con coeficientes constantes, a una expresión del tipo:

an+c1an1+c2an2++ckank=0,ci𝐑,ck0

Para poder encontrar una solución, hacen falta unas condiciones de contorno o iniciales a0,a1,,ak1, siendo k el grado de la ecuación.

La recurrencia lineal, junto con las condiciones iniciales a0,,ak1, determinan la secuencia única.

Sea la ecuación de recurrencia lineal homogénea de orden k anterior, se denomina ecuación característica a la ecuación de grado k:

xk+c1xk1++ck
La generación de la función racional

Las secuencias lineales recursiva son precisamente las secuencias cuya función de generación es una función racional: el denominador es el polinomio auxiliar (a una transformación), y el numerador se obtiene con los valores iniciales.

El caso más sencillo son las secuencias periódicas,an=and, n≥d que tienen secuencia a0,a1,,ad1,a0, y función de generación una suma de una serie geométrica:

a0+a1x1++ad1xd11xd=(a0+a1x1++ad1xd1)+(a0+a1x1++ad1xd1)xd+(a0+a1x1++ad1xd1)x2d+

Más general, dada la relación de recurrencia:

an=c1an1+c2an2+...+cdand

con función de generación

a0+a1x1+a2x2+

la serie es aniquilada por ak y anteriormente por el polinomio:

1c1x1c2x2cdxd

Eso es, multiplicando la función de generación por el polinomio

bn=anc1an1c2an2cdand

como el coeficiente en xn, que desaparece (por la relación de recurrencia) para n ≥ d. Así:

(a0+a1x1+a2x2+)(1c1x1c2x2cdxd)=(b0+b1x1+b2x2++bd1xd1)

como dividiendo:

a0+a1x1+a2x2+=b0+b1x1+b2x2++bd1xd11c1x1c2x2cdxd

expresando la función de generación como una función racional. El denominador es xdp(1/x), una transformación del polinomio auxiliar (equivalente, invirtiendo el orden de los coeficientes); también se puede usar cualquier múltiplo de esta, pero esta normalización es elegida por ambas porque la relación simple del polinomio auxiliar, y de ese modo b0=a0.

Relación con la diferencia de ecuaciones

Dada una secuencia {an} de números reales: la primera diferencia d(an) se define como anan1

La segunda diferencia d2(an) se define como d(an)d(an1),

que se puede simplificar a an2an1+an2.

Más general: la diferencia dk se define como dk1(an)dk1(an1)

A diferencia de la ecuación es una ecuación compuesta por an y sus diferencias. Cada relación de recurrencia puede ser formulada como una ecuación de diferencia. Por el contrario, cada ecuación de diferencia puede ser formulada como una relación de recurrencia. Algunos autores así utilizan los dos términos intercambiables. Por ejemplo, la ecuación de la diferencia:

3d2(an)+2d(an)+7an=0

es equivalente a la relación de recurrencia:

12an=8an13an2

De este modo se puede resolver relaciones de recurrencia por la reiteración como ecuaciones diferencia, y luego la solución de la ecuación de diferencia, análogamente como una solución de ecuaciones diferenciales ordinarias.

Ver escala de tiempo de cálculo para la unificación de la teoría de las ecuaciones de diferencia con la de las ecuaciones diferenciales.

Resolución

Sean

c0an+c1an1+c2an2++ckank=0

una ecuación de recurrencia lineal homogénea, xk+cn1xk1++cnk su ecuación característica y, x1,x2,,xs las raíces de la ecuación característica con multiplicidades m1,m2,,ms respectivamente. La solución de esta ecuación sería: Plantilla:Definición

Con Pi(n)  el polinomio de grado menor o igual que mi1. Para poder calcular los coeficientes de los polinomios Pi(n), necesitamos saber las condiciones iniciales de la ecuación de recurrencia.

Ejemplo : Números de Fibonacci

Los números de Fibonacci están definidos usando la siguiente relación de recurrencia lineal:

Fn=Fn1+Fn2

con los valores iniciales:

F0=0
F1=1

La secuencia de los números de Fibonacci comienza: 0, 1, 1, 2, 3 ,5, 8, 13, 21 ,34, 55, 89... El objetivo de la resolución de la ecuación de recurrencia es encontrar una forma cerrada para calcular los números de Fibonacci.

La ecuación característica es la siguiente:

x2x1=0
x1=1+52
x2=152

por lo tanto, la solución general es:

F(n)=A1(1+52)n+A2(152)n

Para hallar el valor de A1 y A2 resolvemos las siguientes ecuaciones:

F0=A1(1+52)0+A2(152)0
F1=A1(1+52)2+A2(152)2

Entonces:

A1=15

y

A2=15

La forma cerrada para los números de Fibonacci es:

F(n)=15((1+52)n(152)n)

Ecuación de Recurrencia lineal no homogénea con coeficientes constantes

Recibe el nombre de ecuación de recurrencia lineal no homogénea de grado k, con coeficientes constantes, una expresión del tipo: c0an+c1an1+c2an2++ckank=F(n),ci𝐑,ck0.

Resolución

La solución general sería: an=an(h)+an(p) , donde an(h) es la solución de la ecuación de recurrencia lineal homogénea asociada es decir la ecuación : c0an+c1an1+c2an2++ckank=0,ci𝐑,ck0 y donde an(p) es la solución particular que depende de la función F(n). Por lo tanto los pasos a seguir serían, primero calcular la solución de la ecuación homogénea, calcular una solución particular para F(n) y sumarla a la homogénea, y a continuación aplicar las condiciones iniciales para calcular las constantes. En la siguiente tabla, encontramos cuales son las posibles soluciones particulares:

F(n) an(p)
C,constante C0,constante
n C0+C1n
n2 C0+C1n+C2n2
nt,t𝐙+ C0+C1n++Ctnt
rn,r𝐑 C0rn
ntrn rn(C0+C1n+C2n2)
sin(An),A𝐑 C0sin(An)+C1cos(An)
cos(An),A𝐑 C0sin(An)+C1cos(An)
rnsin(An),A𝐑 C0rnsin(An)+C1rncos(An)
rncos(An),A𝐑 C0rnsin(An)+C1rncos(An)
  • Consideraciones:

1.- Si F(n) es una combinación lineal de algunas de las funciones de la tabla anterior, su solución particular es la combinación lineal de las soluciones particulares de esas mismas funciones.

2.- Si uno de los sumandos de F(n) es el producto de una constante por una solución de la ecuación característica homogénea asociada, entonces es necesario multiplicar la solución particular correspondiente a este sumando por la menor potencia de n, n´ tal que este nuevo producto no sea solución de la ecuación característica homogénea asociada.

La ecuación de recurrencia asociada con el problema de las Torres de Hanói es la siguiente:

Tn=2Tn1+1

Con las condiciones iniciales:

T1=1

Se resuelve la siguiente homogénea:

Tn(h)=2Tn1

La ecuación característica es: x2=0, entonces x=2

Entonces : Tn(h)=A2n

A continuación, se resuelve la ecuación particular:Tn(p)=B=2B+1, entonces B=1.

Tn=A2n1, entonces igualando con las condiciones iniciales la solución es : Tn=2n1

Recurrencias No lineales

Para resolver recurrencias no lineales tenemos muchas opciones de las cuales:

  • Buscar transformaciones o cambios de variables que hagan la recurrencia lineal.
  • Para el caso t(n)=at(nb)+f(n) , hay un teorema muy útil que es el Teorema Maestro.

La recurrencia en la computación

La conexión con el análisis de algoritmos estriba en que la forma que se ha adoptado para medir las complejidades, utiliza funciones cuyo dominio son los números naturales, o en otras palabras, sucesiones. Si el algoritmo es recurrente, es de esperarse que las complejidades, como funciones que estiman la demanda de recursos a lo largo de la ejecución, sean sucesiones que satisfacen ciertas ecuaciones de recurrencia. En un algoritmo recursivo, la función t(n) que establece su complejidad viene dada por una ecuación de recurrencia. Una ecuación de recurrencia nos permiten indicar el tiempo de ejecución para los distintos casos del algoritmo recursivo (casos base y recursivo).

Ejemplo : Cálculo del factorial

int Fact(int n){
        if(n<=0)
            return 0;
        else if(n==1)
            return 1;
        return n*Fact(n-1);
}

Considerando el producto como operación básica, podemos construir la ecuación recurrente para calcular la complejidad del algoritmo como sigue:

Como se ve en el código el caso base es para n<=1, para estos valores de n el número de multiplicaciones que se realiza es 0. Y en otro caso es 1 más las necesarias para calcular el factorial de n-1. Así construimos la función recurrente:

t(n)={0si n1t(n1)+1si n>1

Ahora si resolvemos la ecuación recurrente sabremos la complejidad de este algoritmo en función de n. Procedemos a resolver esta ecuación recurrente no lineal:

t(n)=t(n1)1

resolvemos la homogénea:

t(n)=t(n1)r1=0r=1anh=c1nanh=c

resolvamos ahora la particular:

como la particular' coincide con la r, debemos aumentar el grado multiplicando por n

anp=n1nanp=n

por lo que la solución de la ecuación recurrente queda como sigue:

t(n)=c+n

Ahora calculamos c utilizando el caso base, t(1) = 0

t(1)=c+1=0c=1

ya tenemos la solución: t(n) = n - 1

La ecuación que nos ha quedado es de grado 1 por lo que la complejidad es del orden exacto de n -> θ(n)

Por ejemplo para calcular el factorial de 3 necesitaremos t(3) productos lo que es igual a

31=23(2(1))

Como vemos son 2 productos como nos ha devuelto la ecuación.

Aplicaciones

Entre otras:

  • En la óptica
  • En la teoría de la probabilidad
  • En el estudio de los árboles binarios, pilas y algoritmos de ordenación

Véase también

Referencias

Plantilla:Listaref