2020年7月6日月曜日

学習環境

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



    1. (1,4,1)

      は平面上の点である。

      よって、 求める点 P と平面との距離は

      |((1,4,1)-(1,1,2))·(3,1,-5)|(3,1,-5)
      =|(0,3,-1),(3,1,-5)|9+1+25
      =835

    2. Q=(1,1,3)
      |((-1,3,2)-(1,1,3))·(2,-4,1)|(2,-4,1)
      =|(-2,2,-1)·(2,-4,1)|4+16+1
      =|-4-8-1|21
      =1321

コード

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

print('20.')


def f(p, q, n):
    return abs((q - p).dot(n)) / n.norm()


class Test(TestCase):
    def test_a(self):
        p = Matrix([1, 1, 2])
        n = Matrix([3, 1, -5])
        q = Matrix([1, 4, 1])
        self.assertEqual(n.dot(q), 2)
        self.assertEqual(f(p, q, n), 8 / sqrt(35))

    def test_b(self):
        p = Matrix([-1, 3, 2])
        n = Matrix([2, -4, 1])
        q = Matrix([1, 1, 3])
        self.assertEqual(n.dot(q), 1)
        self.assertEqual(f(p, q, n), 13 / sqrt(21))


if __name__ == "__main__":
    main()

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

% ./sample20.py -v
20.
test_a (__main__.Test) ... ok
test_b (__main__.Test) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.041s

OK
%

0 コメント:

コメントを投稿