1

所以我希望在 python 中创建以下函数的 log(y) vs log(x)。我不确定应该如何组合范围 (w) 以获得良好的图表。现在我把它留空了。

import numpy as np
import matplotlib.pyplot as plt

w =  
y = 1/(1+2.56e-8*(w)^2)

plt.plot(log(w),log(y));

好的,所以现在我必须再做一个情节,但它有点复杂。

w = np.arange(1e3, 1e7, 1e3)

z = 1/ (((5.89824e-15 (w ** 4))+(1-2.56e-8 (w ** 2))) ** 0.5)
b = plt.loglog(w, z);

这给了我一个错误:

    z = 1/ (((5.89824e-15 (w ** 4))+(1-2.56e-8 (w ** 2))) ** 0.5)
TypeError: 'float' object is not callable

没关系,我修好了。

4

1 回答 1

2

您可以使用该numpy.arange函数获取范围的 numpy 版本。此函数的合理范围是:

w = np.arange(1e3, 1e7, 1e3)

(即,以 1000 为步长从 1000 变为 10000000)。但是,请注意,为了让 Python 知道您正在尝试使用求幂而不是按位异或运算符,您应该将您的行更改为:

y = 1/(1+2.56e-8*(w ** 2))

然后,如果你制作一个对数图,你最终会得到:

plt.loglog(w, y)

在此处输入图像描述

于 2012-10-07T14:55:44.290 回答