python/matplotlib是否只是在这里绘制复杂方程的真实部分而没有我的提示?

2024-09-25 12:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我在分析一些代码,有一个包含虚部和实部的方程,它在绘制时没有任何关于虚部或实部的提示:

import numpy as np
from matplotlib import pyplot as plt
pi = np.pi

k = 2*pi*1e6
k_e = 2*pi*400e3

w_0 = 10.607e9
w_s = np.linspace(8e9, 12e9)

S11_Ideal = 1 - (2*k_e)/(k + 2j*(w_s - w_0))
plt.plot(w_s,S11_Ideal)
plt.show()
plt.close()

enter image description here 从输出来看,真实的部分似乎正在绘制。是这样吗?我只是想确认一下,它是直接忽略了数字的虚部,还是有其他的事情发生了


Tags: 代码fromimportnumpymatplotlibasnppi
1条回答
网友
1楼 · 发布于 2024-09-25 12:31:09

我认为在运行代码时会出现以下错误:

/usr/local/lib/python3.9/site-packages/numpy/core/_asarray.py:83: ComplexWarning: Casting complex values to real discards the imaginary part
  return array(a, dtype, copy=False, order=order)

此警告来自plot命令。“plot”是指拍摄一个1d的真实阵列并将其显示在屏幕上。当它看到一个复数数组时,它会尽其所能,即丢弃虚部并绘制实部

您可以分别绘制两个components。如果要打印这两个部分,请参阅下面的代码以了解更多详细信息

import numpy as np
from matplotlib import pyplot as plt
pi = np.pi

k = 2*pi*1e6
k_e = 2*pi*400e3

w_0 = 10.607e9
w_s = np.linspace(8e9, 12e9)

S11_Ideal = 1 - (2*k_e)/(k + 2j*(w_s - w_0))
plt.plot(w_s,S11_Ideal.real, 'b', label="real")
plt.plot(w_s,S11_Ideal.imag, 'r', label="imag")
plt.grid()
plt.legend()
plt.show()

输出图像:

enter image description here

我建议你看看this tutorial

相关问题 更多 >