Main Content

sinpi

sin(X*pi) を正確に計算

説明

Y = sinpi(X) は、X*pi を明示的に計算せずに sin(X*pi) を計算します。この計算は sin(X*pi) よりも正確です。というのも浮動小数点値である pi は π の近似であるためです。以下に例を示します。

  • 整数の場合、sinpi(n) は厳密にゼロになります。

  • 奇数の整数の場合、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) は "厳密な" ゼロになりません。

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 で導入

すべて展開する

参考

| |