我尝试使用matplotlib在python上绘制图表,但我无法获得预期的结果。
公式1:1/2 * (w1 + w2) + 1/2 * np.sqrt(4*(g)**2 + (w2-w1)**2)
公式2:1/2 * (w1 + w2) - 1/2 * np.sqrt(4*(g)**2 + (w2-w1)**2)
我的python代码:
import matplotlib.pyplot as plt
import numpy as np
def W_p(w1,w2,g):
return 1/2 * (w1 + w2) + 1/2 * np.sqrt(4*(g)**2 + (w2-w1)**2)
def W_m(w1,w2,g):
return 1/2 * (w1 + w2) - 1/2 * np.sqrt(4*(g)**2 + (w2-w1)**2)
w1 = np.linspace(-10,10,1)
w2 = np.linspace(0.9,1.10,0.1)
g = 1
plt.plot(W_p(w1,w2,g), 'r', W_m(w1,w2,g), 'b')
plt.show()
generatad图应该如下图所示:
答案 0 :(得分:13)
numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False, D型=无)强>
在指定的时间间隔内返回均匀间隔的数字。
返回按间隔计算的num均匀间隔样本 [开始,停止]。
可以选择排除间隔的终点。
参数:
start:标量序列的起始值。
停止: 标量序列的结束值,除非端点设置为False。 在这种情况下,序列包括除num + 1的最后一个之外的所有序列 均匀间隔的样本,以便排除停止。注意这一步 端点为False时大小更改。
num:int,可选要生成的样本数。默认值为50.必须为非负数。
<强> .... 强>
必须改变
w1 = np.linspace(-10,10,1)
w2 = np.linspace(0.9,1.1,0.1)
到
w1 = np.linspace(-10,10,100)
w2 = np.linspace(0.9,1.1,100)
答案 1 :(得分:0)
np.linspace()
的最后一个参数是点数。它不应该是1或0.1。试试100。