## 2020年1月3日金曜日

### 数学 - Python - 線形代数学 - ベクトル空間 - 基底 - 一次結合、座標ベクトル

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の2章(ベクトル空間)、3(基底)、練習問題2の解答を求めてみる。

1. $\begin{array}{l}{x}_{1}=1\\ 1+{x}_{2}=0\\ \left(1,-1\right)\end{array}$

2. $\begin{array}{l}{x}_{1}+{x}_{2}=2\\ -{x}_{1}+{x}_{2}=1\\ 2{x}_{2}=3\\ {x}_{2}=\frac{3}{2}\\ {x}_{1}=\frac{1}{2}\\ \left(\frac{1}{2},\frac{3}{2}\right)\end{array}$

3. $\begin{array}{l}{x}_{1}=1\\ 2-{x}_{2}=1\\ {x}_{2}=1\\ \left(1,1\right)\end{array}$

4. $\begin{array}{l}{x}_{1}=3\\ 6-{x}_{2}=4\\ {x}_{2}=2\\ \left(3,2\right)\end{array}$

コード

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

print('2.')

class MyTestCase(TestCase):
def test(self):
Xs = [(1, 0), (2, 1), (1, 1), (4, 3)]
As = [(1, 1), (1, -1), (2, 1), (2, 1)]
Bs = [(0, 1), (1, 1), (-1, 0), (-1, 0)]
xs = [(1, -1), (Rational(1, 2), Rational(3, 2)), (1, 1), (3, 2)]
for X, A, B, (x1, x2) in zip(Xs, As, Bs, xs):
self.assertEqual(Matrix(X), x1 * Matrix(A) + x2 * Matrix(B))

if __name__ == '__main__':
main()


% ./sample2.py -v
2.
test (__main__.MyTestCase) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.001s

OK
%