C++ 泰勒级数实现 cos(x) 近似值计算
C++ 实现 cos(x) 近似值计算
本文将使用泰勒级数公式来实现 cos(x) 函数的近似值计算,代码如下:c++#include
double myCos(double x) { double result = 0; double term = 1; int n = 0; while (std::abs(term) > 1e-10) { // 迭代直到最后一项小于1e-10 result += term; n++; term = -term * x * x / (2 * n - 1) / (2 * n); } return result;}
该函数使用 while 循环迭代求和,直到最后一项小于 1e-10 为止。在每一次迭代中,计算当前项的值并将其加入结果中。计算当前项的公式为:
$$rac{(-1)^n x^{2n}}{(2n)!}$$
在计算完当前项后,n 自增 1,继续迭代下一项。
注意: 这里的 x 是弧度制的角度,需要将角度转化为弧度再传入函数中。可以使用以下代码将角度转化为弧度:c++double radian = degree * M_PI / 180;
代码解释
#include <cmath>:引入 C++ 数学库,用于使用std::abs函数计算绝对值。2.double myCos(double x):定义名为myCos的函数,接受一个double类型的参数x,并返回double类型的结果。3.double result = 0;:初始化结果变量result为 0。4.double term = 1;:初始化当前项变量term为 1,即泰勒级数的第一项。5.int n = 0;:初始化迭代次数变量n为 0。6.while (std::abs(term) > 1e-10):循环迭代,直到当前项的绝对值小于 1e-10。7.result += term;:将当前项的值添加到结果中。8.n++;:迭代次数加 1。9.term = -term * x * x / (2 * n - 1) / (2 * n);:根据泰勒级数公式计算下一项的值。10.return result;:返回计算得到的cos(x)近似值。
使用示例c++#include #include
int main() { double degree = 60; // 角度 double radian = degree * M_PI / 180; // 角度转弧度 double cos_value = myCos(radian); std::cout << 'cos(' << degree << ') = ' << cos_value << std::endl; return 0;}
输出结果:
cos(60) = 0.5
该代码首先定义了角度 degree,然后将其转换为弧度 radian,最后调用 myCos 函数计算 cos(60) 的近似值,并输出结果
原文地址: https://www.cveoy.top/t/topic/oJQC 著作权归作者所有。请勿转载和采集!