#include <stdio.h>
#include <math.h>
double func(double x)
{
return sin(x); //임의의 함수를 정의
}
int main()
{
double a, b; // a는 적분구간의 시작값, b는 적분구간의 끝값
scanf_s(" %lf %lf", &a, &b);
double section = b - a; // 적분할 구간의 길이
double intervals = 100; // 적분할 구간을 100개의 작은 구간으로 분할
double total = 0;
double integral;
int i;
for (i = 0; i <= intervals; i++)
{
if (i == 0 || i == 100)
{
total += func(a + section * i / intervals);
}
else
{
if (i % 2 == 1)
{
total += 4 * func(a + section * i / intervals);
}
else
{
total += 2 * func(a + section * i / intervals);
}
}
}
integral = total * section / intervals / 3;
printf("적분값 : %.6lf\n", integral);
return 0;
}
오차도 거의 없을 정도로 정교하다.
올린 이유는요?
오차가 거의없다는말이 왠지 적분을 이해못한사람의 말처럼 들림
100등분만해도 오차가 적음? - dc App
오차가 거의 없다는 거는 적분의 정확한 값을 구하는게 아니라 근사값을 구하는 알고리즘이기 때문임(Simpson's rule)
소수점 6자리까지 정확하게 나온다
아니 그 이상
틀렸다는건 아니구 오차는 분할크기에 달린건데 표현을 약간 애매하게 하는거같아서 ㅋㅋ 그리고 소수6째까지 정확한지는 함수func에따라 틀릴수도 있는말임
그건 그렇네