今回は現在分かっていることのまとめ回です。
$$
(n+1)^2u_{n+1}=(x_0n^2+x_0n+x_1)u_n+x_2n^2u_{n-1} (u_0=a,u_1=b) (n\geq1)\tag{1.0}\label{name1}
$$
で定められる数列の一般項を$u_n(x_0,x_1,x_2)[a,b]$と表す。$u_0=1,u_1=x_1$の場合には、単に$u_n(x_0,x_1,x_2)$とかく。
$m$を正の数として
$$ u_n(x_0,x_1,x_2)[a,b]=u_n(\frac{x_0}{m},\frac{x_1}{m},\frac{x_2}{m^2} )[a,\frac{b}{m}]×m^n \tag{1.1}\label{name2} $$
$u_n(x_0,x_1,x_2)(a,b)$を、\ref{name1}の漸化式を満たし、$u_0=a,u_1=b$で定められる数列とする。このとき、
$u_n(x_0,x_1,x_2)[a,b]=a×u_n(x_0,x_1,x_2)[1,0]+b×u_n(x_0,x_1,x_2)[0,1]$
である。
\ref{name1}の解が多項式であるためには、$x_0=2$かつ$x_1=l^2+l+1$かつ$x_2=-1$が必要である。
($k\in N$)
多項式解は
$u_n(2,l^2+l+1,-1)[1,l^2+l+1]=\sum_{j=0}^{l}{{l \choose j}{l+j \choose j}{n\choose j}}$である。
また、初期条件が異なるものは、
$u_n(2,l^2+l+1,-1)[0,1]=\Delta^{l+1} u_{l+1}\sum_{k=0}^{n-2}{\frac{S^{(l-1)}(n-1-k)}{{l+k+1 \choose k}^2}}$
ただし、$S^{(l)}=\sum_{i=1}^{n}{i^l},S^{(-1)}=1$,
$\Delta^{k} u_{n}=\Delta^{k-1} u_{n}-\Delta^{k-1} u_{n-1}$
多項式解の表示は前回、子葉さんにコメントで教えていただきました。感謝致します。
$u_n(2,l^2+l+1,-1)[0,1]$は前回述べた通り、階差を$l+1$回とることで求められます。
私が気になるのは以下のような数列についてです。
$x_0$ | $x_1$ | $x_2$ |
---|---|---|
7 | 2 | 8 |
9 | 3 | -27 |
11 | 3 | 1 |
12 | 4 | -32 |
17 | 6 | -72 |
上の表にある$(x_0,x_1,x_2)$の組はすべての自然数$n$について、$u_n(x_0,x_1,x_2)$が整数である、または整数であると思われる数列で、多項式でも多項式×指数関数ではないものです。(定理1より、$x_0^2+4x_2\ne0$なら多項式でも多項式×指数関数ではないので)
$u_n(7,2,8)=\sum_{k=0}^{n}{ n \choose k }^3$
$u_n(11,3,1)=\sum_{k=0}^{n}{ n \choose k }^2{ n+k \choose k }$
$u_n(11,3,1)[0,5]=\sum_{k=0}^{n}{ n \choose k }^2{ n+k \choose k }c_{n.k}$
(ただし$c_{n,k}=2\sum_{m=1}^{n}{\frac{(-1)^{m-1}}{m^2}}+\sum_{m=1}^{k}{\frac{(-1)^{n+m-1}}{m^2{ n \choose m }{ n+m \choose m }}}$)
上の2組については解が分かっています。(さらに$(11,3,1)$については初期条件が異なる解も分かっています)
残りの3組は数値計算によって少なくとも第100項までは整数となることが分かっています。なお、定理1より、上の組に対し$(x_0m,x_1m,x_2m^2),m \in N$も整数となります。これら以外の例を得ること、およびこれらの解を得ることが今後の目的です。
需要があるかわかりませんが、数値計算に利用したpythonコードを貼っておきます。
# -*- coding: cp932 -*-
from fractions import Fraction
u_0=1
def f(n,x_0,x_1,x_2):#漸化式による計算
if n <= 0:
return [u_0]
elif n == 1:
return [u_0]
elif n == 2:
return [u_0, x_1]
else:
f_se= [u_0, x_1]
for i in range(2, n):
next_fib =Fraction(((x_0*i**2-x_0*i+x_1)*f_se[i - 1] +x_2*(i-1)**2*f_se[i - 2])/i**2)
f_se.append(next_fib)
return f_se
n = 100
f_sequence = f(n,9,3,-27)
f_sequence2 = f(n,17,6,-72)
また、解が与えられたときに漸化式を求めるコードも貼っておきます。
# -*- coding: cp932 -*-
import sympy
from math import *
from fractions import Fraction
x_0 = sympy.Symbol('x_0')
x_1 = sympy.Symbol('x_1')
x_2 = sympy.Symbol('x_2')
x_3 = sympy.Symbol('x_3')
x_4 = sympy.Symbol('x_4')
x_5 = sympy.Symbol('x_5')
x_6 = sympy.Symbol('x_6')
x_7 = sympy.Symbol('x_7')
def bil_co(n,k):# binomial coefficient
if k > n or k < 0 :
return 0
else:
return factorial(n)/(factorial(k)*factorial(n-k))
def seque(n,a,b,c,d,e,f,g,h):#一般項による計算
s=0
for k in range(n+1):
s+=Fraction(bil_co(a*n+b*k,c*n+d*k)*bil_co(e*n+f*k,g*n+h*k)*bil_co(2*k,k))
return s
def calculate_sequence(n):
sequence = [seque(n,1,0,0,1,1,0,0,1) for n in range(0, n+1)]
return sequence
n=15
a=calculate_sequence(n)
equations = []
for n in range(1,15):#不定方程式を解き係数決定
equations.append((n**2+x_0*n+x_1)*a[n+1]+(x_2*n**2+x_3*n+x_4)*a[n]+(x_5*n**2+x_6*n+x_7)*a[n-1])
solution = sympy.solve(equations, (x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7))
print(solution)
まだまだ調べたいことがいっぱいあるのですが、受験生なのでそろそろ区切りをつけたいと思い、この記事を書きました。何か発見があった方はぜひコメントに書いてください!受験勉強のかたわらに考えます。