2019年5月20日月曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の6章(行列式)、3(クラーメルの法則)、練習問題1の解答を求めてみる。



    1. det [ 3 1 - 1 1 1 1 0 1 - 1 ] = - 3 + 1 - 3 - 1 = - 4 - 2 = - 6 x = - 1 6 det [ 0 1 - 1 0 1 1 1 1 - 1 ] = - 1 6 1 + 1 = - 1 3 y = - 1 6 det [ 3 0 - 1 1 0 1 0 1 - 1 ] = 1 6 3 + 1 = 2 3 z = - 1 6 det [ 3 1 0 1 1 0 0 1 1 ] = - 1 6 3 - 1 = - 1 3

    2. det [ 2 - 1 1 1 3 - 2 4 - 3 1 ] = det [ 0 0 1 5 1 - 2 2 - 2 1 ] = - 10 - 2 = - 12 x = - 1 12 det [ 0 - 1 1 0 3 - 2 2 - 3 1 ] = - 1 12 · 2 2 - 3 = 1 6 y = - 1 12 det [ 2 0 1 1 0 - 2 4 2 1 ] = 1 12 · 2 - 4 - 1 = - 5 6 z = - 1 12 det [ 2 - 1 0 1 3 0 4 - 3 2 ] = - 1 6 6 + 1 = - 7 6

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Matrix, solve

print('1.')

X = Matrix(symbols('x, y, z')).reshape(3, 1)
ps = [(((3, 1, -1),
        (1, 1, 1),
        (0, 1, -1)),
       (0, 0, 1)),
      (((2, -1, 1),
        (1, 3, -2),
        (4, -3, 1)),
       (0, 0, 2))]

for i, (a, b) in enumerate(ps):
    print(f'({chr(ord("a") + i)})')
    A = Matrix(a)
    B = Matrix(b).reshape(3, 1)
    for o in [A.det(), solve(A * X - B)]:
        pprint(o)
        print()

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

C:\Users\...>py sample1.py
1.
(a)
-6

{x: -1/3, y: 2/3, z: -1/3}

(b)
-12

{x: 1/6, y: -5/6, z: -7/6}


C:\Users\...>

0 コメント:

コメントを投稿