今回は現在分かっていることのまとめ回です。
で定められる数列の一般項を
である。
(
多項式解は
また、初期条件が異なるものは、
ただし、
多項式解の表示は前回、子葉さんにコメントで教えていただきました。感謝致します。
私が気になるのは以下のような数列についてです。
7 | 2 | 8 |
9 | 3 | -27 |
11 | 3 | 1 |
12 | 4 | -32 |
17 | 6 | -72 |
上の表にある
(ただし
上の2組については解が分かっています。(さらに
残りの3組は数値計算によって少なくとも第100項までは整数となることが分かっています。なお、定理1より、上の組に対し
需要があるかわかりませんが、数値計算に利用した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)
まだまだ調べたいことがいっぱいあるのですが、受験生なのでそろそろ区切りをつけたいと思い、この記事を書きました。何か発見があった方はぜひコメントに書いてください!受験勉強のかたわらに考えます。