사다리꼴 법칙(수치 적분)
사다리꼴 법이란
산법
미세 구간 $[x_0,x_1]$의 구간 폭 $x_1-x_0=h$로 하고, 각 $y$좌표를 $f(x_0)=y_0,f(x_1)=y_1$로 한다.
구간 내의 함수값을 1차 방정식으로 근사하면, 이 구간 내의 적분값은
$$\int_{x_0}^{x_1}f(x)dx=\frac{h}{2}(y_0+y_1) $$
이므로, 구간 $[a,b]$ 내의 적분은 각 미소 구간 내에서의 적분값의 합으로 표현할 수 있으므로,
$$\int_a^bf(x)dx=\frac{h}{2}(y_0+y_1)+\frac{h}{2}(y_1+y_2)+\cdots+\frac{h}{2}( y_{n-1}+y_n) $$$$ =\frac{h}{2}(y_0+2y_1+2y_2+\cdots+2y_{n-1}+y_n)$$
샘플 코드
$f(x)=\sqrt{1-x^2}$에서 구간 $[0,1]$의 정적분의 값을 구하는 프로그램.
분할수는 4로 한다.
해석 솔루션은 $\pi/4$입니다(단위 원의 $1/4$).
trapezoidal_rule.c#include<stdio.h>
#include<math.h>
double f (double x) {
return sqrt(1-x*x);
}
/* 台形則(区間[a,b]をn分割) */
double trapezoidal_rule (double a, double b, int n) {
double h;
int i;
double value=0;
h = (b - a) / n; // 区間幅の計算
for (i = 0; i <= n; i++) {
if (i == 0 || i == n) value += f(a + i*h);
else value += 2 * f(a + i*h);
}
value = value*h/2;
return value;
}
int main (void) {
printf("Analytical solution: %f\n", M_PI/4);
printf("Numerical solution : %f\n", trapezoidal_rule(0, 1, 4));
return 0;
}
실행 결과
Analytical solution: 0.785398
Numerical solution : 0.748927
특징
$f(x)=\sqrt{1-x^2}$에서 구간 $[0,1]$의 정적분의 값을 구하는 프로그램.
분할수는 4로 한다.
해석 솔루션은 $\pi/4$입니다(단위 원의 $1/4$).
trapezoidal_rule.c
#include<stdio.h>
#include<math.h>
double f (double x) {
return sqrt(1-x*x);
}
/* 台形則(区間[a,b]をn分割) */
double trapezoidal_rule (double a, double b, int n) {
double h;
int i;
double value=0;
h = (b - a) / n; // 区間幅の計算
for (i = 0; i <= n; i++) {
if (i == 0 || i == n) value += f(a + i*h);
else value += 2 * f(a + i*h);
}
value = value*h/2;
return value;
}
int main (void) {
printf("Analytical solution: %f\n", M_PI/4);
printf("Numerical solution : %f\n", trapezoidal_rule(0, 1, 4));
return 0;
}
실행 결과
Analytical solution: 0.785398
Numerical solution : 0.748927
특징
$$ E=\frac{h^2(b-a)}{12}f^{\prime\prime}(\xi)\\,\\(a<\xi
Reference
이 문제에 관하여(사다리꼴 법칙(수치 적분)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/omu58n/items/55699bd127ed74d6b73f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)