Diary


2019-12-19(木) [長年日記]

_ [算数] sin, cos, e, polar, exp, arg

算数カテゴリは備忘録用だな.
C++でstd::polarやstd::argに慣れてしまうと sin, cos でえっとーになってしまうから書いておく.
$$\begin{align}polar(1.0, \theta) &= \cos\theta+i\sin\theta \\ &= e^{i\theta}\\&= exp(complex(0, \theta)) \end{align}$$
オイラーの公式を覚えておけばよいのだが,脳味噌からどんどん消えていくんで仕方がない(笑)

argはこうだ.
$$arg(complex) = atan2(imag, real)$$
複素平面で考えるのでatanではなくatan2を使う.
atan出力は\(-\frac{ \pi }{ 2 }\)~\(\frac{ \pi }{ 2 }\)なのに対してatan2出力は\(-{\pi}\)~\({\pi}\)だから.

追記
\(atan2(imag, real)\)の引数の順番に違和感があるが,C++日本語リファレンスに「引数の順番に注意されたし」とある.そうだよなぁ.
図と式をパクった.


\(f(y,x)=Arctan\frac{ y }{ x }\)
他の言語も同じ.y/x をそのまま(y, x) で書くと覚えておけばいいのか.

さらに追記
Excelは\(atan2(real, imag)\) だった.
さすがMicrosoft,期待を裏切らない(笑)
当然と言えばそうなんだが google スプレッドシート もExcelと同じだった.
なんだかなぁ~