如何在Python上绘制数学方程

4

我正在试图使用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()

生成的图应该看起来像下面图片中的图表:


你得到了什么结果? - Natecat
你的结果在哪里? - Rahul K P
2个回答

14

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

返回在一个指定区间内均匀间隔的数字序列。

返回num个在[start, stop]间均匀间隔的样本。

端点可以选择是否包括在内。

参数:

start:标量 序列的起始值。

stop:标量 序列的终止值,除非endpoint被设置为False,否则该终止值会被包括在内。在endpoint为False时,序列由num + 1个等间距样本组成,最后一个样本值为stop。请注意,当endpoint为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)

在这里输入图片描述


0
< p > np.linspace() 的最后一个参数是点的数量。 它不应为1或0.1。 尝试100。 < / p >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接