Processing math: 100%

2019年7月1日月曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の7章(スカラー積と直交性)、3(一般の直交基底)、練習問題1の解答を求めてみる。



    1. u=Av=B-B·AA·AA=(1,-1,2)-(1,-1,2)·(1,1,1)(1,1,1)·(1,1,1)(1,1,1)=(1,-1,2)-1-2+21+2+1(1,1,1)=(1,-1,2)-14(1,1,1)=14(3,-5,7)

      よって、求める 部分空間の直交基底は、

      {(1,1,1),(3,-5,7)}

    2. u=(1,-1,4)v=(-1,1,3)-(-1,1,3)·(1,-1,4)(1,-1,4)·(1,-1,4)(1,-1,4)=(-1,1,3)--1+3-4+31-3+4+4(1,-1,4)=(-1,1,3)-16(1,-1,4)=16(-7,7,14)=76(-1,1,2){(1,-1,4),(-1,1,2)}

コード

Python 3

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

print('1.')


def f(X, Y):
    return X[0] * Y[0] + 2 * X[1] * Y[1] + X[2] * Y[2]


def g(X, Y):
    return X[0] * Y[0] - 3 * X[1] * Y[1] + X[0] * Y[2] - X[2] * Y[1]


hs = [f, g]
ABs = [((1, 1, 1), (1, -1, 2)),
       ((1, -1, 4), (-1, 1, 3))]

for i, (h, (a, b)) in enumerate(zip(hs, ABs)):
    print(f'({chr(ord("a") + i)})')
    A = Matrix(a)
    B = Matrix(b)
    B = B - h(B, A) / h(A, A) * A
    for o in [A, B]:
        pprint(o.transpose())
        print()

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

C:\Users\...>py sample1.py
1.
(a)
[1  1  1]

[3/4  -5/4  7/4]

(b)
[1  -1  4]

[-7/6  7/6  7/3]


C:\Users\...>

0 コメント:

コメントを投稿