#include "hspmath.as" #module #defcfunc kaijou int _p1 p1 = _p1 ans = p1 for p1,p1-1,1,-1 ans *= p1 next return ans #global angle = 5,45,90,135,180 screen 0,300*length(angle),,,000,000 repeat length(angle) sita_deg = angle.cnt count = 10 sita = 1.0 * sita_deg * M_PI / 180 _sin = 0.0 msg = "sin"+sita_deg+"°をテイラー展開にて算出\n" msg += "正解:sin"+sita_deg+"°="+sin(sita)+"\n" msg += "-----------------------------------\n" repeat count _sin += pow(-1.0,cnt) * pow(sita,2.0*cnt+1) / kaijou(2*cnt+1) msg += "" + cnt + " : " + _sin + "(誤差:"+(_sin-sin(sita))+")\n" loop pos 300*cnt,000 mes msg loop stop
角度が小さいとそこまで誤差が大きくないのですが、角度が大きくなると誤差が大きくなり
収束しません。なにか間違っている箇所があるのでしょうか?
それとも、テイラー展開って、鋭角のみしか使えないのでしょうか?
ご教授願います、よろしくお願いいたします。
テイラー展開の式は、
https://wikimedia.org/api/rest_v1/media/math/render/svg/85ab4b6d72c38ae78bcf9d65741747604121f172
これを参考にしました。