2017年10月15日日曜日

学習環境

ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の1章(R^n におけるベクトル)、5(直線と平面)、練習問題18.を取り組んでみる。


  1. 直線。

    X=P+tN

    平面。

    ( XQ )·N=0 X·N=Q·N

    交点。

    ( P+tN )·N=Q·N tN·N=Q·NP·N t= ( QP )·N N·N P'=P+ ( QP )·N N·N N

    距離。

    | P'P | =| ( QP )·N N·N N | =| ( ( 1,1,7 )( 1,3,5 ) )·( 1,1,1 ) ( 1,1,1 )·( 1,1,1 ) ( 1,1,1 ) | =| ( 2,2,2 )·( 1,1,1 ) 1+1+1 ( 1,1,1 ) | =| 222 3 ( 1,1,1 ) | =| 2 3 ( 1,1,1 ) | = 2 2 3 2 ( 1+1+1 ) = 2 2 3 2 ·3 = 2 3

コード(Emacs)

Python 3

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

print('18.')
X = Matrix(symbols('x y z'))
P = Matrix([1, 3, 5])
Q = Matrix([-1, 1, 7])
N = Matrix([-1, 1, -1])
t = symbols('t')

eq1 = P + t * N
eq2 = (X - Q).dot(N)

eq3 = eq2.subs({k: v for k, v in zip(X, eq1)})

for t0 in [eq1.T, eq2, eq3]:
    pprint(t0)
    print()

t0 = solve(eq3, t)[0]
pprint(t0)
P1 = eq1.subs({t: t0})
for s in [P1.T, (P - P1).norm()]:
    pprint(s)
    print()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample18.py
18.
[-t + 1  t + 3  -t + 5]

-x + y - z + 5

3⋅t + 2

-2/3
[5/3  7/3  17/3]

2⋅√3
────
 3  

$

macOS High Sierraの標準搭載されているグラフ作成ソフト、Grapher で作成。

0 コメント:

コメントを投稿