学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
新装版 数学読本3 (松坂 和夫(著)、岩波書店)の第12章(放物線・だ円・双曲線 - 2次関数)、12.2(2次曲線と直線)、放物線と直線の問13の解答を求めてみる。
準線上の点 P を
とおく。
P を通り傾き m の直線の方程式は、
この直線が放物線と接するのは、
が重解をもつときである。
そのとき、
解と係数の関係により、この2つの解の積は-1である。
よって、 2本の接線は直交する。
(証明終)
コード
#!/usr/bin/env python3
from sympy import plot, sqrt, solve, symbols
print('13.')
p = -1
x, y = symbols(' x, y', real=True)
eq = y ** 2 - 4 * p * x
ys = solve(eq, y)
m = symbols('m', nonzero=True, real=True)
p0 = plot(*ys,
(x, -15, 5),
ylim=(-10, 10),
legend=False,
show=False)
for b in range(-2, 3):
l = m * (x + p) + b
ms = solve((m ** 2 * p + m * b - 2 * p) ** 2 -
m ** 2 * (m ** 2 * p ** 2 + 2 * m * b * p + b ** 2), m)
for m0 in ms:
p0.append(plot(l.subs({m: m0}),
(x, -15, 5),
ylim=(-10, 10),
legend=False,
show=False)[0])
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']
for o, color in zip(p0, colors):
o.line_color = color
print(o, color)
p0.save('sample13.png')
p0.show()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample13.py
13.
cartesian line: -2*sqrt(-x) for x over (-15.0, 5.0) red
cartesian line: 2*sqrt(-x) for x over (-15.0, 5.0) green
cartesian line: (-1 + sqrt(2))*(x - 1) - 2 for x over (-15.0, 5.0) blue
cartesian line: (-sqrt(2) - 1)*(x - 1) - 2 for x over (-15.0, 5.0) brown
cartesian line: (-1/2 + sqrt(5)/2)*(x - 1) - 1 for x over (-15.0, 5.0) orange
cartesian line: (-sqrt(5)/2 - 1/2)*(x - 1) - 1 for x over (-15.0, 5.0) purple
cartesian line: 1 - x for x over (-15.0, 5.0) pink
cartesian line: x - 1 for x over (-15.0, 5.0) gray
cartesian line: (1/2 - sqrt(5)/2)*(x - 1) + 1 for x over (-15.0, 5.0) skyblue
cartesian line: (1/2 + sqrt(5)/2)*(x - 1) + 1 for x over (-15.0, 5.0) yellow
%
0 コメント:
コメントを投稿