2020年4月28日火曜日

学習環境

新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第11章(立体的な広がりの中の図形 - 空間図形)、11.1(空間における点・直線・平面、空間の座標)、2点間の距離の問6の解答を求めてみる。



    1. 点 P を

      P x , 0 , 0

      とおく。

      A P = B P x - 1 2 + 1 + 1 = x + 1 2 + 4 x - 1 2 + 2 = x + 1 2 + 4 - 2 x + 2 = 2 x + 4 x = - 1 2

      よって 求める x 軸上の点 P は

      P - 1 2 , 0 , 0

    2. 点 Q を

      Q 0 , y , 0

      とおく。

      A Q = B Q 1 + y - 1 2 + 1 = 1 + y 2 + 4 - 2 y + 3 = 5 y = - 1 Q 0 , - 1 , 0

      ことから

      R x , y , 0

      とおく。

      A B 2 = 4 + 1 + 9 = 14 { x - 1 2 + y - 1 2 + 1 = 14 x + 1 2 + y 2 + 4 = 14 { x 2 - 2 x + 1 + y 2 - 2 y + 1 + 1 = 14 x 2 + 2 x + 1 + y 2 + 4 = 14 { x 2 - 2 x + y 2 - 2 y = 11 x 2 + 2 x + y 2 = 9 - 4 x - 2 y = 2 y = - 2 x - 1 x 2 + 2 x + 2 x + 1 2 = 9 5 x 2 + 6 x - 8 = 0 x = - 3 ± 9 + 40 5 = - 3 ± 7 5 = - 2 , 4 5 y = 4 - 1 = 3 y = - 8 5 - 1 = - 13 5 R - 2 , 3 , 0 R 4 5 , - 13 5 , 0

コード

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols, Matrix, solve, Rational

print('6.')

x, y = symbols('x, y', real=True)
a = Matrix([1, 1, 1])
b = Matrix([-1, 0, -2])
ab = (a - b).norm()


class Test(TestCase):
    def test1(self):
        p = Matrix([x, 0, 0])
        self.assertEqual(
            solve((a - p).norm() - (b - p).norm()), [-Rational(1, 2)])

    def test2(self):
        r = Matrix([0, y, 0])
        self.assertEqual(
            solve((a - r).norm() - (b - r).norm()), [-1])

    def test3(self):
        r = Matrix([x, y, 0])
        self.assertEqual(solve([(r - a).norm() - ab,
                                (r - b).norm() - ab]),
                         [{x: -2, y: 3},
                          {x: Rational(4, 5), y: -Rational(13, 5)}])


if __name__ == "__main__":
    main()

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./sample6.py -v
6.
test1 (__main__.Test) ... ok
test2 (__main__.Test) ... ok
test3 (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.430s

OK
%

0 コメント:

コメントを投稿