2020年8月3日月曜日

学習環境

新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第12章(放物線・だ円・双曲線 - 2次関数)、12.3(2次曲線の平行移動と回転)、2次曲線の回転の問26の解答を求めてみる。



    1. x cos 4 5 + y sin 4 5 = x + y 2
      - x sin 4 5 + y cos 4 5 = - x + y 2
      3 · ( x + y ) 2 2 - 2 · x + y 2 · - x + y 2 + 3 · ( - x + y ) 2 2 = 2
      3 x 2 + 3 y 2 + x 2 - y 2 = 2
      4 x 2 + 2 y 2 = 2
      x 2 1 2 + y 2 = 1

      だ円を表す曲線。


    2. x cos 3 0 + y sin 3 0 = 3 x + y 2
      - x sin 3 0 + y sin 3 0 = - x + 3 y 2
      2 · ( - x + 3 y 2 ) 2 + 2 3 · 3 x + y 2 · - x + 3 y 2 = - 1
      x 2 - 2 3 x y + 3 y 2 2 + 3 2 ( - 3 x 2 + 3 y 2 + 2 x y ) = - 1
      1 2 ( x 2 - 2 3 x y + 3 y 2 - 3 x 2 + 3 y 2 + 2 3 x y ) = - 1
      1 2 ( - 2 x 2 + 6 y 2 ) = - 1
      x 2 - 3 y 2 = 1

      双曲線。


    3. ( x + y 2 + - x + y 2 ) 2 = 2 ( x + y 2 - - x + y 2 )
      2 y 2 = 2 x
      y 2 = x

      放物線。


    4. x cos ( - 4 5 ) + y sin ( - 4 5 ) = x - y 2
      - x sin ( - 4 5 ) + y cos ( - 4 5 ) = x + y 2
      ( x - y ) 2 2 - x 2 - y 2 2 + ( x + y ) 2 2 = 3
      x 2 + y 2 - x 2 - y 2 2 = 3
      x 2 2 + 3 y 2 2 = 3

      だ円。

      x cos 6 0 + y sin 6 0 = x + 3 y 2
      - x sin 6 0 + y cos 6 0 = - 3 x + y 2
      ( 3 x + 3 y 2 + - 3 x + y 2 ) 2 = 4 ( x + 3 y 2 + 3 x - 3 y 2 )
      4 y 2 = 8 x
      y 2 = 2 x

      放物線。


    5. ( x - y 2 ) 2 - 6 · x - y 2 · x + y 2 + ( x + y 2 ) 2 = - 4
      x 2 + y 2 - 3 x 2 + 3 y 2 = - 4
      2 x 2 - 4 y 2 = 4
      x 2 2 - y 2 = 1

      双曲線。

コード

#!/usr/bin/env python3
from sympy import solve, sqrt, plot
from sympy.abc import x, y

print('26.')

eqs1 = [
    3 * x ** 2 - 2 * x * y + 3 * y ** 2 - 2,
    2 * y ** 2 + 2 * sqrt(3) * x * y + 1,
    (x + y) ** 2 - sqrt(2) * (x - y),
    x ** 2 - x * y + y ** 2 - 3,
    (sqrt(3) * x + y) ** 2 - 4 * (x - sqrt(3) * y),
    x ** 2 - 6 * x * y + y ** 2 + 4
]
eqs2 = [
    2 * x ** 2 + y ** 2 - 1,
    x ** 2 - 3 * y ** 2 - 1,
    y ** 2 - x,
    x ** 2 / 2 + 3 * y ** 2 / 2 - 3,
    y ** 2 - 2 * x,
    x ** 2 / 2 - y ** 2 - 1
]
colors = ['red', 'green', 'blue', 'brown', 'orange',
          'purple', 'pink', 'gray', 'skyblue', 'yellow']

for i, (eq1, eq2) in enumerate(zip(eqs1, eqs2), 1):
    ys1 = solve(eq1, y)
    ys2 = solve(eq2, y)
    p = plot(*ys1,
             *ys2,
             (x, -5, 5),
             ylim=(-5, 5),
             legend=True,
             show=False)

    for o, color in zip(p, colors):
        o.line_color = color
    p.save(f'sample26_{i}.png')
p.show()

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

% ./sample26.py
26.
%

0 コメント:

コメントを投稿