2

ふしぎな数列3

346
0

こんにちは、itouです。
前回
前々回

今回は現在分かっていることのまとめ回です。

(1.0)  (n+1)2un+1=(x0n2+x0n+x1)un+x2n2un1(u0=a,u1=b)(n1)
で定められる数列の一般項をun(x0,x1,x2)[a,b]と表す。u0=1,u1=x1の場合には、単にun(x0,x1,x2)とかく。

mを正の数として

(1.1)un(x0,x1,x2)[a,b]=un(x0m,x1m,x2m2)[a,bm]×mn  

初期条件について線形

un(x0,x1,x2)(a,b)を、1.0の漸化式を満たし、u0=a,u1=bで定められる数列とする。このとき、
un(x0,x1,x2)[a,b]=a×un(x0,x1,x2)[1,0]+b×un(x0,x1,x2)[0,1]
である。

多項式解があるための必要条件

1.0の解が多項式であるためには、x0=2かつx1=l2+l+1かつx2=1が必要である。
(kN)

un(2,l2+l+1,1)の解

多項式解は
un(2,l2+l+1,1)[1,l2+l+1]=j=0l(lj)(l+jj)(nj)である。
また、初期条件が異なるものは、

un(2,l2+l+1,1)[0,1]=Δl+1ul+1k=0n2S(l1)(n1k)(l+k+1k)2

ただし、S(l)=i=1nil,S(1)=1,
Δkun=Δk1unΔk1un1

多項式解の表示は前回、子葉さんにコメントで教えていただきました。感謝致します。

un(2,l2+l+1,1)[0,1]は前回述べた通り、階差をl+1回とることで求められます。

数値計算による結果

私が気になるのは以下のような数列についてです。

x0x1x2
728
93-27
1131
124-32
176-72

上の表にある(x0,x1,x2)の組はすべての自然数nについて、un(x0,x1,x2)が整数である、または整数であると思われる数列で、多項式でも多項式×指数関数ではないものです。(定理1より、x02+4x20なら多項式でも多項式×指数関数ではないので)

un(7,2,8)=k=0n(nk)3
un(11,3,1)=k=0n(nk)2(n+kk)
un(11,3,1)[0,5]=k=0n(nk)2(n+kk)cn.k
(ただしcn,k=2m=1n(1)m1m2+m=1k(1)n+m1m2(nm)(n+mm)

上の2組については解が分かっています。(さらに(11,3,1)については初期条件が異なる解も分かっています)

残りの3組は数値計算によって少なくとも第100項までは整数となることが分かっています。なお、定理1より、上の組に対し(x0m,x1m,x2m2),mNも整数となります。これら以外の例を得ること、およびこれらの解を得ることが今後の目的です。

コード

需要があるかわかりませんが、数値計算に利用した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)

    

まだまだ調べたいことがいっぱいあるのですが、受験生なのでそろそろ区切りをつけたいと思い、この記事を書きました。何か発見があった方はぜひコメントに書いてください!受験勉強のかたわらに考えます。

投稿日:202394
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

itou
itou
148
13552
数学勉強中. https://twitter.com/G7UOMb0Zd8V7LdP

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中