Loading [MathJax]/jax/output/CommonHTML/jax.js

2019年6月21日金曜日

学習環境

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



    1. 直交基底。

      u=(1,2,1,0)v=(1,2,3,1)-(1,2,3,1)·(1,2,1,0)(1,2,1,0)·(1,2,1,0)(1,2,1,0)=(1,2,3,1)-1+4+31+4+1(1,2,1,0)=(1,2,3,1)-43(1,2,1,0)=43(-1,-2,5,3)

      正規直交基底。

      16(1,2,1,0)(-1,-2,5,3)1+4+25+9=139(-1,-2,5,3)

    2. 直交化。

      u=(1,1,0,0)v=(1,-1,1,1)-(1,-1,1,1)·(1,1,0,0)(1,1,0,0)·(1,1,0,0)(1,1,0,0)=(1,-1,1,1)-1-11+1(1,1,0,0)=(1,-1,1,1)w=(-1,0,2,1)-(-1,0,2,1)·(1,-1,1,1)(1,-1,1,1)·(1,-1,1,1)(1,-1,1,1)-(-1,0,2,1)·(1,1,0,0)(1,1,0,0)·(1,1,0,0)(1,1,0,0)=(-1,0,2,1)--1+2+11+1+1+1(1,-1,1,1)--11+1(1,1,0,0)=(-1,0,2,1)-12(1,-1,1,1)+12(1,1,0,0)=12(-2,2,3,1)

      正規化。

      12(1,1,0,0)12(1,-1,1,1)(-2,2,3,1)4+4+9+1=132(-2,2,3,1)

コード

Python 3

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

print('2.')

print('(a)')
v1 = Matrix([1, 2, 1, 0])
v2 = Matrix([1, 2, 3, 1])
v2 = v2 - v2.dot(v1) / v1.dot(v1) * v1

for v in [v1, v2]:
    pprint((v / v.norm()).transpose())
    print()

print('(b)')
v1 = Matrix([1, 1, 0, 0])
v2 = Matrix([1, -1, 1, 1])
v2 = v2 - v1.dot(v2) / v2.dot(v2) * v2
v3 = Matrix([-1, 0, 2, 1])
v3 = v3 - v3.dot(v2) / v2.dot(v2) * v2 - v3.dot(v1) / v1.dot(v1) * v1

for v in [v1, v2, v3]:
    pprint((v / v.norm()).transpose())
    print()

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

C:\Users\...>py sample2.py
2.
(a)
⎡√6  √6  √6   ⎤
⎢──  ──  ──  0⎥
⎣6   3   6    ⎦

⎡-√39   -2⋅√39   5⋅√39  √39⎤
⎢─────  ───────  ─────  ───⎥
⎣  39      39      39    13⎦

(b)
⎡√2  √2      ⎤
⎢──  ──  0  0⎥
⎣2   2       ⎦

[1/2  -1/2  1/2  1/2]

⎡-√2   √2  √2  √2⎤
⎢────  ──  ──  ──⎥
⎣ 3    3   2   6 ⎦


C:\Users\...>

0 コメント:

コメントを投稿