JavaScript/Math/asin
表示
< JavaScript | Math
Math.asin(x) は、引数 x の逆正弦(アークサイン)を返します。これは、x の値に対応する角度をラジアン単位で返します[1]。
- 引数
xがNaNの場合、NaNを返します。 - 引数
xが1より大きいか-1より小さい場合、NaNを返します。 - 引数
xが+0の場合、+0を返します。 - 引数
xが-0の場合、-0を返します。 - 引数
xが1の場合、π/2を返します。 - 引数
xが-1の場合、-π/2を返します。
例
[編集]逆正弦を計算するプログラム
[編集]以下のプログラムは、ユーザーが入力した値の逆正弦を計算します。
const f = p => { for (;;) { a = prompt(`${p}は何ですか?`); if (!isNaN(a) && a >= -1 && a <= 1) return a; alert(`${p}に、入力ミスがあります。 "${a}"`); } } for (;;) { const x = f("値"); const asin = Math.asin(x); if (!isNaN(asin)) { alert(`${x} の逆正弦は ${asin.toFixed(3)} ラジアンです。`); break; } alert("入力が大きすぎます。"); }
このプログラムでは、Math.asin を使用して値の逆正弦を計算しています。ユーザーが入力した値が NaN や Infinity の場合、適切に処理されます。
逆正弦関数のグラフを描画するプログラム
[編集]以下のプログラムは、逆正弦関数のグラフを描画します。
const canvas = document.createElement('canvas'); document.body.appendChild(canvas); const ctx = canvas.getContext('2d'); canvas.width = 800; canvas.height = 400; const xScale = canvas.width / 2; const yScale = canvas.height / Math.PI; ctx.beginPath(); ctx.moveTo(0, canvas.height / 2); for (let x = -1; x <= 1; x += 0.01) { const y = Math.asin(x); const canvasX = (x + 1) * xScale; const canvasY = canvas.height / 2 - y * yScale; ctx.lineTo(canvasX, canvasY); } ctx.strokeStyle = 'blue'; ctx.lineWidth = 2; ctx.stroke();
このプログラムでは、Math.asin を使用して逆正弦関数のグラフを描画しています。xScale と yScale は、グラフのスケーリングを調整するための変数です。
注意点
[編集]- 引数の範囲:
Math.asinの引数xは、-1から1の範囲でなければなりません。この範囲外の値を指定すると、NaNが返されます。 - 戻り値の範囲:
Math.asinの戻り値は、-π/2からπ/2の範囲です。 - 精度: 浮動小数点演算の特性上、
Math.asinの結果には微小な誤差が含まれることがあります。
脚註
[編集]- ^ これは、数学的には
sin(y) = xとなるような角度yを返します。
外部リンク
[編集]