Я программирую на C++ Мне нужно интегрировать функцию двух переменных, например f (x, y), только по одному из два:численное интегрирование двух переменных функций по одной переменной только в C++ (с использованием библиотек числовых рецептов)
I (у) = Int F (х, у) дх
Я использую библиотеки образуют численные рецепты. однако, если я использую функции quadrature.h, такие как qsimp, qtrap, они одномерны; Если вместо этого я использую quad3d.h, это содержит только трехмерную версию.
здесь (упрощенная версия) мой код:
Doub NFW_rho(Doub variable,double angle) {
return 1/(pow(variable,2) + ... + cos(angle)) ;
}
int main()
{
...
for (double angle = pi/36; angle < fi_max; angle += incr) {
double min = D * cos(angle) - sqrt(pow(rt,2.) - pow(D * sin(angle),2.)) ;
double max = D * cos(angle) + sqrt(pow(rt,2.) - pow(D * sin(angle),2.)) ;
...
Doub NFW_int = qsimp(NFW_rho,min,max) ;
double NFW = NFW_const * NFW_int ;
}
При компиляции, я получаю сообщение об ошибке относительно вызова qsimp, указав, что вызов qsimp неправильно (ясно, что NFW_rho является 2D-функция).
Есть ли у вас какой-нибудь умный и простой выход? Большое спасибо