【发布时间】:2016-07-02 04:42:24
【问题描述】:
我对在 Java 中编写的近似正弦函数的方法有点恼火。在这里,它基于泰勒的系列。
static double PI = 3.14159265358979323846;
static double eps = 0.0000000000000000001;
static void sin(double x) {
x = x % (2 * PI);
double term = 1.0;
double res = 0.0;
for (int i = 1; term > eps; i++) {
term = term * (x / i);
if (i % 4 == 1) res += term;
if (i % 4 == 3) res -= term;
}
System.out.println(sum);
}
对于小值,我得到了非常好的正弦近似值,但对于大值(例如 pow(10,22)),结果似乎非常非常错误。
结果如下:
sin(pow(10,22)) // 0.8740280612007599
Math.sin(pow(10,22)) // -0.8522008497671888
有人有想法吗?谢谢!
最好的问候,
【问题讨论】:
标签: java math trigonometry