学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第11章(立体的な広がりの中の図形 - 空間図形)、11.3(直線・平面・球の方程式)、直線の方程式の問24の解答を求めてみる。
よって、 問題のベクトル は2つのベクトル
の両方に垂直である。
(証明終)
コード
#!/usr/bin/env python3
from unittest import TestCase, main
import random
from sympy import symbols, Matrix
from sympy.plotting import plot3d_parametric_line
print('24.')
class Test(TestCase):
def test(self):
p1, p2, p3 = symbols('p:3')
q1, q2, q3 = symbols('q:3')
p = Matrix([p1, p2, p3])
q = Matrix([q1, q2, q3])
v = Matrix([p2 * q3 - p3 * q2, p3 * q1 - p1 * q3, p1 * q2 - p2 * q1])
for w in [p, q]:
self.assertEqual(w.dot(v).simplify(), 0)
t = symbols('t')
for i in range(2):
p1, p2, p3 = [random.randrange(-10, 10) for _ in range(3)]
q1, q2, q3 = [random.randrange(-10, 10) for _ in range(3)]
p = Matrix([p1, p2, p3])
q = Matrix([q1, q2, q3])
v = Matrix([p2 * q3 - p3 * q2, p3 * q1 - p1 * q3, p1 * q2 - p2 * q1])
pp = plot3d_parametric_line(*[(*(t * w), (t, 0, 1))
for w in [p, q, v]],
xlim=(-10, 10),
ylim=(-10, 10),
zlim=(-10, 10),
legend=True,
show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']
for o, color in zip(pp, colors):
o.line_color = color
pp.save(f'sample24_{i}.png')
pp.show()
if __name__ == "__main__":
main()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample24.py -v
24.
test (__main__.Test) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.314s
OK
%
0 コメント:
コメントを投稿