Julia(SymPy)による三角関数の特殊な値の計算方法

どうも、木村(@kimu3_slime)です。

今回は、Julia(SymPy)による三角関数の特殊な値の計算方法を紹介します。

 

準備

SymPyを使うので、持っていなければインストールしておきましょう。

準備として、以下のコードを実行しておきます。

 

三角関数の特殊な値の計算方法

まず、\(\sin (\frac{\pi}{6})\)を求めてみます。

\[0.49999999999999994\]

この書き方だと、小数として\(\frac{\pi}{6}\)を計算しているので、誤差が出てしまっています。記号的に\(\pi\)を表すために、SymPyでは「PI」を使います。

\[\frac{1}{2}\]

さらに、三角関数のより特殊な角度についても記号的に計算できます。

\[- \frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\]

 

なお、三角関数の入力はラジアンで計算されています。もし度で計算したいならば、次のような変換をすると良いでしょう。

\[- \frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\]

 

結果を代数的にでなく、小数で表したいならば「数式.evalf()」を用います。

\[0.258819045102521\]

 

特殊な角\(x=0,\frac{\pi}{24},\frac{2}{24}\pi,\dots\)でのサインの値を求め、一覧にしてみましょう。

\[\left[ \begin{array}{r}0\\- \frac{\sqrt{3} \sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\- \frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\\\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}\\\frac{1}{2}\\- \frac{\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{3} \sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\\frac{\sqrt{2}}{2}\\\frac{\sqrt{3} \sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\\frac{\sqrt{3}}{2}\\\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}\\\frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\\\frac{\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{3} \sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\1\\\frac{\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{3} \sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\\frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\\\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}\\\frac{\sqrt{3}}{2}\\\frac{\sqrt{3} \sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\\frac{\sqrt{2}}{2}\\- \frac{\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{3} \sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\\frac{1}{2}\\\sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}\\- \frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\\- \frac{\sqrt{3} \sqrt{\frac{1}{2} – \frac{\sqrt{2}}{4}}}{2} + \frac{\sqrt{\frac{\sqrt{2}}{4} + \frac{1}{2}}}{2}\\0\end{array} \right]\]

二重根号はありますが、比較的シンプルに表せています。

三角関数の数表を作りたいならば、この結果を「sin(PI/24*i).evalf()」と置き換えれば良いでしょう。

 

代数的に表すのにも限界はあり、\(\pi\)を整数で割った角の値を、すべて表してくれるわけではありません。

\[\sin{\left(\frac{\pi}{18} \right)}\]

\[0.17364817766693\]

シンプルに表せない場合は、そのままの表示で返ってきます。

 

今回はサインを主な題材としてましたが、コサインやタンジェントでも同様の方法で計算できます。

\[\frac{\sqrt{2}}{4} + \frac{\sqrt{6}}{4}\]

\[2 – \sqrt{3}\]

 

以上、Julia(SymPy)による三角関数の特殊な値の計算方法を紹介してきました。

\(x= \frac{\pi}{12}\)のときの値は、加法定理(半角の公式)から導けるものですが、それがコンピュータで簡単に導けるのは嬉しいですね。

木村すらいむ(@kimu3_slime)でした。ではでは。

 

1から始める Juliaプログラミング
進藤 裕之(著), 佐藤 建太(著)
コロナ社 (2020-03-26T00:00:01Z)
5つ星のうち4.5
¥7,353 (コレクター商品)

 

こちらもおすすめ

Julia(SymPy)によるテイラー級数展開の求め方(指数対数、三角、双曲線)

Julia(SymPy)で1変数関数の極限を求める方法

Julia(SymPy)で1変数関数を積分する方法(多項式、指数対数、三角関数)

Julia(SymPy)で1変数関数を微分する方法(多項式、指数対数、三角関数)

.Julia(SymPy)で有理関数を部分分数分解、通分する方法

Julia(SymPy)で多項式の展開・因数分解、方程式を解く方法

Juliaで1変数関数のグラフを描く方法(多項式、指数対数、三角関数)