Loading [MathJax]/jax/output/HTML-CSS/jax.js

2019年4月25日木曜日

学習環境

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



    1. an+1=12(an+αan)an·αan=αa1>α>1

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

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

      また、

      an+1-an=12(an+αan)-an=12(αan-an)<12(α2an-an)<12(a2nan-an)=12(an-an)=0

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

      ゆえに収束する。

      その極限を b とすると、

      b=12(b+αb)2b2=b2+αb2=αb=α

      (証明終)


    2. εn+1=an+1-α=12(an+αan)-α=a2n+a-2α2an=(an-α)22an=ε2n2an<ε2n2a=ε2nβεn+1β<ε2nβ2=(εnβ)2<((εn-1β)2)2<<(ε1β)(2n)

コード

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 コメント:

コメントを投稿