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;

代码解释

  1. #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) 的近似值,并输出结果

C++ 泰勒级数实现 cos(x) 近似值计算

原文地址: https://www.cveoy.top/t/topic/oJQC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录