sin(x)/x 的累积积分
Cumulative integration of sin(x)/x
我正在尝试通过获取 sin(x)/x 以下面积的累积和来绘制 sin(x)/x 的积分。
def y(x):
a = np.sin(x) / x
a[np.isnan(a)] = 1 # (Lim y(x)--> 0) = 1
return a
我尝试对左黎曼和使用 for 循环:
a = -56.5
b = 56.5
n = 1000
x = np.linspace(a,b,n)
I = np.zeros(n)
for i in range(n):
I[i] = (y(x[:i+2])).sum()*(b-a)/n
使用np.cumsum()
:
I = np.cumsum(y(x))*(b-a)/n
并使用scipy.integrate
梯形法:
from scipy import integrate
I = integrate.cumulative_trapezoid(y(x), x, initial=0)
提到的所有方法都给出了以下内容:
但根据 Wolfram Alpha 的预期行为应该如下所示:
如您所见,积分取值介于 [-2, 2] 之间(粗略地说),但是通过累加求和,它取值超出了该范围,并且随着使用更大的间隔,它变得更糟。关于为什么会这样的任何想法?我很可能在这里有严重的隧道视野问题,所以我将不胜感激。
Wolfram 是 calculating/graphing、Si(x)
,定义为 sin(x) / x
在 0
和 x
之间的积分。
如果您将 a
更改为 0
并将 b
更改为任何正数或将 b
更改为 0 并将 a
更改为任何负数,您将看到积分位于您提到的 -2
到 2
范围内。
该 Wolfram 图并不意味着与您的累积和图重合。 -2
到 2
波段并不表示在某个时间间隔内通过积分 sin(x) / x
可以获得的可能值的范围。
仅供参考,随着 x
变得任意大,Si(x)
的极限是 pi / 2
。类似地,当 x
接近负无穷大时 Si(x)
的极限是 -pi / 2
.
我正在尝试通过获取 sin(x)/x 以下面积的累积和来绘制 sin(x)/x 的积分。
def y(x):
a = np.sin(x) / x
a[np.isnan(a)] = 1 # (Lim y(x)--> 0) = 1
return a
我尝试对左黎曼和使用 for 循环:
a = -56.5
b = 56.5
n = 1000
x = np.linspace(a,b,n)
I = np.zeros(n)
for i in range(n):
I[i] = (y(x[:i+2])).sum()*(b-a)/n
使用np.cumsum()
:
I = np.cumsum(y(x))*(b-a)/n
并使用scipy.integrate
梯形法:
from scipy import integrate
I = integrate.cumulative_trapezoid(y(x), x, initial=0)
提到的所有方法都给出了以下内容:
但根据 Wolfram Alpha 的预期行为应该如下所示:
如您所见,积分取值介于 [-2, 2] 之间(粗略地说),但是通过累加求和,它取值超出了该范围,并且随着使用更大的间隔,它变得更糟。关于为什么会这样的任何想法?我很可能在这里有严重的隧道视野问题,所以我将不胜感激。
Wolfram 是 calculating/graphing、Si(x)
,定义为 sin(x) / x
在 0
和 x
之间的积分。
如果您将 a
更改为 0
并将 b
更改为任何正数或将 b
更改为 0 并将 a
更改为任何负数,您将看到积分位于您提到的 -2
到 2
范围内。
该 Wolfram 图并不意味着与您的累积和图重合。 -2
到 2
波段并不表示在某个时间间隔内通过积分 sin(x) / x
可以获得的可能值的范围。
仅供参考,随着 x
变得任意大,Si(x)
的极限是 pi / 2
。类似地,当 x
接近负无穷大时 Si(x)
的极限是 -pi / 2
.