2017年10月11日水曜日

学習環境

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


  1. 問題の方程式を変形。

    ( XP )·N=0

    Nは平面の法線ベクトル、Pは平面上の1点、Xは平面上の点。

    Qは平面上の点ではないので、Q + tNが平面上にあるようなtはただ1つ存在する。

    ( Q+tN )·N=P·N Q·NtN·N=P·N t= Q·NP·N N·N

  2. Pを通りNの向きを持つ直線の方程式。

    X=P+tN

    Qを通り、Nに垂直な平面の方程式。

    X·N=Q·N

    前問よりtを求める。

    ( Q+tN )·N=P·N Q·NtN·N=P·N t= Q·NP·N N·N X=P+tN X·N=Q·N t= P·NQ·N N·N = ( 1+64 )( 12+4 ) 1+4+4 = 33 9 =0

    よって求める直線と平面との交点は、X = P = (1, 3, -2)。

コード(Emacs)

Python 3

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

print('17.')
X = Matrix(symbols('x y z'))
Q = Matrix([1, -1, 2])
P = Matrix([1, 3, -2])
N = Matrix([1, 2, 2])
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)[0]
pprint(eq1.subs({t:t0}).T)

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

$ ./sample16.py
17.
[t + 1  2⋅t + 3  2⋅t - 2]

x + 2⋅y + 2⋅z - 3

9⋅t

[1  3  -2]
$

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

0 コメント:

コメントを投稿