Main Content

trapz

사다리꼴 수치 적분

설명

예제

Q = trapz(Y)사다리꼴법을 단위 간격(간격: 1)과 함께 사용하여 Y의 적분 근삿값을 계산합니다. Y의 크기에 따라 함께 적분할 차원이 결정됩니다.

  • Y가 벡터인 경우 trapz(Y)Y의 적분 근삿값입니다

  • Y가 행렬인 경우 trapz(Y)는 각 열에 대해 적분을 계산하고 적분 값으로 구성된 행 벡터를 반환합니다.

  • Y가 다차원 배열인 경우 trapz(Y)는 크기가 1이 아닌 첫 번째 차원에 대해 적분을 계산합니다. 이 차원의 크기는 1이 되며 다른 차원의 크기는 변경되지 않은 상태로 유지됩니다.

예제

Q = trapz(X,Y)X로 지정된 좌표 또는 스칼라 간격을 기준으로 Y를 적분합니다.

  • X가 좌표의 벡터인 경우 length(X)는 크기가 1이 아닌 Y의 첫 번째 차원의 크기와 동일해야 합니다.

  • X가 스칼라 간격인 경우 trapz(X,Y)X*trapz(Y)와 동일합니다.

예제

Q = trapz(___,dim)은 위에 열거된 구문에서 차원 dim을 따라 적분합니다. Y는 반드시 지정해야 하며, X를 선택적으로 지정할 수 있습니다. X를 지정할 경우, 이는 스칼라이거나 길이가 size(Y,dim)과 같은 벡터일 수 있습니다. 예를 들어, Y가 행렬인 경우 trapz(X,Y,2)Y의 각 행을 적분합니다.

예제

모두 축소

데이터 점 사이의 간격이 1인 벡터의 적분을 계산합니다.

데이터로 구성된 숫자형 벡터를 생성합니다.

Y = [1 4 9 16 25];

Y에는 정의역 [1, 5]에 대한 f(x)=x2의 함수 값이 들어 있습니다.

trapz를 사용하여 단위 간격(간격: 1)으로 데이터를 적분합니다.

Q = trapz(Y)
Q = 42

이 적분 근삿값은 값 42를 생성합니다. 이 경우 정확한 답은 약간 작은 4113입니다. f(x)가 위로 오목하기 때문에 trapz 함수는 적분값을 과대 추정합니다.

데이터 점 사이의 간격이 균일하지만 1이 아닌 벡터의 적분을 계산합니다.

정의역 벡터를 만듭니다.

X = 0:pi/100:pi;

X의 사인을 계산합니다.

Y = sin(X);

trapz를 사용하여 Y를 적분합니다.

Q = trapz(X,Y)
Q = 1.9998

점 사이의 간격이 일정하지만 1이 아닌 경우, X에 대한 벡터를 만드는 다른 방법은 스칼라 간격 값을 지정하는 것입니다. 이 경우, trapz(pi/100,Y)pi/100*trapz(Y)와 같습니다.

데이터에 비균일 간격이 있는 행렬의 행을 적분합니다.

x 좌표의 벡터와 불규칙한 간격으로 발생하는 관측값으로 구성된 행렬을 만듭니다. Y의 행은 서로 다른 세 번의 실험에서 X에 포함된 시각에 측정한 속도 데이터를 나타냅니다.

X = [1 2.5 7 10];
Y = [5.2   7.7   9.6   13.2;
     4.8   7.0  10.5   14.5;
     4.9   6.5  10.2   13.8];

trapz를 사용하여 각 행을 개별적으로 적분하고, 각 실험에서의 총 거리를 구합니다. 데이터가 균일한 간격으로 계산되지 않았으므로 데이터 점 사이의 간격을 나타내도록 X를 지정합니다. 데이터가 Y의 행에 있으므로 dim = 2를 지정합니다.

Q1 = trapz(X,Y,2)
Q1 = 3×1

   82.8000
   85.7250
   82.1250

결과는 적분값으로 구성된 열 벡터로, Y의 행마다 하나씩 생성됩니다.

정의역 값으로 구성된 그리드를 만듭니다.

x = -3:.1:3; 
y = -5:.1:5; 
[X,Y] = meshgrid(x,y);

그리드에서 함수 f(x,y)=x2+y2을 계산합니다.

F = X.^2 + Y.^2;

trapz는 함수 표현식이 아니라 숫자형 데이터를 적분하므로, 일반적으로 표현식의 경우에는 데이터 행렬에서 trapz를 사용할지 여부가 중요하지 않습니다. 함수 표현식을 알고 있는 경우 integral, integral2 또는 integral3을 대신 사용할 수 있습니다.

trapz를 사용하여 이중 적분의 근삿값을 계산합니다.

I=-55-33(x2+y2)dxdy

숫자형 데이터로 구성된 배열에서 이중 적분이나 삼중 적분을 수행하려면 trapz에 대한 함수 호출을 중첩하십시오.

I = trapz(y,trapz(x,F,2))
I = 680.2000

trapz는 먼저 x에 대해 적분을 수행하여 열 벡터를 생성합니다. 그런 다음, y에 대한 적분으로 열 벡터를 단일 스칼라로 축소시킵니다. f(x,y)가 위로 오목하므로 trapz는 정확한 값 680을 약간 과대 추정합니다.

입력 인수

모두 축소

숫자형 데이터로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. 기본적으로 trapz는 크기가 1이 아닌 Y의 첫 번째 차원을 따라 적분을 계산합니다.

데이터형: single | double
복소수 지원 여부:

점 간격으로, 1(디폴트 값), 균일 스칼라 간격 또는 좌표의 벡터로 지정됩니다.

  • X가 스칼라이면 이는 데이터 점 사이에 균일한 간격을 지정하며 trapz(X,Y)X*trapz(Y)와 같습니다.

  • X가 벡터이면 이는 데이터 점에 대한 x 좌표를 지정하며 length(X)Y의 적분 차원의 크기와 같아야 합니다.

데이터형: single | double

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원을 지정하지 않을 경우 디폴트 값은 크기가 1보다 큰 첫 번째 배열 차원이 됩니다.

2차원 입력 배열 Y가 있다고 가정하겠습니다.

  • trapz(Y,1)Y의 열에 있는 연속된 요소에 대해 동작을 수행하고 행 벡터를 반환합니다.

    trapz(Y,1) column-wise computation

  • trapz(Y,2)Y의 행에 있는 연속된 요소에 대해 동작을 수행하고 열 벡터를 반환합니다.

    trapz(Y,2) row-wise computation

dimndims(Y)보다 큰 경우 trapzY와 크기가 같은, 0으로 구성된 배열을 반환합니다.

세부 정보

모두 축소

사다리꼴법(Trapezoidal Method)

trapz는 사다리꼴법을 사용하여 수치 적분을 수행합니다. 사다리꼴법은 해당 영역을, 더욱 쉽게 계산할 수 있는 영역을 가지는 사다리꼴로 분할하여 구간 적분에 대한 근삿값을 계산합니다. 예를 들어, 다음과 같이 균일한 간격의 사다리꼴 8개를 사용하여 사인 함수의 사다리꼴 적분을 수행한 경우를 살펴보겠습니다.

The plot of one period of the sin(x) function with eight trapezoids underneath the curve to estimate its area

균일한 간격의 N+1개 점을 사용하는 적분의 경우 근삿값은 다음과 같습니다.

abf(x)dxba2Nn=1N(f(xn)+f(xn+1))=ba2N[f(x1)+2f(x2)+...+2f(xN)+f(xN+1)],

여기서 각 점 사이의 간격은 스칼라 값 baN와 같습니다. 기본적으로 MATLAB®은 간격으로 1을 사용합니다.

N+1개 점 사이의 간격이 균일하지 않은 경우 식은 다음과 같이 일반화됩니다.

abf(x)dx12n=1N(xn+1xn)[f(xn)+f(xn+1)],

여기서 a=x1<x2<...<xN<xN+1=b이고, (xn+1xn)은 각 연속점 쌍 간의 간격입니다.

  • 이산 데이터 세트에 대한 수치 적분을 구할 때는 trapzcumtrapz를 사용해야 합니다. 데이터에 대한 함수 표현식이 존재한다면 integral, integral2 또는 integral3을 대신 사용하십시오.

  • trapz는 연산을 수행하는 차원의 크기를 1로 축소하고 최종 적분값만 반환합니다. cumtrapz는 연산을 수행하는 차원의 크기를 유지하면서 중간 누적 적분값을 반환합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨