Python中Numpy区分和Scipy集成的问题

Python中Numpy区分和Scipy集成的问题,python,numpy,scipy,Python,Numpy,Scipy,我有积分和微分的问题。我试着画出x^2的不同点 plt.plot(0.5*(x[:-1]+x[1:]), np.diff(x**2, 1)/np.diff(x, 1)) 它成功了。在我想求x^2的积分乘以x^2的微分之后: x = np.linspace(0, 1, 1000) result = spi.simps(x**2 * np.diff(x**2/np.diff(x,1)), x) print(result) 但我得到了一个ValueError:操作数不能与形状(1000,

我有积分和微分的问题。我试着画出x^2的不同点

plt.plot(0.5*(x[:-1]+x[1:]), np.diff(x**2, 1)/np.diff(x, 1))
它成功了。在我想求x^2的积分乘以x^2的微分之后:

x = np.linspace(0, 1, 1000)     
result = spi.simps(x**2 * np.diff(x**2/np.diff(x,1)), x)
print(result)
但我得到了一个ValueError:操作数不能与形状(1000,)(999,)一起广播

我也尝试过用
x=np.linspace(0,11000)
代替
x=0.5*(x[:-1]+x[1:])
,但没有机会


任何帮助都将不胜感激。

x
的样本大小为1000个,由于边界差异,diff版本只有999个样本

当您执行
0.5*(x[:-1]+x[1:])
时,您实际上已经意识到了这一事实。当您执行
x**2*np.diff(x**2/np.diff(x,1))
时,同样适用。也许你想做的是:

x_half = 0.5*(x[:-1]+x[1:])
result = spi.simps(x_half **2 * np.diff(x**2), x_half )

x
的大小为1000个样本,由于边界差异,差异版本只有999个样本

当您执行
0.5*(x[:-1]+x[1:])
时,您实际上已经意识到了这一事实。当您执行
x**2*np.diff(x**2/np.diff(x,1))
时,同样适用。也许你想做的是:

x_half = 0.5*(x[:-1]+x[1:])
result = spi.simps(x_half **2 * np.diff(x**2), x_half )

我试过了,它给了我同样的错误:ValueError:操作数不能与形状(1000,)(999,)一起广播哦,是的,最后一个参数也应该是
xhalf
。我试过了,它给了我同样的错误:ValueError:操作数不能与形状(1000,)(999,)一起广播哦,是的,最后一个参数可能也应该是
xhalf