2020年6月27日土曜日

学習環境

続 解析入門 (原書第2版) (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第1章(ベクトル)、6(平面)の練習問題10の解答を求めてみる。



    1. X = ( 1 , 2 , 3 , 4 ) + t ( 1 , 1 , 1 , 1 ) = ( 1 + t , 2 + t , 3 + t , 4 + t )

      求める Q と X の間の距離は

      ( 1 + t - 4 ) 2 + ( 2 + t - 3 ) 2 + ( 3 + t - 2 ) 2 + ( 4 + t - 1 ) 2
      = ( t - 3 ) 2 + ( t - 1 ) 2 + ( t + 1 ) 2 + ( t + 3 ) 2
      = 4 t 2 + 20
      = 2 t 2 + 5

    2. t = 0

      のとき、すなわち

      X 0 = ( 1 , 2 , 3 , 4 )

      のとき最小値

      2 5

    3. X 0 - Q = ( - 3 , - 1 , 1 , 3 )
      ( X 0 - Q ) · A = - 3 - 1 + 1 + 3 = 0

      よって直線に垂直である。

      (証明終)

コード

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

print('10.')

p = Matrix([1, 2, 3, 4])
q = Matrix([4, 3, 2, 1])
a = Matrix([1, 1, 1, 1])
t = symbols('t', real=True)
l = p + t * a
x0 = Matrix([1, 2, 3, 4])


class Test(TestCase):
    def test_a(self):
        self.assertEqual((l - q).norm().simplify(), 2 * sqrt(t ** 2 + 5))

    def test_c(self):
        self.assertEqual((x0 - q).dot(a), 0)


if __name__ == "__main__":
    main()

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

% ./sample10.py -v
10.
test_a (__main__.Test) ... ok
test_c (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.266s

OK
%

0 コメント:

コメントを投稿