728x90
1. 정의
1) Midpoint Rule (중점 규칙):
주어진 구간을 여러 개의 작은 구간으로 나누고,
각 작은 구간의 중점에서 함수 값을 계산하여 이를 이용하여 적분 값을 근사화하는 수치적 적분 방법
공식
2) Trapezoidal Rule (사다리꼴 규칙):
구간을 여러 개의 작은 사다리꼴로 나누고,
각 사다리꼴의 면적을 합하여 적분 값을 근사화하는 수치적 적분 방법
공식
3) Simpson's Rule (심슨의 규칙):
주어진 구간을 여러 개의 작은 구간으로 나누고,
각 작은 구간에 대해 2차 다항식을 사용하여 적분 값을 근사화하는 수치적 적분 방법
공식
2. 차이점
1) 기본 형태:
- Midpoint Rule: 각 작은 구간에서 중점의 함수 값으로 근사화.
- Trapezoidal Rule: 각 작은 구간에서 사다리꼴의 면적으로 근사화.
- Simpson's Rule: 각 작은 구간에서 2차 다항식으로 근사화.
2) 오차 정확도:
- Midpoint Rule과 Trapezoidal Rule은 주로 선형 함수에 사용되며 근사치의 정확도가 떨어질 수 있음.
- Simpson's Rule은 2차 다항식의 근사를 사용하므로 일반적으로 더 높은 정확도를 제공함.
3) 적용 가능성:
- Midpoint Rule과 Trapezoidal Rule은 일반적인 수치적 적분에 자주 사용.
- Simpson's Rule은 더 정확한 근사가 필요한 경우에 사용되며, 특히 함수가 2차 다항식에 가까운 경우에 효과적.
3. 그래프
그림을 통해 보다 이해를 쉽게 할 수 있습니다.
위의 그래프의 matlab 코드는 아래와 같습니다.
clc
close all
clear
% 함수 정의
fun = @(x) sin(x); % 여기에 적절한 함수를 입력하세요.
% 구간 및 분할 수 정의
a = 0; % 시작점
b = pi; % 끝점
n = 10; % 분할 수
% x 값 및 함수 값 계산
x_values = linspace(a, b, 1000);
y_values = fun(x_values);
% Midpoint Rule 그래프 그리기
figure;
subplot(3, 1, 1);
plot(x_values, y_values, 'k', 'LineWidth', 2);
hold on;
midpoint_x = zeros(1, n);
midpoint_y = zeros(1, n);
for i = 1:n
x_mid = (a + (i - 0.5) * (b - a) / n);
y_mid = fun(x_mid);
midpoint_x(i) = x_mid;
midpoint_y(i) = y_mid;
rectangle('Position', [x_mid - (b - a) / (2 * n), 0, (b - a) / n, y_mid], 'EdgeColor', 'b', 'FaceColor', 'none');
rectangle('Position', [x_mid - (b - a) / (2 * n), 0, (b - a) / n, y_mid], 'EdgeColor', 'b', 'FaceColor', 'none');
end
title('Midpoint Rule');
hold off;
% Trapezoidal Rule 그래프 그리기
subplot(3, 1, 2);
plot(x_values, y_values, 'k', 'LineWidth', 2);
hold on;
trapezoidal_x = zeros(1, n+1);
trapezoidal_y = zeros(1, n+1);
for i = 1:n+1
x_trap = a + (i - 1) * (b - a) / n;
y_trap = fun(x_trap);
trapezoidal_x(i) = x_trap;
trapezoidal_y(i) = y_trap;
if i > 1
plot([trapezoidal_x(i-1), trapezoidal_x(i)], [trapezoidal_y(i-1), trapezoidal_y(i)], 'b', 'LineWidth', 2);
plot([x_trap, x_trap], [0, y_trap], 'b', 'LineWidth', 2);
end
end
title('Trapezoidal Rule');
hold off;
% Simpson's Rule 그래프 그리기
subplot(3, 1, 3);
plot(x_values, y_values, 'k', 'LineWidth', 2);
hold on;
simpson_x = zeros(1, 2*n+1);
simpson_y = zeros(1, 2*n+1);
for i = 1:2:2*n+1
x_simp = a + (i - 1) * (b - a) / (2 * n);
y_simp = fun(x_simp);
simpson_x(i) = x_simp;
simpson_y(i) = y_simp;
if i < 2*n+1
x_simp_mid = a + i * (b - a) / (2 * n);
y_simp_mid = fun(x_simp_mid);
simpson_x(i+1) = x_simp_mid;
simpson_y(i+1) = y_simp_mid;
simpson_x(i+2) = x_simp_mid;
simpson_y(i+2) = 0;
plot([x_simp, x_simp_mid, x_simp_mid], [y_simp, y_simp_mid, 0], 'b', 'LineWidth', 2);
end
end
title("Simpson's Rule");
hold off;
728x90
반응형
'수학 > 미적분학' 카테고리의 다른 글
The Arc Length Function (호 길이 공식) (1) | 2023.12.27 |
---|---|
Integration by Parts (부분적분법 (로다삼지)) (1) | 2023.12.26 |
Newton-Raphson method (뉴턴-랩슨 방법) (1) | 2023.12.26 |
L’Hospital’s Rule (로피탈의 정리) (0) | 2023.12.23 |
The Mean Value Theorem (평균값 정리) (1) | 2023.12.22 |