Matly

Recurrències lineals i funcions generadores: polinomi característic i ressonància

Vols practicar? Aquest tema té 183 exercicis interactius de 2 tipus, de deu en deu, amb correcció immediata i explicació pas a pas.

Una recurrència defineix cada terme a partir dels anteriors. Apareixen a tot arreu: en l'anàlisi del cost d'un algorisme recursiu, en models de població discrets, en problemes de recompte on el cas nn es redueix als casos més petits. Resoldre-la vol dir trobar-ne una fórmula tancada, que et deixi calcular el terme mil sense passar pels nou-cents noranta-nou anteriors.

Si has fet EDO lineals d'ordre superior, tot el que ve ara et sonarà: l'estructura és exactament la mateixa, amb potències en comptes d'exponencials.

Primer ordre: iterar i sumar

Una recurrència d'ordre rr necessita normalment rr dades inicials. També cal dir a partir de quin índex és vàlida, cosa que s'oblida sovint i que canvia el resultat.

El cas bàsic és an=α an−1+βa_n = \alpha\,a_{n-1} + \beta. Iterant cap enrere s'hi veu l'estructura:

an=αna0+β∑j=0n−1αj.a_n = \alpha^{n}a_0 + \beta\sum_{j=0}^{n-1}\alpha^{j}.

Si α≠1\alpha\neq 1, la suma geomètrica val β(αn−1)/(α−1)\beta(\alpha^{n}-1)/(\alpha-1). Si α=1\alpha = 1, la suma és simplement nβn\beta, i aquest cas no s'obté substituint a la fórmula anterior, que tindria denominador nul. Els casos excepcionals s'han de tractar a part, no maquillar.

Equació característica

Per a una recurrència lineal homogènia amb coeficients constants,

an=c1an−1+⋯+cran−r,a_n = c_1 a_{n-1} + \cdots + c_r a_{n-r},

prova an=λna_n = \lambda^{n}. Substituint i dividint per la potència més petita surt el polinomi característic

p(λ)=λr−c1λr−1−⋯−cr.p(\lambda) = \lambda^{r} - c_1\lambda^{r-1} - \cdots - c_r.

Si les arrels són diferents i no nul·les, la solució general és una combinació lineal de les potències λjn\lambda_j^{n}. Una arrel no nul·la de multiplicitat mm aporta λn\lambda^{n}, nλnn\lambda^{n}, ..., nm−1λnn^{m-1}\lambda^{n}: apareixen factors polinòmics en nn, exactament com apareixien factors tkt^{k} a les equacions diferencials.

Les constants sempre es determinen al final amb les dades inicials, resolent un sistema lineal.

Arrels reals diferents

Resol an=5an−1−6an−2a_n = 5a_{n-1} - 6a_{n-2} amb a0=2a_0 = 2 i a1=5a_1 = 5.

Pas 1 — característica. λ2−5λ+6=0\lambda^{2} - 5\lambda + 6 = 0, amb arrels 22 i 33.

Pas 2 — solució general. an=A⋅2n+B⋅3na_n = A\cdot 2^{n} + B\cdot 3^{n}.

Pas 3 — dades inicials. Amb n=0n = 0 surt A+B=2A + B = 2; amb n=1n = 1, 2A+3B=52A + 3B = 5. Resolent, A=B=1A = B = 1, i per tant

an=2n+3n.a_n = 2^{n} + 3^{n}.

Comprovació. a2a_2 hauria de ser 5⋅5−6⋅2=135\cdot 5 - 6\cdot 2 = 13, i la fórmula dona 4+9=134 + 9 = 13. Fer aquesta comprovació amb el primer terme que no has fet servir és la manera més barata de detectar un error al sistema.

Arrel doble

Resol an−2an−1+an−2=0a_n - 2a_{n-1} + a_{n-2} = 0 amb a0=3a_0 = 3 i a1=5a_1 = 5.

El polinomi és λ2−2λ+1=(λ−1)2\lambda^{2} - 2\lambda + 1 = (\lambda-1)^{2}, amb arrel doble λ=1\lambda = 1. Les potències de 11 són totes iguals a 11, de manera que una sola solució no genera prou llibertat; la segona és n⋅1n=nn\cdot 1^{n} = n:

an=A+Bn.a_n = A + Bn.

Les dades donen A=3A = 3 i A+B=5A + B = 5, o sigui B=2B = 2, i per tant an=3+2na_n = 3 + 2n.

Si t'haguessis saltat el factor nn, el sistema hauria quedat sobredeterminat i incompatible: dues constants que multipliquen la mateixa cosa. Aquest fracàs és el senyal que has perdut una arrel múltiple.

Terme forçat i ressonància

Amb una recurrència no homogènia, la solució general és una particular més la solució homogènia. Si el forçament té la forma P(n)αnP(n)\alpha^{n} amb PP polinomi, es prova

ns Q(n) αn,n^{s}\,Q(n)\,\alpha^{n},

on QQ té el mateix grau que PP i ss és la multiplicitat d'α\alpha com a arrel característica (zero si no ho és). El factor nsn^{s} és la correcció de ressonància, i és el mateix mecanisme que el factor tmt^{m} de les equacions diferencials.

Ressonància en una recurrència

Resol an=2an−1+2na_n = 2a_{n-1} + 2^{n} amb a0=0a_0 = 0.

L'arrel característica és 22, i el forçament és justament 2n2^{n}: hi ha ressonància. Provar C⋅2nC\cdot 2^{n} fracassaria, perquè és solució de l'homogènia.

Camí curt. Divideix tota la recurrència per 2n2^{n} i posa bn=an/2nb_n = a_n/2^{n}:

bn=bn−1+1.b_n = b_{n-1} + 1.

Amb b0=0b_0 = 0, això dona bn=nb_n = n immediatament, i per tant

an=n 2n.a_n = n\,2^{n}.

Que coincideix amb l'assaig que prediu la regla: n1⋅C⋅2nn^{1}\cdot C\cdot 2^{n} amb C=1C = 1. Comprovació: 2an−1+2n=2(n−1)2n−1+2n=(n−1)2n+2n=n2n2a_{n-1} + 2^{n} = 2(n-1)2^{n-1} + 2^{n} = (n-1)2^{n} + 2^{n} = n2^{n}. Correcte.

Un avís sobre les dades inicials: les constants no es determinen mirant la recurrència, sinó imposant els valors de partida. Dues successions amb la mateixa recurrència i dades inicials diferents són successions diferents, i la fórmula tancada ho ha de reflectir. Per això el darrer pas de tot exercici és sempre el mateix sistema lineal, i per això val la pena comprovar el resultat amb un terme que no hagis fet servir per determinar-les.

Un altre motiu per verificar sempre: les recurrències són molt sensibles a l'índex a partir del qual són vàlides. Si l'enunciat diu que la relació val a partir de n=2n = 2 i tu l'apliques també a n=1n = 1, estàs inventant una condició que no hi era, i la fórmula resultant no descriurà la successió que et demanaven. Escriu explícitament el rang de validesa al costat de la recurrència abans de començar a resoldre.

Funcions generadores

El mètode alternatiu, i el que funciona quan la recurrència no és de coeficients constants, consisteix a codificar tota la successió en una sèrie formal i manipular-la com una funció.

Per a Fibonacci, amb F0=0F_0 = 0, F1=1F_1 = 1 i la recurrència habitual, multiplica per znz^{n} i suma des de n=2n = 2. El resultat és una equació algebraica per a la sèrie:

F(z)−z=zF(z)+z2F(z),F(z)=z1−z−z2.F(z) - z = zF(z) + z^{2}F(z), \qquad F(z) = \frac{z}{1 - z - z^{2}}.

Els termes inicials que s'han restat a l'esquerra són imprescindibles: si els omets, estàs resolent una successió diferent. Descomponent en fraccions simples i desenvolupant cada tros com una sèrie geomètrica s'obté la fórmula de Binet:

Fn=φn−ψn5,φ=1+52,ψ=1−52.F_n = \frac{\varphi^{n} - \psi^{n}}{\sqrt{5}}, \qquad \varphi = \frac{1+\sqrt5}{2}, \quad \psi = \frac{1-\sqrt5}{2}.

Com que el segon terme té mòdul menor que 11, tendeix a zero i FnF_n creix essencialment com φn/5\varphi^{n}/\sqrt5. De fet, FnF_n és l'enter més proper a aquesta quantitat, cosa que és una manera molt pràctica de calcular Fibonaccis grans.

Guió de resolució

  1. Classifica: ordre, homogènia o no, coeficients constants o no.
  2. Homogènia: escriu el polinomi característic i troba'n les arrels amb multiplicitats.
  3. Particular: si hi ha forçament, mira si ressona i posa el factor nsn^{s} que calgui.
  4. Constants: imposa les dades inicials i resol el sistema.
  5. Comprova amb el primer terme que no hagis fet servir per determinar constants.
Exercici resolt: recurrència de primer ordre amb terme constant

Resol an=3an−1+4a_n = 3a_{n-1} + 4 amb a0=1a_0 = 1.

Homogènia: l'arrel és 33, o sigui A⋅3nA\cdot 3^{n}.

Particular: com que el forçament és constant i 11 no és arrel característica, prova una constant CC. Substituint: C=3C+4C = 3C + 4, d'on C=−2C = -2.

General i dades inicials: an=A⋅3n−2a_n = A\cdot 3^{n} - 2, i amb a0=1a_0 = 1 surt A=3A = 3:

an=3n+1−2.a_n = 3^{n+1} - 2.

Comprovació. a1a_1 hauria de ser 3⋅1+4=73\cdot 1 + 4 = 7, i la fórmula dona 9−2=79 - 2 = 7. Correcte.

Nota sobre el cas excepcional. Si el coeficient hagués estat 11 en comptes de 33, la constant hauria ressonat i l'assaig correcte seria CnCn. La recurrència an=an−1+4a_n = a_{n-1}+4 dona an=a0+4na_n = a_0 + 4n, com era d'esperar.

Exercici resolt: cost d'un algorisme recursiu

Un algorisme parteix el problema en dos de mida meitat i fa un treball lineal per combinar-los: T(n)=2T(n/2)+nT(n) = 2T(n/2) + n, amb T(1)=0T(1) = 0. Quin és el cost per a n=2kn = 2^{k}?

Divideix per n=2kn = 2^{k} i posa S(k)=T(2k)/2kS(k) = T(2^{k})/2^{k}:

S(k)=S(k−1)+1,S(k) = S(k-1) + 1,

perquè el terme 2T(n/2)2T(n/2) dividit per nn dona T(n/2)/(n/2)T(n/2)/(n/2), és a dir S(k−1)S(k-1), i el terme nn dividit per nn dona 11.

Amb S(0)=0S(0) = 0 surt S(k)=kS(k) = k, i desfent el canvi

T(2k)=k 2k,eˊs a dirT(n)=nlog⁡2n.T(2^{k}) = k\,2^{k}, \qquad \text{és a dir}\qquad T(n) = n\log_2 n.

Aquesta és exactament la recurrència de l'ordenació per fusió, i el resultat explica d'on ve el seu cost: hi ha log⁡2n\log_2 n nivells de recursió i a cada nivell es fa un treball total lineal. Fixa't que el canvi de variable ha convertit una recurrència amb ressonància en la recurrència més senzilla que hi ha.

Ara prova-ho tu. 183 exercicis d'aquest tema, de 2 tipus diferents, per resoldre en línia, de deu en deu: escrius la resposta, te la corregeix a l'instant i, si falles, t'explica com es fa pas a pas. Quan acabis una tanda, en tens deu més, amb dades noves.

Fer els exercicisSimulacre d'examen