提供以下功能:
d = y-a*sin(b*x-c)
我使用nquad
中的scipy
在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”的边界所包围的“盒子” /区域。两个绘制函数都没有与此盒子区域相交。怎么会有一个不等于零的积分呢?