Main Content

integral

설명

예제

q = integral(fun,xmin,xmax)는 전역 적응적 구적법(Adaptive Quadrature)과 디폴트 허용오차를 사용하여 xmin부터 xmax까지의 범위에 대한 함수 fun의 수치 적분을 계산합니다.

예제

q = integral(fun,xmin,xmax,Name,Value)는 하나 이상의 Name,Value 쌍의 인수로 추가 옵션을 지정합니다. 예를 들어, 'WayPoints' 다음에 실수 또는 복소수의 벡터를 지정하여 적분기가 사용할 특정 점을 표시합니다.

예제

모두 축소

함수 f(x)=e-x2(lnx)2을 만듭니다.

fun = @(x) exp(-x.^2).*log(x).^2;

x=0부터 x=Inf까지의 범위에 대해 적분을 계산합니다.

q = integral(fun,0,Inf)
q = 1.9475

단일 파라미터 c를 갖는 함수 f(x)=1/(x3-2x-c)을 생성합니다.

fun = @(x,c) 1./(x.^3-2*x-c);

c=5x=0부터 x=2까지의 범위에 대해 적분을 계산합니다.

q = integral(@(x) fun(x,5),0,2)
q = -0.4605

이 기법에 대한 자세한 내용은 함수를 파라미터화하기 항목을 참조하십시오.

함수 f(x)=ln(x)를 만듭니다.

fun = @(x)log(x);

디폴트 오류 허용오차로 x=0부터 x=1까지의 범위에 대해 적분을 계산합니다.

format long
q1 = integral(fun,0,1)
q1 = 
  -1.000000010959678

이번에는 소수점 이하 열두 자릿수까지의 정확도로 적분을 다시 계산합니다. integral이 절대 허용오차만 충족하도록 시도하게 만들기 위해 RelTol을 0으로 설정합니다.

q2 = integral(fun,0,1,'RelTol',0,'AbsTol',1e-12)
q2 = 
  -1.000000000000010

함수 f(z)=1/(2z-1)을 만듭니다.

fun = @(z) 1./(2*z-1);

중간점을 지정하여 삼각형 경로 0 ~ 1+1i ~ 1-1i ~ 0에 대해 복소 평면에서 적분을 계산합니다.

q = integral(fun,0,0,'Waypoints',[1+1i,1-1i])
q = 0.0000 - 3.1416i

벡터 값 함수 f(x)=[sinx,sin2x,sin3x,sin4x,sin5x]를 생성하고 x=0부터 x=1까지의 범위에 대한 적분을 계산합니다. 배열 값 또는 벡터 값을 갖는 함수의 적분을 계산하기 위해 'ArrayValued',true를 지정합니다.

fun = @(x)sin((1:5)*x);
q = integral(fun,0,1,'ArrayValued',true)
q = 1×5

    0.4597    0.7081    0.6633    0.4134    0.1433

함수 f(x)=x5e-xsinx를 만듭니다.

fun = @(x)x.^5.*exp(-x).*sin(x);

x=0부터 x=Inf까지의 범위에 대해 적분을 계산하고 절대 및 상대 허용오차를 조정합니다.

format long
q = integral(fun,0,Inf,'RelTol',1e-8,'AbsTol',1e-13)
q = 
 -14.999999999998360

입력 인수

모두 축소

피적분 함수로, 함수 핸들로 지정되며 xmin부터 xmax까지의 범위에 대해 적분될 함수를 정의합니다.

스칼라 값 문제의 경우, 함수 y = fun(x)는 벡터 인수 x를 받아 벡터 결과값 y를 반환해야 합니다. 이것은 일반적으로 fun이 행렬 연산자 대신 배열 연산자를 사용해야 한다는 것을 의미합니다. 예를 들어, * (mtimes) 대신 .* (times)를 사용합니다. 'ArrayValued' 옵션을 true로 설정할 경우, fun은 스칼라를 받아들이고 고정된 크기의 배열을 반환해야 합니다.

x의 하한으로, 실수 (유한 또는 무한) 스칼라 값 또는 복소수 (유한) 스칼라 값으로 지정됩니다. xmin 또는 xmax 중 하나가 복소수일 경우, integral은 직선 경로를 따라 xmin부터 xmax까지의 범위에 대한 경로적분의 근삿값을 계산합니다.

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

x의 상한으로, 실수(유한 또는 무한)나 복소수(유한)로 지정됩니다. xmin 또는 xmax 중 하나가 복소수일 경우, integral은 직선 경로를 따라 xmin부터 xmax까지의 범위에 대한 경로적분의 근삿값을 계산합니다.

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

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: integral(fun,a,b,'AbsTol',1e-12)는 절대 허용오차의 근삿값을 소수점 이하 약 열두 자릿수까지의 정확도로 설정합니다.

절대 허용오차로, 'AbsTol'과 함께 음이 아닌 실수가 쉼표로 구분되어 지정됩니다. integral은 절대 오차 |q - Q|의 추정값을 제한하기 위해 절대 허용오차를 사용합니다. 여기서 q는 계산된 적분의 값이고 Q는 (알려지지 않은) 정확한 값입니다. 절대 허용오차를 감소시키면 integral이 더 큰 소수 정밀도를 제공할 수 있습니다.

참고

AbsTolRelTol은 개별적으로 존재합니다. integral은 절대 허용오차 또는 상대 허용오차 중 하나를 충족하더라도, 둘 다 충족하지는 않을 수 있습니다. 이러한 허용오차에 대한 자세한 내용은 섹션을 참조하십시오.

예: integral(fun,a,b,'AbsTol',1e-12)는 절대 허용오차의 근삿값을 소수점 이하 약 열두 자릿수까지의 정확도로 설정합니다.

데이터형: single | double

상대 허용오차로, 'RelTol'과 함께 음이 아닌 실수가 쉼표로 구분되어 지정됩니다. integral은 상대 오차 |q – Q|/|Q|의 추정값을 제한하기 위해 상대 허용오차를 사용합니다. 여기서 q는 계산된 적분의 값이고 Q는 (알려지지 않은) 정확한 값입니다. 상대 허용오차를 감소시키면 integral이 더 큰 유효 자릿수 정밀도를 제공할 수 있습니다.

참고

RelTolAbsTol은 개별적으로 존재합니다. integral은 상대 허용오차 또는 절대 허용오차 중 하나를 충족하더라도, 둘 다 충족하지는 않을 수 있습니다. 이러한 허용오차에 대한 자세한 내용은 섹션을 참조하십시오.

예: integral(fun,a,b,'RelTol',1e-9)는 상대 허용오차를 약 9개의 유효 자릿수까지 설정합니다.

데이터형: single | double

배열 값 함수 플래그로, 'ArrayValued'와 함께 숫자형 또는 논리값 1(true)이나 0(false)이 쉼표로 구분되어 지정됩니다. 이 플래그를 true(또는 1)로 설정하여 fun이 스칼라 입력값을 받고 벡터, 행렬 또는 N차원 배열 출력값을 반환하는 함수임을 나타냅니다.

디폴트 값 falsefun이 벡터 입력값을 받고 벡터 출력값을 반환하는 함수임을 나타냅니다.

예: integral(fun,a,b,'ArrayValued',true)는 피적분 함수가 배열 값 함수임을 나타냅니다.

적분 중간점으로, 'Waypoints'와 함께 실수나 복소수의 벡터가 쉼표로 구분되어 지정됩니다. 적분기가 초기 메시에서 사용해야 할 적분 구간 내의 점을 나타내려면 중간점을 사용합니다.

  • 국소 극값처럼 함수의 흥미로운 특징 근처에 계산 지점을 추가합니다.

  • 불연속점의 위치를 지정해 피적분 함수의 불연속점을 거쳐 효율적으로 적분을 계산합니다.

  • 복소수를 중간점으로 지정하여 복소 경로 적분법(Complex Contour Integration)을 수행합니다. xmin, xmax 또는 중간점 벡터의 값이 복소수인 경우, 적분은 복소 평면 내의 일련의 직선 경로에 대해 수행됩니다. 이 경우 적분 한계와 중간점은 유한해야 합니다.

특이점을 지정하기 위해 중간점을 사용하지 마십시오. 그 대신, 구간을 분할하고 끝점에 특이점을 가진 별도의 적분 결과를 더합니다.

예: integral(fun,a,b,'Waypoints',[1+1i,1-1i])는 적분 구간 위의 복소수 중간점을 두 개 지정합니다.

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

  • integral 함수는 다음을 충족하려고 시도합니다.

    abs(q - Q) <= max(AbsTol,RelTol*abs(q))
    여기서 q는 적분의 계산된 값이고 Q는 (알려지지 않은) 정확한 값입니다. 절대 및 상대 허용오차는 정확도와 계산 시간을 절충할 수 있도록 해줍니다. 일반적으로 상대 허용오차는 적분의 정확도를 결정합니다. 하지만 abs(q)가 충분히 작은 경우에는 절대 허용오차가 적분의 정확도를 결정합니다. 일반적으로 절대 및 상대 허용오차 둘 다 함께 지정해야 합니다.

  • 적분의 단정밀도 제한 영역을 지정하거나 fun이 단정밀도 결과를 반환하는 경우, 더 큰 절대 및 상대 허용오차를 지정해야 할 수도 있습니다.

참고 문헌

[1] L.F. Shampine “Vectorized Adaptive Quadrature in MATLAB®,” Journal of Computational and Applied Mathematics, 211, 2008, pp.131–140.

확장 기능

버전 내역

R2012a에 개발됨