2020年3月23日月曜日

学習環境

解析入門(上) (松坂和夫 数学入門シリーズ 4) (松坂 和夫(著)、岩波書店)の第10章(n次元空間)、10.1(ユークリッド空間)、問題5の解答を求めてみる。


  1. 問題の仮定より、

    x - a = 2 x - b x - a 2 = 4 x - b 2 x - a · x - a = 4 x - b · x - b x 2 - 2 a · x + a 2 = 4 x 2 - 8 b · x + 4 b 2 3 x 2 - 2 4 b - a · x + 4 b 2 - a 2 = 0 3 x 2 - 2 · 3 c · x + 4 b 2 - a 2 + 3 r 2 = 3 r 2 3 x 2 - 2 · 3 c · x + 4 b 2 - a 2 + 3 · 4 9 b 2 - 2 a · b + a 2 = 3 r 2 3 x 2 - 2 · 3 c · x + 1 9 48 b 2 - 24 a · b + 3 a 2 = 3 r 2 x 2 - 2 c · x + 1 9 16 b 2 - 8 a · b + a 2 = r 2 x 2 - 2 c · x + 1 9 4 b - a · 4 b - a = r 2 x 2 - 2 c · x + 4 b - a 3 2 = r 2 x 2 - 2 c · x + c 2 = r 2 x - c 2 = r 2 x - c = r

    よって一致する。

    (証明終)

コード

#!/usr/bin/env python3
import random
from sympy import symbols, Matrix, solve, pprint
from sympy.plotting import plot3d

print('5.')

x, y, z = symbols('x, y, z', real=True)
X = Matrix([x, y, z])

for i in range(3):
    print(f'sample5_{i}.png')
    a = Matrix([random.randrange(-5, 6) for _ in range(3)])
    b = Matrix([random.randrange(-5, 6) for _ in range(3)])
    c = (4 * b - a) / 3
    r = 2 * (b - a).norm() / 3
    for o in [a, b]:
        pprint(o)
        print()
    zs = solve((X - c).norm() - r, z)

    p = plot3d(*zs, show=False)

    p.xlabel = x
    p.ylabel = y
    p.save(f'sample5_{i}.png')

p.show()

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

% ./sample5.py
5.
sample5_0.png
⎡3⎤
⎢ ⎥
⎢0⎥
⎢ ⎥
⎣2⎦

⎡4 ⎤
⎢  ⎥
⎢-4⎥
⎢  ⎥
⎣4 ⎦

sample5_1.png
⎡5 ⎤
⎢  ⎥
⎢-1⎥
⎢  ⎥
⎣0 ⎦

⎡-3⎤
⎢  ⎥
⎢2 ⎥
⎢  ⎥
⎣-1⎦

sample5_2.png
⎡-4⎤
⎢  ⎥
⎢-3⎥
⎢  ⎥
⎣5 ⎦

⎡2 ⎤
⎢  ⎥
⎢3 ⎥
⎢  ⎥
⎣-3⎦

%

0 コメント:

コメントを投稿