Main Content

log1p

小さい X1+X の自然対数を正確に計算

説明

Y = log1p(X) は、1+X を明示的に計算せずに、配列 X の各要素の自然対数 log(1+X) を計算します。X < -1 である場合、Y は複素数です。この関数は、1+X の丸め誤差を補正するため、X の小さな実数値に対してより正確です。

すべて折りたたむ

log(1+X)log1p(X) の精度を比較します。

小さな実数値のベクトルを作成します。

X = [-1e-16 1e-15 2e-14]
X = 1×3
10-13 ×

   -0.0010    0.0100    0.2000

関数 log を使用して、1+X の自然対数を計算します。

Y = log(1+X)
Y = 1×3
10-13 ×

   -0.0011    0.0111    0.1998

結果はゼロになるか、相対誤差が大きくなります。たとえば、Y(2)X(2)、つまり 1e-15 に近くありません。

Y(2)
ans = 1.1102e-15

関数 log1p を使用して、1+X の自然対数を計算します。

Y = log1p(X)
Y = 1×3
10-13 ×

   -0.0010    0.0100    0.2000

この場合、log1p(X) はおよそ X となり、結果はより正確です。たとえば、Y(2)X(2)、つまり 1e-15 に近くなっています。

Y(2)
ans = 1.0000e-15

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列、多次元配列、table または timetable として指定します。

データ型: single | double | table | timetable
複素数のサポート: あり

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

|