2017年12月25日月曜日

学習環境

数学読本〈5〉微分法の応用/積分法/積分法の応用/行列と行列式(松坂 和夫(著)、岩波書店)の第21章(もう1つの数学の基盤 - 行列と行列式)、21.4(行列式と面積・体積)、2次の行列式と面積、問40.を取り組んでみる。


  1. もとめる三角形の面積は、ベクトル

    ( x 2 - x 1 y 2 - y 1 ) , ( x 3 - x 1 y 3 - y 1 )

    で張られる平行四辺形の面積の半分なので、

    S = 1 2 det ( x 2 - x 1 x 3 - x 1 y 2 - y 1 y 3 - y 1 )

    また、

    1 2 det ( 1 1 1 x 1 x 2 x 3 y 1 y 2 y 3 ) = 1 2 det ( 1 0 0 x 1 x 2 - x 1 x 3 - x 1 y 1 y 2 - y 1 y 3 - y 1 ) = 1 2 det ( x 2 - x 1 x 3 - x 1 y 2 - y 1 y 3 - y 1 )

    よって、

    S = 1 2 det ( 1 1 1 x 1 x 2 x 3 y 1 y 2 y 3 )

    (証明終)

コード(Emacs)

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Triangle, Point2D, Matrix

x1, x2, x3, y1, y2, y3 = symbols('x1, x2, x3, y1, y2, y3', real=True)
t = Triangle(Point2D(x1, y1), Point2D(x2, y2), Point2D(x3, y3))
ts = t.area
m = Matrix([[1, 1, 1],
            [x1, x2, x3],
            [y1, y2, y3]])
s = m.det() / 2

for o in [t, ts, m, s, ts == s]:
    pprint(o)
    print()

入出力結果(Terminal, Jupyter(IPython))

$ ./sample40.py
Triangle(Point2D(x1, y1), Point2D(x2, y2), Point2D(x3, y3))

x₁⋅y₂   x₁⋅y₃   x₂⋅y₁   x₂⋅y₃   x₃⋅y₁   x₃⋅y₂
───── - ───── - ───── + ───── + ───── - ─────
  2       2       2       2       2       2  

⎡1   1   1 ⎤
⎢          ⎥
⎢x₁  x₂  x₃⎥
⎢          ⎥
⎣y₁  y₂  y₃⎦

x₁⋅y₂   x₁⋅y₃   x₂⋅y₁   x₂⋅y₃   x₃⋅y₁   x₃⋅y₂
───── - ───── - ───── + ───── + ───── - ─────
  2       2       2       2       2       2  

True

$

0 コメント:

コメントを投稿