JavaScriptでasin,acos,atanを計算しグラフを書く方法(Math.asin, Math.acos, Math.atan)

JavaScriptでasin,acos,atanを計算しグラフを書く方法(Math.asin, Math.acos, Math.atan)

このページでは、JavaScriptの逆三角関数を計算するためのメソッドである Math.asin(x)Math.acos(x)Math.atan(x) について詳しく解説します。

Math.asin(x)について

Math.asin(x) は、x のアークサイン (逆正弦) をラジアン単位で返します。

数学的には次のように表されます。

\[ y = \arcsin(x) \] ここで、\( -1 \leq x \leq 1 \) かつ \( -\frac{\pi}{2} \leq y \leq \frac{\pi}{2} \) です。

例:

  • Math.asin(0) の結果は \( 0 \) です。
  • Math.asin(1) の結果は \( \frac{\pi}{2} \) (約1.5708) です。
  • Math.asin(-1) の結果は \( -\frac{\pi}{2} \) (約-1.5708) です。

JavaScriptのコード例:


console.log(Math.asin(0));   // 0
console.log(Math.asin(1));   // 1.5707963267948966
console.log(Math.asin(-1));  // -1.5707963267948966
    

Math.acos(x)について

Math.acos(x) は、x のアークコサイン (逆余弦) をラジアン単位で返します。

数学的には次のように表されます。

\[ y = \arccos(x) \] ここで、\( -1 \leq x \leq 1 \) かつ \( 0 \leq y \leq \pi \) です。

例:

  • Math.acos(1) の結果は \( 0 \) です。
  • Math.acos(0) の結果は \( \frac{\pi}{2} \) (約1.5708) です。
  • Math.acos(-1) の結果は \( \pi \) (約3.1416) です。

JavaScriptのコード例:


console.log(Math.acos(1));   // 0
console.log(Math.acos(0));   // 1.5707963267948966
console.log(Math.acos(-1));  // 3.141592653589793
    

Math.atan(x)について

Math.atan(x) は、x のアークタンジェント (逆正接) をラジアン単位で返します。

数学的には次のように表されます。

\[ y = \arctan(x) \] ここで、\( -\infty < x < \infty \) かつ \( -\frac{\pi}{2} < y < \frac{\pi}{2} \) です。

例:

  • Math.atan(0) の結果は \( 0 \) です。
  • Math.atan(1) の結果は \( \frac{\pi}{4} \) (約0.7854) です。
  • Math.atan(-1) の結果は \( -\frac{\pi}{4} \) (約-0.7854) です。

JavaScriptのコード例:


console.log(Math.atan(0));   // 0
console.log(Math.atan(1));   // 0.7853981633974483
console.log(Math.atan(-1));  // -0.7853981633974483
    

グラフの描画方法

JavaScriptとHTML5のcanvas要素を使用して、これらの関数のグラフを描画する方法を説明します。

以下は、Math.asin(x)Math.acos(x)Math.atan(x)のグラフを描画する例です。

HTMLコード:


<canvas id="graph" width="500" height="500"></canvas>
<script>
const canvas = document.getElementById('graph');
const ctx = canvas.getContext('2d');
ctx.translate(250, 250); // 原点を中央に移動

function drawAxes() {
    ctx.beginPath();
    ctx.moveTo(-250, 0); // x軸
    ctx.lineTo(250, 0);
    ctx.moveTo(0, -250); // y軸
    ctx.lineTo(0, 250);
    ctx.strokeStyle = 'black';
    ctx.stroke();
}

function plotFunction(func, color) {
    ctx.beginPath();
    for (let x = -1; x <= 1; x += 0.01) {
        const y = func(x);
        ctx.lineTo(x * 200, -y * 200);
    }
    ctx.strokeStyle = color;
    ctx.stroke();
}

drawAxes();
plotFunction(Math.asin, 'red'); // Math.asinのグラフ
plotFunction(Math.acos, 'blue'); // Math.acosのグラフ
plotFunction(Math.atan, 'green'); // Math.atanのグラフ
</script>
    

このコードでは、赤色で Math.asin、青色で Math.acos、緑色で Math.atan のグラフを描画します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です