如何在Python上绘制一个相似的方程

Hag*_*zel 4 python numpy matplotlib

我尝试使用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()
Run Code Online (Sandbox Code Playgroud)

generatad图应该如下图所示:

eyl*_*esc 14

numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None)

在指定的间隔内返回均匀间隔的数字.

返回num均匀间隔的样本,在[start,stop]区间内计算.

可以选择排除间隔的终点.

参数:

start:标量序列的起始值.

stop:scalar序列的结束值,除非endpoint设置为False.在这种情况下,序列由除了num + 1个均匀间隔的样本的最后一个组成,因此排除了停止.请注意,当端点为False时,步长会发生变化.

num:int,optional 要生成的样本数.默认值为50.必须为非负数.

....

必须改变

w1 = np.linspace(-10,10,1)
w2 = np.linspace(0.9,1.1,0.1)
Run Code Online (Sandbox Code Playgroud)

w1 = np.linspace(-10,10,100)
w2 = np.linspace(0.9,1.1,100)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述