多変数関数の3次元グラフ化
多変数関数を使用した例を提供します。
以下のコードは、多変数関数 $ (z = f(x, y)) $の計算と3Dサーフェスプロットを示しています。
この例では、多変数関数$ (z) $を計算し、3Dサーフェスプロットで可視化します。
使用する関数は$ (z = \sin(\sqrt{x^2 + y^2}) / (\sqrt{x^2 + y^2} + 1)) $です。
1 | import numpy as np |
このコードは、$ (z = \frac{\sin(\sqrt{x^2 + y^2})}{\sqrt{x^2 + y^2} + 1}) $という複雑な多変数関数を計算し、3Dサーフェスプロットで可視化します。
このプロットは、複雑な関数の3D表現を示しています。
必要に応じて、異なる関数やプロットスタイルを試すことができます。
ソースコード解説
このPythonソースコードは、3次元の複雑なグラフを作成し、matplotlibとNumPyを使用してそれを表示するものです。
以下はソースコードの詳細な説明です。
1. import numpy as np
:
NumPyライブラリをインポートし、np
という別名で使用できるようにします。
NumPyは数値計算のためのPythonライブラリで、多次元配列や数学関数のサポートが含まれています。
2. import matplotlib.pyplot as plt
:
matplotlibライブラリをインポートし、plt
という別名で使用できるようにします。
matplotlibはグラフを描画するためのPythonライブラリで、pyplot
モジュールを使います。
3. from mpl_toolkits.mplot3d import Axes3D
:
mpl_toolkits.mplot3d
からAxes3D
をインポートします。
これは、3次元プロットを作成するために必要なモジュールです。
4. import japanize_matplotlib
:
japanize_matplotlib
をインポートし、日本語のテキストをmatplotlibのプロット内で正しく表示するためのライブラリです。
5. x = np.linspace(-5, 5, 100)
:
x
という変数に、-5から5までの範囲を100の等間隔に区切った値が配列として格納されます。
この範囲と間隔は、x軸の値を指定します。
6. y = np.linspace(-5, 5, 100)
:
y
という変数に、xと同様に-5から5までの範囲を100の等間隔に区切った値が格納されます。
この範囲と間隔は、y軸の値を指定します。
7. x, y = np.meshgrid(x, y)
:
x
とy
の値を使用して、2つの2D配列 x
と y
を生成します。
これらは後で3Dプロットを作成するために使用されます。
8. z = np.sin(np.sqrt(x**2 + y**2)) / (np.sqrt(x**2 + y**2) + 1)
:
多変数関数$ (z = f(x, y)) $の計算を行います。
ここでは、$ (z) は (x) $と$ (y) $の関数として、$(z = \frac{\sin(\sqrt{x^2 + y^2})}{\sqrt{x^2 + y^2} + 1}) $として計算されます。
9. fig = plt.figure(figsize=(10, 8))
:
3Dプロットを含む新しい図を作成します。figsize
パラメータは、図のサイズを指定します。
10. ax = fig.add_subplot(111, projection='3d')
:
図に3Dサブプロットを追加します。projection='3d'
を指定して、3Dプロットを作成できるようにします。
11. surf = ax.plot_surface(x, y, z, cmap='viridis', linewidth=0, antialiased=False)
:
3Dサーフェスプロットを作成します。x
、y
、および z
はプロットするデータです。cmap='viridis'
はカラーマップを指定し、linewidth=0
はプロットの線幅をゼロに設定し、antialiased=False
はアンチエイリアスを無効にします。
12. fig.colorbar(surf, ax=ax, pad=0.1)
:
カラーバーをプロットに追加します。pad=0.1
はカラーバーの位置を調整するためのパディングです。
13. ax.set_xlabel('X軸')
, ax.set_ylabel('Y軸')
, ax.set_zlabel('Z軸')
:
X、Y、およびZ軸のラベルを設定します。
14. plt.show()
:
グラフを表示します。