С учетом следующей функции:
d = y-a*sin(b*x-c)
Я интегрирую эту функцию по определенным границам для a, b и c, используя nquad
из scipy
:
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 ... ни одна из двух нарисованных функций не пересекается с этой областью прямоугольника. Как получилось, что у нас есть интеграл, который не равен нулю?