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

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

Voir aussi `rsolve` 6.15.3.
`seqsolve` a comme argument l’expression ou la liste des expressions qui défini(ssen)t une/des relation(s) de récurrence, par exemple f(x,n) si la relation de récurrence est un+1=f(un,n) (resp g(x,y,n) si la relation de récurrence est un+2=g(un,un+1,n)=g(x,y,n)), le nom des variables utilisées (par exemple [x,n] (resp [x,y,n])) et les valeurs de départ de la suite : par exemple a si u0=a (resp [a,b] si u0=a et u1=b).

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. `seqsolve` renvoie alors la valeur de la suite en fonctions de n.

Exemples :

- Valeurs de la suite u0=3, un+1=2un+n
  On tape :
  `seqsolve(2x+n,[x,n],3)`
  On obtient :
  `-n-1+4*2^n`
  On peut aussi taper rsolve(u(n+1)=2*u(n)+n,u(n),u(0)=3) (cf6.15.3)
- Valeurs de la suite u0=3, un+1=2un+n3n
  On tape :
  `seqsolve(2x+n*3^n,[x,n],3)`
  On obtient :
  `(n-3)*3^n+6*2^n`
- Valeurs de la suite u0=0,u1=1, un+1=un+un−1 pour n>0.
  On tape :
  `seqsolve(x+y,[x,y,n],[0,1])`
  On obtient :
  `(5+sqrt(5))/10*((sqrt(5)+1)/2)^(n-1)+ (5-(sqrt(5)))/10*((-sqrt(5)+1)/2)^(n-1)`
- Valeurs de la suite u0=0,u1=1, un+2=2*un+1+un+n+1 pour n>0.
  À la main, on trouve u2=3, u3=9 u4=24 etc...
  On tape :
  `seqsolve(x+2y+n+1,[x,y,n],[0,1])`
  On obtient :
  `(-4*n-3*(-(sqrt(2)-1))```^```n*sqrt(2)+2*(-(sqrt(2)-1))```^```n+3*(sqrt(2)+1)```^```n*sqrt(2)+2*(sqrt(2)+1)```^```n-4)/8`
  On vérifie pour `n:=4` on obtient bien `24`
  Ou on tape car on a un+1=2un+vn+n et vn+1=un (donc vn=un−1) avec u0=0 et u1=2u0+v0+0=1 donc v0=1:
  `seqsolve([2x+y+n,x],[x,y,n],[0,1])`
  On obtient :
  `[(-1)/2-(-2-3*sqrt(2))/8*(sqrt(2)+1)^n- (-2+3*sqrt(2))/8*(-sqrt(2)+1)^n-1/2*n, -(-4+sqrt(2))/8*(sqrt(2)+1)^n- (-4-sqrt(2))/8*(-sqrt(2)+1)^n-1/2*n]`
  On vérifie pour `n:=4` on obtient bien `24`
- Valeurs de la suite u0=0,v0=1, un+1=un+2vn,vn+1=un+n+1 pour n>0.
  On tape :
  `seqsolve([x+2*y,n+1+x],[x,y,n],[0,1])`
  On obtient :
  `[(-2*n-(-1)```^```n+2```^```n*4-3)/2,((-1)```^```n+2*2```^```n-1)/2]`
- Valeurs de la suite u0=0,v0=1, un+1=un+2vn+n+1,vn+1=un pour n>0.
  On tape :
  `seqsolve([x+2*y+n+1,x],[x,y,n],[0,1])`
  On obtient :
  `[(-2*n-(-1)```^```n*3+2```^```n*8-5)/4,(-2*n+(-1)```^```n*3+2```^```n*4-3)/4]`
- Valeurs de la suite u0=0,v0=1, un+1=un+vn, vn+1=un−vn pour n>0.
  On tape :
  `seqsolve([x+y,x-y],[x,y,n],[0,1])`
  On obtient :
  `[(-4*n-3*(-(sqrt(2)-1))```^```n*sqrt(2)+ 2*(-(sqrt(2)-1))```^```n+ 3*(sqrt(2)+1)```^```n*sqrt(2)+ 2*(sqrt(2)+1)```^```n-4)/8,`
  `(-4*n+(-(sqrt(2)-1))```^```n*sqrt(2)+ 4*(-(sqrt(2)-1))```^```n-(sqrt(2)+ 1)```^```n*sqrt(2)+ 4*(sqrt(2)+1)```^```n)/8]`
- Valeurs de la suite u0=2,v0=0, un+1=4*vn+n+1, vn+1=un, pour n>0.
  On tape :
  `seqsolve([4y+n+1,x],[x,y,n],[2,0])`
  On obtient :
  `[(-8)/9+2*2^n-(-8)/9*(-1)^n*2^n-1/3*n,
  (-5)/9+2^n-4/9*(-1)^n*2^n-1/3*n]`