2018年10月10日水曜日

学習環境

線型代数入門(松坂 和夫(著)、岩波書店)の第7章(固有値と固有ベクトル)、6(漸化式で定められる数列)、問題4.を取り組んでみる。


  1. 固有多項式(特性多項式)、固有値を求める。

    x 2 + 2 x + 3 α = - 1 + 2 i , β = - 1 - 2 i

    固有値を極形式で表す。

    r = - 1 2 + 2 2 = 1 + 2 = 3 α = 3 cos θ + i sin θ β = 3 cos θ - i sin θ cos θ = - 1 3 , sin θ = 2 3

    また、最初の2項より、

    A + B = 1 A - 1 + 2 i + B - 1 - 2 i = 2 a + b i + c + d i = 1 a + c = 1 b + d = 0 c = 1 - a d = - b B = 1 - a - b i a + b i - 1 + 2 i + 1 - a - b i - 1 - 2 i = 2 - a - 2 b - 1 + a - 2 b + 2 a - b - 2 + 2 a + b i = 2 - 2 2 b - 1 = 2 2 2 a - 2 = 0 b = - 3 2 2 a = 1 2 c = 1 2 d = 3 2 2 A = 1 2 1 - 3 2 i B = 1 2 1 + 3 2 i

    よって、求める数列の一般項を三角関数を用いて表すと、

    a n = 1 2 1 - 3 2 i 3 n cos n θ + i sin n θ + 1 + 3 2 i 3 n cos n θ - i sin n θ = 3 n 2 2 cos n θ + 6 2 sin n θ = 3 n cos n θ + 3 2 sin n θ cos θ = - 1 3 , sin θ = 2 3

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, sin, cos, acos, sqrt, solve, Rational

print('4.')


def an(n):
    if n == 0:
        return 1
    if n == 1:
        return 2
    return -2 * an(n - 1) - 3 * an(n - 2)


n = symbols('n')

θ = acos(-1 / sqrt(3))
bn = sqrt(3) ** n * (cos(n * θ) + 3 / sqrt(2) * sin(n * θ))
pprint(sin(θ))
pprint(bn)
for k in range(0, 20):
    print(f'n = {k}', an(k) == int(bn.subs({n: k})))

入出力結果(Terminal, Jupyter(IPython))

$ ./sample4.py
4.
√6
──
3 
 n ⎛        ⎛      ⎛-√3 ⎞⎞                    ⎞
 ─ ⎜3⋅√2⋅sin⎜n⋅acos⎜────⎟⎟                    ⎟
 2 ⎜        ⎝      ⎝ 3  ⎠⎠      ⎛      ⎛-√3 ⎞⎞⎟
3 ⋅⎜────────────────────── + cos⎜n⋅acos⎜────⎟⎟⎟
   ⎝          2                 ⎝      ⎝ 3  ⎠⎠⎠
n = 0 True
n = 1 True
n = 2 True
n = 3 True
n = 4 True
n = 5 True
n = 6 True
n = 7 True
n = 8 True
n = 9 True
n = 10 True
n = 11 True
n = 12 True
n = 13 True
n = 14 True
n = 15 True
n = 16 True
n = 17 True
n = 18 True
n = 19 True
$

0 コメント:

コメントを投稿