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]