1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複素平面と漸化式について

Posted at

はじめに

大学入試の数学において、ある点がある円周上にあるかどうかを判断するためには、大きく分けて2種類の方法がある。一つは、円の方程式に代入して計算する方法である。この方法は、ひらめきは少ないが、膨大な計算量が要求されてしまう。一方で、円周角の定理の逆を示すという幾何的な方法もある。この方法はひらめきを要求しかつ盲点となりやすいが、その分計算量を膨大に減らすことができるといったメリットもある。そこで今回は複素平面上において、ある漸化式を用いて点の座標を作成し、その点がある円の周上にあることを示す。具体的には、2001年度の東大の問題を扱う。

複素数の逆数.png

このように、円周上をランダムに散らばるのではなく、ある点に収束していくような分布になる。

問題

以下のサイトの14番を参考にした。

導入

複素平面上の点$a_1,a_2,\cdot \cdot \cdot, a_n$を考える。

$a_1=1,a_2=i$とした数列$a_{n+2}=a_{n+1}+a_n$を考える。

$b_n=\frac{a_{n+1}}{a_n}$とおくと、すべての点$b_n$はなんと同一円周上にあるという。それを示す。

前準備

$b_1=1,b_2=1-i,b_3=\frac{3+i}{2}$となり、$b_1,b_2,b_3$からなる三角形は直角2等辺三角形となる。したがって、円周角の定理の逆より、$b_1 b_2$を直径とする円周上に$b_n$が存在することを示せばよい。(これが第一の関門である)

証明

上記を代数的な方法で解こうとするとかなり計算力と根気を必要するだろうと直感的に気が付けるかが大事である。それくらいの演習量と経験値を確保したい。

したがって、$b_1,b_2,b_n$から生成される三角形$\Delta B_1B_2B_3$が直角三角形であることを示す。

すなわち、

\frac{b_n-b_1}{b_n-b_2}=ki

(ただし$k$は実数とする)を示す。

この式を変形すると、

b_n=\frac{-k+(-k+1)i}{1-ki}

となるので、もし$b_{n+1}$もこのような形で表すことができれば、帰納的に$b_n$は円周上にあるということが証明される。

$a_1=1,a_2=i$とした数列$a_{n+2}=a_{n+1}+a_n$より$a_n\ne 0$ なので、両辺を$a_n$で除すると、

b_{n+1}=1+\frac{1}{b_n}

となるので、

b_n=\frac{-k+(-k+1)i}{1-ki}

 を代入して同じ形になるように意識して整理すると、

b_{n+1}=\frac{-k+(-k'+1)i}{1-k'i} 

ただし、

k'=-(1-\frac{1}{k})

となる。$k$は実数であることから$k'$が実数であることは自明である。したがって、題意は示された。

プログラム

python en.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math

a1=1
a2=1j
 
n=1000
a_ary=[a1,a2]

for i in range(1,n):
   a_ary.append(a_ary[-1]+a_ary[-2])

m=len(a_ary)
b_ary=[]
for k in range(m):
    if k < m-2:
        b_ary.append(a_ary[k+1]/a_ary[k])
        #print(a_ary[k+1]/a_ary[k])

b_ary=np.array(b_ary,dtype=complex)
# 点(数列)をプロットするための配列を作成
# b_aryの実部と虚部を分ける
x_ary=b_ary.real
y_ary=b_ary.imag

# 円の描写
theta=np.linspace(0,2*math.pi,100)
r=5**0.5/2
x=r*np.cos(theta)+0.5
y=r*np.sin(theta)

plt.plot(x,y,label='円周')
plt.scatter(x_ary,y_ary)
plt.xlabel('実部')
plt.ylabel('虚部')
plt.title('複素数の逆数')
plt.grid()  
plt.axis('equal')
plt.savefig('複素数の逆数.png')
plt.show()

これを実行すると以下のようになる。

複素数の逆数.png

このように、ブロットされる点はランダムに円周上を散らばるのではなく、ある点に収束するかのように偏った分布をすることが分かる。

まとめ

今回は、複素平面と数列の証明問題を扱った。具体的には、円周角の定理の逆(今回のように直径と直角を扱う場合が多い)を用いてある点が円周上にあることを示した。また、後半では、それをプログラミングを用いて図示することを試みた。

参考文献

この問題は、フィナボッチ数列や黄金比と関係性があるらしい。なので、より詳しく背景知識を知りたい方は、以下のサイトの記事を参考にされたい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?