2016.01.07

2025.03.05

逆三角関数 逆正弦 asin

三角関数イメージ71

はじめに

asin(アークサイン、逆正弦)とは、sinθの値からθを求めるものです。

	sinθ → θは?

メソッド

Math.asinメソッド

public static double Math.asin( double a )
・引数aで指定した値の逆正弦 (アークサイン)を返します。

  パラメータ a : 正弦(サイン)の値。

  戻り値    aの逆正弦(アークサイン)をラジアンで戻す。

このメソッドを使うときに注意することを書いておきます。

1つ目は、渡す引数範囲は-1.0~1.0であるということです。範囲外の値を引数として渡すとメソッドNaNを戻します。

2つ目は、戻り値角度ラジアン)の範囲は-π/2.0~π/2.0であるということです(πはパイ)。ある角度θMath.sinメソッドに代入して得られた値を、Math.asinメソッドに代入するとθ'が得られたとします。その結果は、必ずしもθ=θ'となりません。それは、同じ値のsinを示す角度は、0~2π(360°)の中に1または2つあるからです。sinθ=1のときθ=π/2(90°)、sinθ=-1のときθ=2π/3(270°)となり、θを1つだけ求めることが出来ますが、それ以外のときはθの候補が2つ存在します。Math.asinメソッド戻り値の範囲を-π/2.0~π/2.0とすることでθの候補を1つに絞っています。

以下の図は、sinθsin(180°-θ)が同じになることを示している図で、sinに渡す角度が違ってもsinの値がになることが分かります。

asin

以上です。Math.asinメソッドを使うときの参考にしてくさだい。

Javaソースコード

Math.asinメソッドを使ったJavaソースコードを紹介します。

AsinSample.java

001
002
003
004
005
006
007
008
009
010
011
012
public class AsinSample {
	public static void main( String[] args ) {
		// 30°をラジアンに変換
		double rad1 = Math.toRadians( 30.0 ); 
		// 150°をラジアンに変換
		double rad2 = Math.toRadians( 180.0 - 30.0 );

		// 結果の表示
		System.out.println( Math.asin( Math.sin( rad1 ) ) );
		System.out.println( Math.asin( Math.sin( rad2 ) ) );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis AsinSample.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac AsinSample.java

実行

C:\talavax\javasample>java AsinSample

実行結果

0.5235987755982988
0.5235987755982988

出力された2つ値は、30°をラジアンに変換した値とほぼ一致しています。

Javaソースコードの解説

ここからは、このソースコードを上から順番に解説していきます。

001
public class AsinSample {

クラス名を、AsinSampleとしています。

002
	public static void main( String[] args ) {

このmainメソッドからプログラムを実行します。

003
004
		// 30°をラジアンに変換
		double rad1 = Math.toRadians( 30.0 ); 

30°をMath.toRadiansメソッドラジアンに変換し、変数rad1に代入しています。

005
006
		// 150°をラジアンに変換
		double rad2 = Math.toRadians( 180.0 - 30.0 );

150°をMath.toRadiansメソッドラジアンに変換し、変数rad2に代入しています。

Math.toRadiansメソッド

public static double Math.toRadians( double a )
・引数aで指定した角度をラジアンに変換した値を返します。

  パラメータ a : 角度(単位:度)[

  戻り値    ラジアン
008
009
		// 結果の表示
		System.out.println( Math.asin( Math.sin( rad1 ) ) );

Math.sinメソッドにrad1を渡して求めたsinの値を、Math.asinメソッドに渡した結果をコンソール出力しています。

010
		System.out.println( Math.asin( Math.sin( rad2 ) ) );

Math.sinメソッドにrad2を渡して求めたsinの値を、Math.asinメソッドに渡した結果をコンソール出力しています。

Math.sinメソッド

public static double Math.sin( double a )
・引数aで指定した角度の正弦 (サイン) を返します。

  パラメータ a : ラジアンで指定した角度。

  戻り値    aの正弦

以上です。

逆三角関数に関するコンテンツ

「逆三角関数」に関係があるコンテンツをまとめています。

関連コンテンツ

sin(サイン)の意味と、Math.sinメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

cos(コサイン)の意味と、Math.cosメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

tan(タンジェント)の意味と、Math.tanメソッドの使い方を解説しています。

2020.03.23

逆余弦 acosと、Math.acosメソッドの使い方をソースコードを使って詳しく解説しています。

2016.01.07

逆正接 atanと、Math.atanメソッドの使い方をソースコードを使って詳しく解説しています。

2016.02.21

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

Math.sinメソッド、Math.cosメソッドを使わない計算方法を詳しく解説します。

2017.08.09

国際単位系における角度の単位のラジアンについて説明しています。興味のある方は、記事をご覧ください。

2016.01.26

円周率、πってどうゆう意味?

2020.03.23

単位円の意味をくわしく解説しています。

2020.03.23

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

数値として表せない計算結果はどうなる?

2016.02.15

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

広告