Valeurs d’une suite récurrente ou d’un système de suites récurrentes : rsolve

### 6.15.3 Valeurs d’une suite récurrente ou d’un système de suites récurrentes : rsolve

Voir aussi seqsolve 6.15.2.
rsolve a comme argument la ou les relation(s) de récurrence, le nom des variables utilisées et les valeurs de départ de la suite.

La relation de récurrence est :

- soit une partie homogène linéaire, la partie non homogène doit être une combinaison linéaire de produit de polynôme en n par une suite géométrique en n. Par exemple un+1=2un+n3n,
- soit une fonction homographique. Par exemple un+1=un−1/un−2

rsolve renvoie alors une matrice dont les lignes sont les valeurs de la suite en fonctions de n.

Remarques
Contrairement à seqsolve, rsolve est plus malléable car avec rsolve :

- la suite ne débute pas forcément par u(0),
- on peut donner plusieurs valeurs de départ par exemple u(0)^2=1, c’est pourquoi rsolve renvoie une liste,
- on écrit la relation de récurrence comme en mathématiques.

Exemples :

- Valeurs de la suite u0=3, un+1=2un+n
  On tape :
  rsolve(u(n+1)=2u(n)+n,u(n),u(0)=3)
  On obtient :
  [-1+4*2^(n+1-1)-n]
- Valeurs de la suite u12=1, un+1=2un+n
  On tape :
  rsolve(u(n+1)=2u(n)+n,u(n),u(1)^2=1)
  On obtient :
  [[-1-(-3)/2*2^(n+1-1)-n,
  -1-(-1)/2*2^(n+1-1)-n]]
- Valeurs de la suite u0=3, un+1=2un+n3n
  On tape :
  rsolve(u(n+1)=2u(n)+(n)*3^n,u(n),u(0)=3)
  On obtient :
  [-3*3^(n+1-1)+6*2^(n+1-1)+n*3^(n+1-1)]
- Valeurs de la suite u0=4, un+1=un−1/un−2
  On tape :
  rsolve(u(n+1)=(u(n)-1)/(u(n)-2),u(n),u(0)=4)
  On obtient :
  [((10*sqrt(5)+30)*((sqrt(5)-3)/2)`^`n+30*sqrt(5)-70)/ (20*((sqrt(5)-3)/2)`^`n+10*sqrt(5)-30)]
- Valeurs de la suite u0=0,u1=1, un+1=un+un−1 pour n>0.
  On tape :
  rsolve(u(n+1)=u(n)+u(n-1),u(n),u(0)=0,u(1)=1)
  On obtient :
  [(5+sqrt(5))/10*((sqrt(5)+1)/2)^(n+1-1-1)+
  (5-sqrt(5))/10*((-sqrt(5)+1)/2)^(n+1-1-1)]
- Valeurs de la suite u0=0,u1=1, un+1=2*un+un−1+n pour n>0.
  On tape :
  rsolve(u(n+1)=2*u(n)+u(n-1)+n,u(n),u(0)=0,u(1)=1)
  On obtient :
  [(-1)/2-(-2-3*sqrt(2))/8*(sqrt(2)+1)^(n+1-1)-
  (-2+3*sqrt(2))/8*(-sqrt(2)+1)^(n+1-1)-1/2*n]
  Ou on tape :
  rsolve([u(n+1)=2*u(n)+v(n)+n,v(n+1)=u(n)],
  [u(n),v(n)],u(0)=0,v(0)=1) On obtient :
  [[(-1)/2-(-2-3*sqrt(2))/8*(sqrt(2)+1)^(n+1-1)-
  (-2+3*sqrt(2))/8*(-sqrt(2)+1)^(n+1-1)-1/2*n,
  -(-4+sqrt(2))/8*(sqrt(2)+1)^(n+1-1)-
  (-4-sqrt(2))/8*(-sqrt(2)+1)^(n+1-1)-1/2*n]]
- Valeurs de la suite u0=0,v0=1, un+1=un+vn, vn+1=un−vn,.
  On tape :
  rsolve([u(n+1)=u(n)+v(n),v(n+1)=u(n)-v(n)],
  [u(n),v(n)],[u(0)=0,v(0)=1])
  On obtient :
  [[1/2*2^((n-1)/2)+1/2*(-(sqrt(2)))^(n-1),
  (-1+sqrt(2))/2*2^((n-1)/2)+
  (-1-sqrt(2))/2*(-(sqrt(2)))^(n-1)]]
- Valeurs de la suite u0=2,v0=0, un+1=4*vn+n+1, vn+1=un,.
  On tape :
  rsolve([u(n+1)=4*v(n)+n+1,v(n+1)=u(n)],
  [u(n),v(n)],[u(0)=2,v(0)=0])
  On obtient :
  [[(-8)/9+2*2^(n+1-1)-(-8)/9*(-1)^(n+1-1)*2^(n+1-1)-
  1/3*n,(-5)/9+2^(n+1-1)-4/9*(-1)^(n+1-1)*2^(n+1-1)-
  1/3*n]]