2008年11月17日月曜日

繰り返す数列(その3)

三角関数で繰り返す数列

同じ数字を繰り返す数列は,mod 関数を組み合わせでなんとでもなる.>繰り返す数列(その2)

どうしても三角関数の組み合わせにならないかと探ってみた.
つまり,mod を三角関数で表せないだろうか.

7つの数の繰り返しのモトになる,mod 7 で整数を並べると,
0,1,2,3,4,5,6, 0,1,2,3,4,5,6, 0,1,2,3,4,5,6, ・・・
となる.この数列への三角関数
\sin\frac{2\pi n}{7}(n=0,1,2,・・・)
からの対応を考えればよい.

\sin\frac{2\pi n}{7}の6次式
f(n)=p (\sin\frac{2\pi n}{7})^6+q (\sin\frac{2\pi n}{7})^5+r (\sin\frac{2\pi n}{7})^4+s (\sin\frac{2\pi n}{7})^3\\ \hspace{20}+t (\sin\frac{2\pi n}{7})^2+u (\sin\frac{2\pi n}{7})+v
に,
0,1,2,3,4,5,6
を代入して,0,1,2,3,4,5,6になるような係数
p,q,r,s,t,u,v
を求めてf(n)を確定すれば,nに\sin\frac{2\pi n}{7}を順に代入すれば,f(n)の値は,
0,1,2,3,4,5,6
を繰り返す.

まず,連立方程式
f(0)=0, f(1)=1, f(2)=2, f(3)=3, f(4)=4, f(5)=5, f(6)=6
つまり,連立方程式
 v=0, 0.228391 p + 0.292123 q + 0.373639 r + 0.477903 s \\ \hspace{20}+ 0.61126 t +  0.781831 u + v=1, \\
0.858687 p + 0.88077 q + 0.903421 r + 0.926654 s \\ \hspace{20}+ 0.950484 t +  0.974928 u + v=2, \\
0.00667176 p + 0.0153768 q + 0.03544 r + 0.0816808 s \\ \hspace{20}+ 0.188255 t +  0.433884 u + v=3, \\
0.00667176 p - 0.0153768 q + 0.03544 r - 0.0816808 s \\ \hspace{20}+ 0.188255 t -  0.433884 u + v=4,\\
0.858687 p - 0.88077 q + 0.903421 r - 0.926654 s \\ \hspace{20}+ 0.950484 t -  0.974928 u + v=5,\\
0.228391 p - 0.292123 q + 0.373639 r - 0.477903 s \\ \hspace{20}+ 0.61126 t -  0.781831 u + v=6
を解くと,
p=32, q=12.7596, r=-56, s=-15.0365, t=28, u=1.22612, v=0
となるから,
f(n)=32(\sin\frac{2\pi n}{7})^6+12.7596(\sin\frac{2\pi n}{7})^5-56(\sin\frac{2\pi n}{7})^4\\ \hspace{20}-15.0365(\sin\frac{2\pi n}{7})^3+28(\sin\frac{2\pi n}{7})^2+1.22612(\sin\frac{2\pi n}{7})+0
が mod(n,7)を表す関数となる.(mathematicaでは係数の厳密解が求まったが,現実的ではない.)

n=10 で 3 を返す.(小数4桁までしか使わないので,精度が悪いが.)
32(sin(10*2π/7))^6+12.7596(sin(10*2π/7))^5-56(sin(10*2π/7))^4-15.0365(sin(10*2π/7))^3+28(sin(10*2π/7))^2+1.22612(sin(10*2π/7))^1

=\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i}
なので,
32(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})^6\\ \hspace{20} +12.7596(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})^5\\ \hspace{20} -56(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})^4\\ \hspace{20} -15.0365(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})^3\\ \hspace{20}+28(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})^2\\ \hspace{20} +1.22612(\frac{(0.6235+ 0.7818 i)^n - (0.6235- 0.7818i)^n}{2i})
とすれば,「三角関数すら使わない」ふりができる.w

n=30 で 2 を返す.(桁を節約しているので,精度は悪い)
32(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))^6+12.7596(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))^5-56(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))^4-15.0365(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))^3+28(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))^2+1.22612(((0.6235+0.7818 i)^30-(0.6235-0.7818i)^30)/(2i))

0 件のコメント:

コメントを投稿

「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.