三角函数
假如手上没有工具,该如何计算三角函数的值呢?我们须运用近似求值的方法,即在角度值(弧度值)足够小的情况下,该等式成立:
sinx≈x
同时,我们应用下面的公式,持续迭代减小x的值:
sinx= 3sin(x/3) − 4sin3(x/3)
代码实现如下:
function abs(x) {
return x >= 0 ? x : -x;
}
function cube(x) {
return x * x * x;
}
function p(x) {
return 3 * x - 4 * cube(x);
}
function sine(angle) {
return !(abs(angle) > 0.1)
? angle
: p(sine(angle / 3));//p for procedure
}
此处学到的是,等式两边取不同的argument,运行测试:
> sine(12.15)
-0.39980345741334
> sine(3.14/6)
0.5000259145195963
这道题目启发我,编程确实可以用在日常的思考和数学计算中。