python - Numpy:复杂方程曲线绘制不正确

标签 python python-3.x numpy matplotlib graphing

我正在尝试使用Python进行一些图形分析。

我需要绘制这个方程: 其中 fn 位于 x 轴(对数刻度 0 - 10),Mg 位于 y 轴。 Ln 和 Qe 是虚拟变量,我将为其输入不同的值,但现在我只使用

Ln = 5
Qe = 0.5

Complex Equation

情节应该是这样的:

请注意,我此时只想绘制 Qe 的一个值,因此我们只会看到一条曲线。

Correct plot

这是我到目前为止的代码:

    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()

这是它生成的图:

Incorrect plot produced by 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()

corrected graph - same as original

关于python - Numpy:复杂方程曲线绘制不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73544662/

相关文章:

python - 根据不同二维数组的条件更新 numpy 二维数组

python - 对角阵列上的 numpy 线性代数,没有显式重复

python:验证条件和引发异常的最佳方法

python - 关于特定数组及其最终形状的 Numpy 奇特索引问题?

python - 如何删除列表中的最后一项?

python-3.x - Numpy 安装损坏的工具链 : cannot link a simple C program

python - 使用 Python 类型注释声明通用 Mapping 子类?

python - 用 BeautifulSoup 拆分一个元素

python - 如何递归提取zip文件?

python-3.x - 如果文件夹为空则抛出错误