m0_71237665 2022-05-22 14:43 采纳率: 0%
浏览 106

编写一个函数模块,用泰勒级数sin(x),计算sin(x)的值。要求最后一项的绝对值小于10的-5次方(最后一项要算在累加和中)

编写一个函数模块,用泰勒级数sin(x),计算sin(x)的值。要求最后一项的绝对值小于10的-5次方(最后一项要算在累加和中) 在main函数中调用这个函数并输出结果。(假设函数模块命名为double sinval(double x))核心代码:
item=x; //item 为泰勒级数公式中的当前项,初始设为第一项
while(fabs(item)>=1e-5) ,//如果当前项的绝对值大于10-5,则继续循环
{
sum=sum+item; //将当前项加入到总和里
n++; //项数+1
s=(2n+1)2n; //分母中比前项多出的两项的乘积
item=(-1)itemx
x/s; //在前项的基础上计算当前项。即当前项=-前项xx/s }

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-05-22 23:07
    关注

    供参考:

    #include <stdio.h>
    #include <math.h>
    double sinval(double x)
    {
        int  n = 0;
        double item = x, sum = 0, s;//item 为泰勒级数公式中的当前项,初始设为第一项
        while(fabs(item) >= 1e-5) //如果当前项的绝对值大于10-5,则继续循环
        {
            sum = sum + item; //将当前项加入到总和里
            n++;             //项数+1
            s = (2*n+1)*2*n; //分母中比前项多出的两项的乘积
            item=(-1)*item*x*x/s; //在前项的基础上计算当前项。即当前项=-前项xx/s
        }
        return sum;
    }
    int main()
    {
        double x;
        scanf("%lf", &x);
        printf("%f",sinval(x));
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧