2019年4月25日木曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第2章(数列と級数)、2.2(数列の収束条件)、問題3の解答を求めてみる。



    1. a n + 1 = 1 2 a n + α a n a n · α a n = α a 1 > α > 1

      (相加平均、相乗平均より)

      よって、数列は下に有界である。

      また、

      a n + 1 - a n = 1 2 a n + α a n - a n = 1 2 α a n - a n < 1 2 α 2 a n - a n < 1 2 a n 2 a n - a n = 1 2 a n - a n = 0

      よって、 数列は単調減少である。

      ゆえに収束する。

      その極限を b とすると、

      b = 1 2 b + α b 2 b 2 = b 2 + α b 2 = α b = α

      (証明終)


    2. ε n + 1 = a n + 1 - α = 1 2 a n + α a n - α = a n 2 + a - 2 α 2 a n = a n - α 2 2 a n = ε n 2 2 a n < ε n 2 2 a = ε n 2 β ε n + 1 β < ε n 2 β 2 = ε n β 2 < ε n - 1 β 2 2 < < ε 1 β 2 n

コード

Python 3

#!/usr/bin/env python3
import matplotlib.pyplot as plt
import math

print('3.')

alpha = 10
beta = 2 * math.sqrt(alpha)


def a(n):
    if n == 1:
        return math.sqrt(alpha) + 5
    return (a(n - 1) + alpha / (a(n - 1))) / 2


def c(n):
    return math.sqrt(alpha)


def e(n):
    return a(n) - math.sqrt(alpha)


def l(n):
    return e(n + 1) / beta


def r(n):
    return (e(1) / beta) ** (2 ** n)


n = 5

funcs = [a, c, l, r]


for func in [a, c, l, r]:
    plt.plot(range(1, n + 1), [func(i) for i in range(1, n + 1)], marker='o')
    print(func.__name__)
    for n in range(1, n + 1):
        print(func(n))


plt.legend([func.__name__ for func in funcs])
# plt.show()
plt.savefig('sample3.png')

入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample3.py
3.
a
8.16227766016838
4.693712943361397
3.4121112199651673
3.1714240219920384
3.1622908491859985
c
3.1622776601683795
3.1622776601683795
3.1622776601683795
3.1622776601683795
3.1622776601683795
l
0.24214117920174566
0.03950215424528614
0.0014461667833386746
2.0853667887956127e-06
4.348728984187216e-12
r
0.6249999999999999
0.3906249999999999
0.1525878906249999
0.02328306436538693
0.0005421010862427508

C:\Users\...>

0 コメント:

コメントを投稿