ただのメモ

他の人に見せても良い方のメモ

数列を考える

 a_{n+1} = \frac{1}{4 a_n -1}

こちらの問題がある。

まず、お絵描きしてみる。

#%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import math


T = 30
a = [0] * T
a[0] = 0.5

for i in range(T-1):
    a[i+1] = 1/(4*a[i]-1)

x = [for i in range(T)]


# figureを生成する
fig = plt.figure()
# axをfigureに設定する
ax = fig.add_subplot(1, 1, 1)
# axesに散布図を設定する
ax.scatter(x, a , s=10, c='b')

a2 = [0] * T
a2[0] = 0.3

for i in range(T-1):
    a2[i+1] = 1/(4*a2[i]-1)

ax.scatter(x, a2 , s=10, c='g')

a3 = [0] * T
a3[0] = -0.1

for i in range(T-1):
    a3[i+1] = 1/(4*a3[i]-1)

ax.scatter(x, a3 , s=10, c='purple')

a4 = [0] * T
a4[0] = -1

for i in range(T-1):
    a4[i+1] = 1/(4*a4[i]-1)

ax.scatter(x, a4 , s=10, c='orange')

a5 = [0] * T
a5[0] = 1

for i in range(T-1):
    a5[i+1] = 1/(4*a5[i]-1)

ax.scatter(x, a5 , s=10, c='red')
# 表示する
plt.show()

 

f:id:medical-science:20220302162914p:plain

収束しそうだ。

実際、特性方程式を立てて、分数にして、いろいろと計算したら、一般解が求まる。

 

それはそうとして、

こういった数列は、自然数に対して定義されている。

これを実数や複素数に拡張すると、どうなるか。

(つまり、1.5個目の数、とか、1+2j個目の数、とか)

 

一般解はnを含む。これに単純に代入してやれば、求まりそうだ。

フィボナッチ数列を考える。

お絵描きを始めましょうか。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import math

# 円周率の定義
pi = np.pi
e = math.e
 

phi = (1+5**0.5)/2


import cmath
def powc(a,b):
  if a == 0:
    if b.real == 0 and b.imag == 0:
      return 1
    else:
      return 0
  else:
    g =1
    if a < 0:
      g = cmath.exp(pi/2*1j*(b))
      a = -a
    re = b.real
    im = b.imag
    t = a**re
    edb = math.log(a**im, e)
    print(edb)
    y = cmath.exp(edb*1j)
    ans = t*y*g
    return ans 



def fib(n):
  ans = (powc(phi,n+0j) - powc(1- phi,n+0j))/5**0.5 
  return ans


fib(6+3j)