Documentation

sinpi

Compute sin(X*pi) accurately

Description

example

Y = sinpi(X) computes sin(X*pi) without explicitly computing X*pi. This calculation is more accurate than sin(X*pi) because the floating-point value of pi is an approximation of π. In particular:

• For integers, sinpi(n) is exactly zero.

• For odd integers, sinpi(n/2) is +1 or -1.

Examples

collapse all

Compare the accuracy of sinpi(X) vs. sin(X*pi).

Create a vector of values.

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

Calculate the sine of X*pi using the normal sin function.

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

0    1.0000    0.0000   -1.0000   -0.0000

The results contain small numerical errors due to the fact that pi is a floating-point approximation of the true value of $\pi$. For instance, Y(3) is not exactly zero even though $\mathrm{sin}\left(\pi \right)=0$.

Y(3)
ans = 1.2246e-16

Use sinpi to calculate the same values. In this case, the results are exact.

Z = sinpi(X)
Z = 1×5

0     1     0    -1     0

Z(3)
ans = 0

Input Arguments

collapse all

Input array, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: single | double
Complex Number Support: Yes