2020年5月24日日曜日

学習環境

ラング線形代数学(上) (ちくま学現文庫)(S.ラング (著)、芹沢 正三 (翻訳)、筑摩書房)の5章(線形写像と行列)、3(線形写像の合成)、練習問題3の解答を求めてみる。



    1. 1,1,0=a112,1,1+a210,0,1+a31-1,1,1-1,1,1=a122,1,1+a220,0,1+a32-1,1,10,1,2=a132,1,1+a230,0,1+a33-1,1,1{2a11-a31=1a11+a31=1a11+a21+a31=03a11=2a11=23a31=13a21=-1{2a12-a32=-1a12+a32=1a12+a22+a32=1a12=0a32=1a22=0{2a13-a33=0a13+a33=1a13+a23+a33=2a13=13a33=23a23=1

      よって、問題の基底に関する恒等線形写像に対応する行列は、

      [23013-10113123]

    2. 3,2,1=a111,1,0+a21-1,2,4+a312,-1,10,-2,5=a121,1,0+a22-1,2,4+a322,-1,11,1,2=a131,1,0+a23-1,2,4+a332,-1,1{a11-a21+2a31=3a11+2a21-a31=24a21+a31=1a31=1-4a21a11-9a21=1a11+6a21=315a21=2a21=215a31=715a11=3315{a12-a22+2a32=0a12+2a22-a32=-24a22+a32=5a32=5-4a22a12-9a22=-10a12+6a22=3a22=1315a32=2315a12=4515-7815=-3315{a13-a23+2a33=1a13+2a23-a33=14a23+a33=2a33=2-4a23a13-9a23=-3a13+6a23=3a23=615a33=615a13=915115[33-33921367236]

コード

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

print('3.')


class Test(TestCase):
    def test_a(self):
        A = Matrix(symbols('a:9')).reshape(3, 3)
        X = Matrix([[1, 1, 0],
                    [-1, 1, 1],
                    [0, 1, 2]])
        s = solve(A * Matrix([[2, 1, 1],
                              [0, 0, 1],
                              [-1, 1, 1]]) - X)
        self.assertEqual(Matrix(list(s.values())).reshape(3, 3).T,
                         Matrix([[Rational(2, 3), 0, Rational(1, 3)],
                                 [-1, 0, 1],
                                 [Rational(1, 3), 1, Rational(2, 3)]]))

    def test_b(self):
        A = Matrix(symbols('a:9')).reshape(3, 3)
        X = Matrix([[3, 2, 1],
                    [0, -2, 5],
                    [1, 1, 2]])
        s = solve(A * Matrix([[1, 1, 0],
                              [-1, 2, 4],
                              [2, -1, 1]]) - X)
        self.assertEqual(Matrix(list(s.values())).reshape(3, 3).T,
                         Rational(1, 15) * Matrix([[33, -33, 9],
                                                   [2, 13, 6],
                                                   [7, 23, 6]]))


if __name__ == "__main__":
    main()

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

% ./sample3.py -v
3.
test_a (__main__.Test) ... ok
test_b (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.130s

OK
%

0 コメント:

コメントを投稿