seqGen() / 漸化式 / フィボナッチ数、チェビシェフ多項式

構文: seqGen(式, 独立変数, 従属変数, {独立変数開始値, 独立変数終了値} [, {独立変数初期値リスト} [, 独立変数増分 [, 従属変数天井値]]])
返値: リスト
――――――――――――――――――――――――――――――――――――――――――――――――――――― 
例 1.
フィボナッチ数

seqGen(u(n-1)+u(n-2),n,u,{0,20},{0,1})

u(n-1) は、今計算すべき要素の 1 つ前の要素を参照している。
u(n-2) は、今計算すべき要素の 2 つ前の要素を参照している。
  
実行結果:

{0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765}

―――――――――――――――――――――――――――――――――――――――――――――――――――――
例 2.
第 1 種チェビシェフ多項式

expand(seqGen(2*x*u(n-1)-u(n-2),n,u,{0,7},{1,x}))

expand() は結果を見やすくするために使っているだけである。
 
実行結果:

{1,x,2*x^(2)-1,4*x^(3)-3*x,8*x^(4)-8*x^(2)+1,16*x^(5)-20*x^(3)+5*x,32*x^(6)-48*x^(4)+18*x^(2)-1,64*x^(7)-112*x^(5)+56*x^(3)-7*x}

―――――――――――――――――――――――――――――――――――――――――――――――――――――
Wolfram の場合:

In[15]:= Table[Fibonacci[n], {n, 0, 20}]
Out[15]= {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765}

In[17]:= ChebyshevT[Range[0,7],x] 
Out[17]={1, x, -1 + 2 x^2, -3 x + 4 x^3, 1 - 8 x^2 + 8 x^4, 5 x - 20 x^3 + 16 x^5, -1 + 18 x^2 - 48 x^4 + 32 x^6, -7 x + 56 x^3 - 112 x^5 + 64 x^7}

――――――――――――――――――――――――――――――――――――――――――――――――――――― 
sympy の場合:

In [12]: from sympy import chebyshevt_poly, symbols, fibonacci
In [13]: x = symbols("x")
In [14]: [fibonacci(x) for x in range(20+1)]
Out[14]: 
[0,
 1,
 1,
 2,
 3,
 5,
 8,
 13,
 21,
 34,
 55,
 89,
 144,
 233,
 377,
 610,
 987,
 1597,
 2584,
 4181,
 6765]
In [15]: [chebyshevt_poly(n, x) for n in range(7+1)]
Out[15]: 
[1,
 x,
 2*x**2 - 1,
 4*x**3 - 3*x,
 8*x**4 - 8*x**2 + 1,
 16*x**5 - 20*x**3 + 5*x,
 32*x**6 - 48*x**4 + 18*x**2 - 1,
 64*x**7 - 112*x**5 + 56*x**3 - 7*x]