Javaでの三角関数の微分計算と導関数のグラフ表示

Javaでの三角関数の微分計算と導関数のグラフ表示

このページでは、Javaを用いて三角関数の微分計算を行い、導関数のグラフを表示する方法について詳しく解説します。以下の各項目を参照してください。

三角関数の微分の基礎

三角関数の微分は、以下の基本公式に基づきます:

  • \( \frac{d}{dx} \sin(x) = \cos(x) \)
  • \( \frac{d}{dx} \cos(x) = -\sin(x) \)
  • \( \frac{d}{dx} \tan(x) = \sec^2(x) \)

例えば、関数 \( f(x) = \sin(x) \) の微分は \( f'(x) = \cos(x) \) となります。これらの公式を利用して、Javaプログラムで数値微分やグラフ描画を行います。

Javaでの三角関数微分の実装

Javaでは、Math クラスを使用して三角関数を計算できます。以下に、数値微分を実装するサンプルコードを示します。

public class TrigDifferentiation {
    public static void main(String[] args) {
        double x = Math.PI / 4; // 例: 45度 (ラジアン)
        double h = 1e-5; // 微小値

        // 数値微分: f'(x) ≈ (f(x + h) - f(x - h)) / (2 * h)
        double sinDerivative = (Math.sin(x + h) - Math.sin(x - h)) / (2 * h);
        double cosDerivative = (Math.cos(x + h) - Math.cos(x - h)) / (2 * h);

        System.out.println("sin'(x) at x = π/4: " + sinDerivative);
        System.out.println("cos'(x) at x = π/4: " + cosDerivative);
    }
}

このコードでは、\( \sin(x) \) と \( \cos(x) \) の導関数を数値微分によって近似しています。

導関数のグラフ描画

Javaでグラフを描画するには、JFreeChartJavaFX を利用できます。以下は、JavaFXを用いた簡単なグラフ描画の例です。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class TrigGraph extends Application {
    @Override
    public void start(Stage stage) {
        // 軸の設定
        NumberAxis xAxis = new NumberAxis(-2 * Math.PI, 2 * Math.PI, Math.PI / 2);
        xAxis.setLabel("x (radians)");
        NumberAxis yAxis = new NumberAxis(-1.5, 1.5, 0.5);
        yAxis.setLabel("y");

        // グラフの作成
        LineChart lineChart = new LineChart<>(xAxis, yAxis);
        lineChart.setTitle("sin(x) and its Derivative");

        // データシリーズ
        XYChart.Series sinSeries = new XYChart.Series<>();
        sinSeries.setName("sin(x)");
        XYChart.Series cosSeries = new XYChart.Series<>();
        cosSeries.setName("cos(x)");

        for (double x = -2 * Math.PI; x <= 2 * Math.PI; x += 0.1) {
            sinSeries.getData().add(new XYChart.Data<>(x, Math.sin(x)));
            cosSeries.getData().add(new XYChart.Data<>(x, Math.cos(x)));
        }

        // データをグラフに追加
        lineChart.getData().addAll(sinSeries, cosSeries);

        // シーンの設定
        Scene scene = new Scene(lineChart, 800, 600);
        stage.setScene(scene);
        stage.setTitle("三角関数のグラフ");
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

このプログラムを実行すると、\( \sin(x) \) とその導関数 \( \cos(x) \) を可視化したグラフが表示されます。

具体例

ここでは、異なる三角関数の微分とそのグラフを例示します。

\( \tan(x) \) の微分

\( \frac{d}{dx} \tan(x) = \sec^2(x) \) を数値微分で近似するコード:

double tanDerivative = (Math.tan(x + h) - Math.tan(x - h)) / (2 * h);
System.out.println("tan'(x) at x = π/4: " + tanDerivative);

複数の関数のグラフ

\( \sin(x), \cos(x), \tan(x) \) を同時に描画する場合:

// 例: データシリーズに tan(x) を追加
XYChart.Series tanSeries = new XYChart.Series<>();
tanSeries.setName("tan(x)");

for (double x = -Math.PI / 2 + 0.1; x <= Math.PI / 2 - 0.1; x += 0.1) {
    tanSeries.getData().add(new XYChart.Data<>(x, Math.tan(x)));
}
lineChart.getData().add(tanSeries);

このように、Javaを使用することで三角関数の微分計算やグラフ描画が簡単に行えます。

コメントは受け付けていません。