JavaScript/Math/expm1のソースを表示
←
JavaScript/Math/expm1
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
<code>Math.expm1(x)</code> は、<math>e^x - 1</math> を返します。ここで、<math>e</math> は自然対数の底(約2.718)です。この関数は、<math>x</math> が非常に小さい場合に <code>Math.exp(x) - 1</code> よりも高い精度で結果を返します<ref>これは、<code>x</code> が小さい場合に <code>Math.exp(x) - 1</code> が精度を失う問題を解決するために設計されています。</ref>。 * 引数 <code>x</code> が <code>NaN</code> の場合、<code>NaN</code> を返します。 * 引数 <code>x</code> が <code>+0</code> の場合、<code>+0</code> を返します。 * 引数 <code>x</code> が <code>-0</code> の場合、<code>-0</code> を返します。 * 引数 <code>x</code> が <code>Infinity</code> の場合、<code>Infinity</code> を返します。 * 引数 <code>x</code> が <code>-Infinity</code> の場合、<code>-1</code> を返します。 == 例 == === <math>e^x - 1</math> を計算するプログラム === 以下のプログラムは、ユーザーが入力した値の <math>e^x - 1</math> を計算します。 :<syntaxhighlight lang=javascript copy> const f = p => { for (;;) { a = prompt(`${p}は何ですか?`); if (!isNaN(a)) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const x = f("値"); const expm1 = Math.expm1(x); if (!isNaN(expm1)) { alert(`e^${x} - 1 は ${expm1.toFixed(3)} です。`); break; } alert("入力が大きすぎます。"); } </syntaxhighlight> このプログラムでは、<code>Math.expm1</code> を使用して <math>e^x - 1</math> を計算しています。ユーザーが入力した値が <code>NaN</code> や <code>Infinity</code> の場合、適切に処理されます。 === <code>Math.expm1</code> と <code>Math.exp(x) - 1</code> の比較 === 以下のプログラムは、<code>Math.expm1</code> と <code>Math.exp(x) - 1</code> の結果を比較します。 :<syntaxhighlight lang=javascript copy> const f = p => { for (;;) { a = prompt(`${p}は何ですか?`); if (!isNaN(a)) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const x = f("値"); const expm1 = Math.expm1(x); const expMinus1 = Math.exp(x) - 1; if (!isNaN(expm1) && !isNaN(expMinus1)) { alert(`e^${x} - 1 は ${expm1.toFixed(3)} です。\nMath.exp(${x}) - 1 は ${expMinus1.toFixed(3)} です。`); break; } alert("入力が大きすぎます。"); } </syntaxhighlight> このプログラムでは、<code>Math.expm1</code> と <code>Math.exp(x) - 1</code> の結果を比較しています。<code>x</code> が非常に小さい場合、<code>Math.expm1</code> の方が高い精度で結果を返すことがわかります。 === 注意点 === * '''精度''': <code>x</code> が非常に小さい場合、<code>Math.exp(x) - 1</code> は精度を失うことがありますが、<code>Math.expm1</code> は高い精度を維持します。 * '''戻り値の範囲''': <code>Math.expm1</code> の戻り値は、<code>-1</code> から <code>Infinity</code> の範囲です。 == 脚註 == <references /> == 外部リンク == * [https://tc39.es/ecma262/#sec-math.expm1 ECMA-262::21.3.2.13 Math.expm1 ( x )] {{DEFAULTSORT:EXPM1}} [[Category:JavaScript]]
JavaScript/Math/expm1
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報