Python中Numpy区分和Scipy集成的问题
我有积分和微分的问题。我试着画出x^2的不同点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,
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
。