Main Content

sinpi

sin(X*pi)를 정확하게 계산

설명

예제

Y = sinpi(X)X*pi를 명시적으로 계산하지 않고 sin(X*pi)를 계산합니다. 이 계산은 sin(X*pi)보다 더 정확한데, 그 이유는 pi의 부동소수점 값이 π의 근삿값이기 때문입니다. 구체적으로 살펴보면,

  • 정수에 대해 sinpi(n)은 정확히 0입니다.

  • 홀수인 정수에 대해 sinpi(n/2)은 +1 또는 -1입니다.

예제

모두 축소

sinpi(X)sin(X*pi)의 정확도를 비교합니다.

값의 벡터를 만듭니다.

X = [0 1/2 1 3/2 2];

보통의 sin 함수를 사용하여 X*pi의 사인을 계산합니다.

Y = sin(X*pi)
Y = 1×5

         0    1.0000    0.0000   -1.0000   -0.0000

piπ의 실제 값의 부동소수점 근삿값이므로 계산 결과에는 작은 수치 오차가 포함됩니다. 예를 들어, sin(π)=0이더라도 Y(3)정확히 0이 아닙니다.

Y(3)
ans = 1.2246e-16

sinpi를 사용하여 같은 값을 계산합니다. 이 경우 결과 값이 정확합니다.

Z = sinpi(X)
Z = 1×5

     0     1     0    -1     0

Z(3)
ans = 0

입력 인수

모두 축소

입력 배열로, 스칼라, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.

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

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2018b에 개발됨

모두 확장

참고 항목

| |