簡體   English   中英

Numpy:復方程曲線繪制不正確

[英]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:

numpy 生成的繪圖不正確

它看起來並不像上圖中的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM