## 2020年3月28日土曜日

### 数学 - Python - 解析学 - 多変数の関数 - 多変数の関数 - グラフと等位線 - 等位線が直線のグラフ、平方根、絶対値

1. $\begin{array}{l}{x}^{2}-{y}^{2}\ne 0\\ {y}^{2}\ne {x}^{2}\\ y\ne ±x\\ \frac{{x}^{2}+{y}^{2}}{{x}^{2}-{y}^{2}}=c\\ {x}^{2}+{y}^{2}=c{x}^{2}-c{y}^{2}\\ \left(1+c\right){y}^{2}=\left(c-1\right){x}^{2}\\ c=1\\ y=0\\ c=-1\\ x=0\\ \left|c\right|\ne 1\\ {y}^{2}=\frac{c-1}{c+1}{x}^{2}\\ y=±\sqrt{\frac{c-1}{c+1}}\left|x\right|\\ \frac{c-1}{c+1}\ge 0\\ c>1\end{array}$

よって、 等位線は直線である。

コード

#!/usr/bin/env python3
from sympy import symbols, plot, solve, Rational
from sympy.plotting import plot3d

print('15.')

x, y, c = symbols('x, y, c', real=True)
eq = (x ** 2 + y ** 2) / (x ** 2 - y ** 2)
ys = solve(eq - c, y)
cs = [-10, 5, -2, -1, 1, 1.1, 2, 5, 10]
p = plot(*[ys[0].subs({c: c0}) for c0 in cs],
(x, -10, 10),
ylim=(-10, 10),
legend=True, show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
'purple', 'pink', 'gray', 'skyblue', 'yellow']

for o, color in zip(p, colors):
o.line_color = color

p.save('sample15.png')
for i, c0 in enumerate(cs):
p = plot(*[f.subs({c: c0})
for f in ys],
(x, -10, 10),
ylim=(-10, 10),
legend=True,
show=False)
for o, color in zip(p, colors):
o.line_color = color
p.save(f'sample15_{i}.png')
p.show()


% ./sample15.py
15.
%