2020年4月28日火曜日

学習環境

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



    1. 点 P を

      Px,0,0

      とおく。

      AP=BPx-12+1+1=x+12+4x-12+2=x+12+4-2x+2=2x+4x=-12

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

      P-12,0,0

    2. 点 Q を

      Q0,y,0

      とおく。

      AQ=BQ1+y-12+1=1+y2+4-2y+3=5y=-1Q0,-1,0

      ことから

      Rx,y,0

      とおく。

      AB2=4+1+9=14{x-12+y-12+1=14x+12+y2+4=14{x2-2x+1+y2-2y+1+1=14x2+2x+1+y2+4=14{x2-2x+y2-2y=11x2+2x+y2=9-4x-2y=2y=-2x-1x2+2x+2x+12=95x2+6x-8=0x=-3±9+405=-3±75=-2,45y=4-1=3y=-85-1=-135R-2,3,0R45,-135,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 コメント:

コメントを投稿