首先,sin(x)的导数是cos(x),或者更正式地说:
f(x) = sin(x)
f'(x) = cos(x)
Run Code Online (Sandbox Code Playgroud)
cos(x) = 1 - x^2/2| + x^2/4! + ...
Run Code Online (Sandbox Code Playgroud)
与递归.在Java中:
public double cos(double x) {
return 1 + next(-x*x/2, x, 3);
}
public double next(double term, double x, int i) {
double next = -term * x * x / (i * (i + 1));
return term + next(term, x, i + 2);
}
Run Code Online (Sandbox Code Playgroud)
当然你需要设置一些限制器来退出递归,否则你最终会得到一个堆栈溢出错误,这留给读者练习.
哦,我看到这个问题被标记为C而不是Java,但这是作业.:-)
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |