学習環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Microsoft Edge, Google Chrome...)用JavaScript Library: MathJax
- 参考書籍
ラング線形代数学(上)(S.ラング (著)、芹沢 正三 (翻訳)、ちくま学芸文庫)の1章(R^n におけるベクトル)、5(直線と平面)、練習問題19、20.を取り組んでみる。
Pを通りAの向きを持つ直線のパラメーター方程式をX = P + tAとおく。
求める交点。
平面3x + y - 5z = 2 の1つの法線ベクトルを N = (3, 1, -5)とおく。
点(1, 1, 2)を通り、向きNの直線のパラメーター方程式を X = (1, 1, 2) + t(3, 1, -5)とおく。
上記の平面と直線の交点を求める。
求める距離。
コード(Emacs)
Python 3
#!/usr/bin/env python3 from sympy import pprint, symbols, Matrix, solve print('19.') X = Matrix(symbols('x y z')) P = Matrix([1, 3, 5]) A = Matrix([-2, 1, 1]) t = symbols('t') eq1 = P + t * A eq2 = Matrix([2, 3, -1]).dot(X) - 1 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) X0 = eq1.subs({t: t0}) pprint(X0.T) print('20.') N = Matrix([3, 1, -5]) eq1 = Matrix([1, 1, 2]) + t * N eq2 = N.dot(X) - 2 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) X0 = eq1.subs({t: t0}) pprint(X0.T) pprint((X0 - Matrix([1, 1, 2])).norm())
入出力結果(Terminal, Jupyter(IPython))
$ ./sample19.py 19. [-2⋅t + 1 t + 3 t + 5] 2⋅x + 3⋅y - z - 1 -2⋅t + 5 5/2 [-4 11/2 15/2] 20. [3⋅t + 1 t + 1 -5⋅t + 2] 3⋅x + y - 5⋅z - 2 35⋅t - 8 8/35 ⎡59 43 ⎤ ⎢── ── 6/7⎥ ⎣35 35 ⎦ 8⋅√35 ───── 35 $
0 コメント:
コメントを投稿