第3章 遠い記憶の採掘

記事
学び
やがて時は過ぎ、学生を卒業し、就職し、結婚し、子供が生まれ、毎日が日々の生活に追われるようになった。
引越も度重なり、学生の頃に見つけた関係式のメモもどこに行ったか分からず探せずにいた。
つい先日のことです。学生の頃のノート類が入った引越しの段ボールを確認したらメモが出てきた。
6乗まではが書かれていたが、7乗については完成していなかった。
7乗は6乗まで違いはなかなか解けなかったのです。
最近のことですが7乗が解けました。
計算は大変でしたが、愚直に解いただけです。
そして、6乗までとの違いがはっきり見えました。
Σ(n-k)^3k^3に注目する。右辺を計算する。
 Σ(n-k)^3k^3 = Σ(n^3 - 3n^2k + 3nk^2 - k^3)k^3
             = n^3Σk^3 - 3n^2Σk^4 + 3nΣk^5 - Σk^6
             = n^7/140 + n^3/60 - n/42
n^7について解く。
 n^7 = 10n/3 -7n^3/3 + 7!/(3!3!)Σ(n-k)^3k^3
ということで、解けました。
10n/3 -7n^3/3 という、なんか癖のある項があるので、難かしくなかなか解けなかったのです。
べき乗和については、以下に補足。
7乗の1階差分の式を考えます。
 (k+1)^7-k^7 = 1 + 7xk + 21xk^2 + 35xk^3 + 35xk^4 + 21xk^5 + 7xk^6
k=1,2,...,n-1まで並べます。
 2^7 - 1^7 = 1 + 7x1 + 21x1^2 + 35x1^3 + 35x1^4 + 21x1^5 + 7x1^6
 3^7 - 2^7 = 1 + 7x2 + 21x2^2 + 35x2^3 + 35x2^4 + 21x2^5 + 7x2^6
 4^7 - 3^7 = 1 + 7x3 + 21x3^2 + 35x3^3 + 35x3^4 + 21x3^5 + 7x3^6
 ...
 n^7-(n-1)^7 = 1 + 7xn + 21xn^2 + 35xn^3 + 35xn^4 + 21xn^5 + 7xn^6
すべて足すと。
 n^7 - 1^7 = (n-1) +7xΣk + 21xΣk^2 + 35xΣk^3 + 35xΣk^4 + 21xΣk^5 + 7xΣk^6 (k=1からn-1)
右辺を計算すると、左辺と等しくなる。
(べき乗和については、これまでの計算結果を参照。Σk^5についても6乗の1階差分から導出できる。)
(最近調べて知ったのですが、ベルヌーイの多項式でべき乗和を参照するとよい。先人は素晴らしい…。)
そして、Pythonを使って文字式を計算することを知りました。
少し前にも、マセマティカ(Mathmatica)やサイラボ(Scilab)で色々と計算できることは知って、
スゲーって感動していました。でも、文字式の計算に使うことを考えてなかった。
今回、Pythonをつかって文字式を計算することができて、再びスゲーってなってます。
途中式がなく結果しかわかりませんが、それでも計算の結果は正確です。
計算方法はこんな感じです。
>>> from sympy import *
>>> n = Symbol('n')
>>> k = Symbol('k')
>>> expand(summation(k**3*(n-k)**3,(k,1,n)))
n**7/140 + n**3/60 - n/42
>>> expand(summation(n**3*k**3,(k,1,n-1)) - summation(3*n**2*k**4,(k,1,n-1)) + summation(3*n*k**5,(k,1,n-1)) - summation(k**6,(k,1,n-1)) )
n**7/140 + n**3/60 - n/42
式の入力の仕方は、少し独特ですがちゃんと計算してくれます。
Σもsummation()で計算して素晴らしい。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら