私はいつも絵を理解していると感じますが、複雑な値に出会うたびに、その考えはあまり明確ではないと感じます。たとえば、関数numpy.exp(1j * x)
イメージを作成したい場合x
、値を入力すると複雑になることがわかります。数値。複素数値を使用して直接描画すると、警告メッセージが表示されます。コードは次のとおりです。
import numpy as np
import matplotlib.pyplot as plt
vertex = np.pi
x = np.linspace(-vertex, vertex, 100)
f = np.exp(1j * x)
plt.figure()
plt.plot(x, f)
plt.show()
"""
ComplexWarning: Casting complex values to real discards the imaginary part
return array(a, dtype, copy=False, order=order)
"""
複素数を使用しているため、虚数部を自動的に破棄し、実数部のみを保持するというプロンプトメッセージが表示されます。上記のコードでは、この時点でnp.real()
関数を追加することで、この警告メッセージを削除できます。ここから、matplotlibモジュールの描画コマンドでは、入力パラメーターが実数である必要があると結論付けることもできます。
import numpy as np
import matplotlib.pyplot as plt
vertex = np.pi
x = np.linspace(-vertex, vertex, 100)
f = np.exp(1j * x)
plt.figure()
plt.plot(x, np.real(f))
plt.show()
このとき、警告メッセージを削除し、次の画像を正常に出力しました。
オイラーの式がわかっているので、これが実際に余弦関数であることを確認するのは難しくありません
。eix= cos(x)+ isin(x)e ^ {ix} = cos(x)+ isin(x)ei x=c o s (x )+私はね、私のn (X )
ここでは、cos(x)
実部とであるsin(x)
私たちが使用するときに、虚部np.real(f)
を、sin(x)
その部分私たちは実際に削除は、e^{ix}
機能、この時点では、実際になりcos(x)
。結局、私たちが実際に得cos(x)
た画像がの画像でもあることを確認することは難しくありません。
では、どうすればe^{ix}
関数のイメージを取得できますかnp.abs(f)
。答えは使用することです。コードは次のとおりです。
import numpy as np
import matplotlib.pyplot as plt
vertex = np.pi
x = np.linspace(-vertex, vertex, 100)
f = np.exp(1j * x)
plt.figure()
plt.plot(x, np.abs(f))
plt.show()
得られた最終結果は1
、一定の動作をする直線であることがわかります。これは理解しやすいです。e^{ix}
画像は実際には単位円であるため、長さ、つまり値は常に等しくなり1
ます。このことから、描画時に画像入力パラメータ値が複素数の場合、元の関数画像を取得したい場合は、np.abs()
関数を使用する代わりに、np.real()
関数を使用して画像入力パラメータ値を処理する必要があると結論付けることができます。
それでも複数の問題が発生する場合は、このpythonの複数の基本を引き続き表示できます(ハイパーリンク、クリックしてジャンプ)。
コードワードは簡単ではありません。役に立つと思ったら、手を挙げて「いいね」を付けて、もっと多くの人に見てもらいましょう〜