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

Voir aussi `seqsolve` 6.14.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 doit comporter 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. `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=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, pour n>0.
  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, pour n>0.
  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]]`