给定以下函数:
d = y-a*sin(b*x-c)
我使用scipy
中的nquad
在a、b和c的特定边界上集成此函数:
def Iper(x,y,alb,aub,blb,bub,clb,cub):
return nquad(lambda a,b,c: y-a*np.sin(b*x-c), [[alb,aub],[blb,bub], [clb,cub]], full_output=True)
使用以下边界:
print(Iper(5.0,3.0,
1.5,2.0,
4.3,4.5,
7.5,8.0))
我得到以下结果:
(0.09107123193614816, 1.2123921401960992e-14, {'neval': 9261})
但是结果应该是(据我所知)零。绘制给定边界的结果d值会产生一个区域,该区域决不会与d的函数相交。下面是d与轴b、c和d的函数。绿色和紫色曲线是a值a = 1.5
和a = 2.0
。八个点代表a、b、c和d的边界所包围的“盒子”区域。。。两个绘制的函数都不与此框区域相交。为什么这里有一个不等于零的积分?你知道吗
我想你误解了三维多元积分的意义。它不是域和曲线交集的三维体积(这是二维多元积分的度量),而是四维超体积。你知道吗
一步一步地看这个积分,首先是关于
a
的积分:然后
b
:然后
c
:我们看到,对于给定的x和y值,积分是非零的
注意:当我评估这个时,我得到:
而不是你的答案。你知道吗
相关问题 更多 >
编程相关推荐