matplotlibで陰関数のグラフを描画してみた
陰関数とは、というものです。
Pythonのmatplotlibを使って、を、陰関数に直して図示してみました。
まずは の定義から。
の元 に対して、そのを
\begin{align}
\|x\|_p = \sqrt[p]{|x_1|^p + |x_2|^p + \cdots + |x_n|^p}
\end{align}と定義する。
さて、定義から
\begin{align}
\|x\|_1 = |x_1| + |x_2| + \cdots + |x_n|
\end{align}
\begin{align}
\|x\|_2 = \sqrt{|x_1|² + |x_2|² + \cdots + |x_n|²}
\end{align}
ですね。
とし、の場合で図示してみましょう。
この場合、
import matplotlib.pyplot as plt import numpy as np #Lpノルムの p p = 200 x1range = np.arange(-2, 2, 0.025) x2range = np.arange(-2, 2, 0.025) X1, X2 = np.meshgrid(x1range, x2range) plt.axis([-2, 2, -2, 2]) plt.gca().set_aspect('equal', adjustable='box') Z = abs(X1)**p + abs(X2)**p - 1 plt.contour(X1, X2, Z, [0]) plt.show()
で、正方形っぽくなりましたね。
実は、で完全な正方形になります。
\begin{align}
\|x\|_\infty = max \left\{|x_1|, |x_2|, \cdots \right\}
\end{align}
の時、
なら、
なら、
となるため、
\begin{align}
\|x\|_\infty = 1 \longrightarrow |x_i| \leq 1 (i = 1, 2, \cdots, n)
\end{align}
となり、このようなグラフになるわけですね。
ではまた。