设计函数求sinx的值并验证

求大佬指正一下

img


2

望采纳

下面是一个可以精准逼近sinx的值的函数的示例:

#include 

// 精准逼近sinx的函数
double my_sin(double x)
{
  // 使用Taylor级数进行逼近
  double result = 0.0;
  for (int n = 0; n < 10; n++)
  {
    result += pow(-1.0, n) * pow(x, 2 * n + 1) / factorial(2 * n + 1);
  }
  return result;
}

// 计算阶乘的函数
int factorial(int n)
{
  if (n == 0)
  {
    return 1;
  }
  return n * factorial(n - 1);
}

// 使用内置函数验证结果的函数
void verify_result(double x)
{
  double sin_x = sin(x);
  double my_sin_x = my_sin(x);
  std::cout << "sin(" << x << ") = " << sin_x << std::endl;
  std::cout << "my_sin(" << x << ") = " << my_sin_x << std::endl;
  std::cout << "Absolute error: " << fabs(sin_x - my_sin_x) << std::endl;
}

上面的代码中,我们定义了一个my_sin函数,该函数使用Taylor级数来逼近sinx的值。在计算Taylor级数时,我们使用了一个递归函数factorial来计算阶乘。

我们还定义了一个verify_result函数,该函数使用内置的sin函数来验证my_sin函数的结果。

要使用上面的函数,我们可以这样调用它们:

int main()
{
  double x = 1.0;
  verify_result(x);
  return 0;
}