2020年4月3日金曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第10章(n次元空間)、10.2(ベクトル空間)、問題1の解答を求めてみる。


  1. c 1 a + c 2 b + c 3 c = 0 c 1 + c 2 , - c 1 + 2 c 3 , c 2 + c 3 = 0 , 0 , 0

    を満たす

    c 1 , c 2 , c 3

    を求める。

    c 1 + c 2 = 0 c 2 = - c 1 - c 1 + c 3 = 0 c 3 = c 1 - c 1 + 2 c 1 = 0 c 1 = 0 c 2 = 0 c 3 = 0

    よって、 ベクトル a、 b、 c は1は独立。

    また3次元なので、

    a , b , c

    3

    の基底をなす。

    (証明終)

    座標ベクトルについて。

    x 1 1 , - 1 , 0 + x 2 1 , 0 , 1 + x 3 0 , 2 , 1 = 2 , 4 , - 1 { x 1 + x 2 = 2 - x 1 + 2 x 3 = 4 x 2 + x 3 = - 1 x 2 = 2 - x 1 x 3 = - 1 - 2 + x 1 = - 3 + x 1 - x 1 - 6 + 2 x 1 = 4 x 1 = 10 x 2 = - 8 x 3 = 7

    よって、 求める座標ベクトルは(10,-8,7)。

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, solve

print('1.')

a = Matrix([1, -1, 0])
b = Matrix([1, 0, 1])
c = Matrix([0, 2, 1])
abcs = [a, b, c]
c1, c2, c3 = symbols('c:3')
linear_combination = c1 * a + c2 * b + c3 * c


class Test(TestCase):
    def test_base(self):
        self.assertEqual(solve(linear_combination), {c1: 0, c2: 0, c3: 0})

    def test_coordinates(self):
        u = Matrix([2, 4, -1])
        self.assertEqual(solve(linear_combination - u),
                         {c1: 10, c2: -8, c3: 7})


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample1.py -v
1.
test_base (__main__.Test) ... ok
test_coordinates (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.020s

OK
%

0 コメント:

コメントを投稿