[英]Numpy: Complex Equation Curve is Plotted Incorrectly
我正在嘗試使用 Python 進行一些圖形分析。
我需要 plot 這個等式: 其中 fn 在 x 軸上(對數刻度 0 - 10),Mg 在 y 軸上。 Ln 和 Qe 是虛擬變量,我將為其輸入不同的值,但現在我只使用
Ln = 5
Qe = 0.5
plot 應該看起來像這樣:
請注意,我此時僅嘗試為 Qe 設置一個值,因此我們只會看到一條曲線。
這是我到目前為止的代碼:
import numpy as np
import pylab
import matplotlib.pyplot as plt
import math
Ln = 5
Qe = .5
fn = np.linspace(.1, 10, 1000)
Mg_Num = Ln * fn**2
Mg_Dem = ((Ln + 1) * (fn**2 - 1)) + ((fn**2 - 1) * fn * Qe * Ln)
Mg = abs(Mg_Num/Mg_Dem)
plt.plot(fn, Mg)
plt.xscale('log')
plt.show()
這是它生成的 plot:
它看起來並不像上圖中的 Ln = 5、Qe = 0.5(橙色曲線)的曲線。
我在想這可能與分母中 Mg 的虛部有關,但我不確定如何將其納入如此復雜的方程(沒有雙關語)。
關於我應該做什么的任何建議?
您可以使用j
編寫復雜的函數。 例如x = 3 + 5j
。 除了虛部之外,您還錯誤地放置了括號。
import numpy as np
import matplotlib.pyplot as plt
Ln = 5
Qe = .5
fn = np.linspace(.1, 10, 1000)
Mg_Num = Ln * fn**2
Mg_Dem = ((Ln + 1) * fn**2 - 1 ) + 1j*((fn**2 - 1) * fn * Qe * Ln)
# ^ ^ ^^
Mg = np.abs(Mg_Num / Mg_Dem)
plt.plot(fn, Mg)
plt.xscale('log')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.