Почему эта программа не так; рассчитывать интегральный загар (х) в интервале (0, р/2] (в пересчете около ~ 39), где Wolfram Alpha говорит, что ~ 7GSL интегралы, плохие счета
мой код:.
#include <stdio.h>
#include <math.h>
#include <gsl/gsl_integration.h>
double f (double x, void * params) {
double alpha = *(double *) params;
double f = tan(x);
return f;
}
int
main (void)
{
gsl_integration_workspace * w
= gsl_integration_workspace_alloc (1000);
double result, error;
double expected = -4.0;
double alpha = 1.0;
gsl_function F;
F.function = &f;
F.params = α
gsl_set_error_handler_off();
gsl_integration_qag (&F, 0, M_PI/2, 0, 1e-6, 1000, 1,
w, &result, &error);
printf ("result = % .18f\n", result);
printf ("exact result = % .18f\n", expected);
printf ("estimated error = % .18f\n", error);
printf ("actual error = % .18f\n", result - expected);
printf ("intervals = %d\n", w->size);
gsl_integration_workspace_free (w);
return 0;
}
если я удалил gsl_set_error_handler_off() , я была ошибка «плохое поведение подынтегральной»
Благодарю вас. Я использовал виджет, подобный этому http://www.wolframalpha.com/widgets/view.jsp?id=b20fa060328b0cdf51b464ee37efe182 или сайт http://www.integral-calculator.com/#, где результат 7.1355 –