C++ 使用泰勒级数计算 sin(x) 近似值
C++ 使用泰勒级数计算 sin(x) 近似值
根据泰勒级数展开式 sin(x) = x/1! - x^3/3! + x^5/5! - x^7/7! + ..., 可以编写函数 double mySin(double) 来求 sin(x) 的近似值。
可以使用循环来计算泰勒级数的每一项,然后将所有项相加即可。具体实现如下:
#include <cmath>
double mySin(double x) {
double result = 0.0;
double term = x;
int sign = 1;
double factorial = 1.0;
for (int i = 1; i <= 10; ++i) { // 只计算前 10 项
result += sign * term;
term = term * x * x / ((2 * i) * (2 * i + 1));
sign = -sign;
factorial = factorial * (2 * i) * (2 * i - 1);
}
return result;
}
在上面的代码中,我们用变量 result 来保存当前的总和,用变量 term 来保存当前项的值,用变量 sign 来记录当前项的符号,用变量 factorial 来记录当前项的分母(即阶乘)。循环 10 次(也可以根据需要调整次数),每次计算一项,然后加到总和中。最后返回总和即可。注意在计算每一项时,我们要用到上一项的值,因此需要不断地更新变量 term。
原文地址: https://www.cveoy.top/t/topic/oJRM 著作权归作者所有。请勿转载和采集!