我是入门菜勾 2022-12-06 16:38 采纳率: 85.7%
浏览 14
已结题

设计函数求sinx的值并验证

求大佬指正一下

img


2

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-06 17:17
    关注

    望采纳

    下面是一个可以精准逼近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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?