2023年11月28日火曜日

汲めども尽きぬ悩みの泉

 こんなポストがありました。

https://twitter.com/sakaguc39782541/status/1728972290992525399

fx-CG50 で、atan(-1.33) が 約127 を返してほしい所、-53.06 を返す、というハナシの様です。
おそらく、DEG モードでの操作なのでしょうが、「そりゃあ、atan()の返戻値域は -pi/2...+pi/2 だかんね」。

pythonでは、どうだったか、と、調べたら、

>>> import math
>>> math.atan(-1.33)/math.pi*180
-53.06123726771017

まぁ、そりゃそうであります。返戻値域が同じなのですから。
Cやpython では、こうしたバヤイに利用できる、atan2() がありますネ。
>>> math.atan2(1.33,-1)/math.pi*180
126.93876273228983

同様に、計算機の数値関数で値域を換えたいならば、同等の機能を適用する別のAPIを使用する、という事になります。fx-CG50の場合、Arg 機能が利用できます。
上記の問題のバヤイ Arg -1+1.33i とやれば良さそう。