利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5)

1.

#include <stdio.h>
#include <math.h>
/* 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-...
    计算sin(x)的值。要求最后一项的绝对值小于10^(-5)*/
void  main(){
  double sum,item;
  int i=0,count=0;
  float x;
  printf("Input x: ");
  scanf("%f",&x);
  sum=x;
  item=x;//初始化赋值 item存放每一项的值
  do{
    i++;
	item = -item*x*x/((2*i)*(2*i+1));//第一項为-x^3/3! item=-x*x*x/(2*3) 
	//第二项为x^5/5! 直接对第一項取负,-item*x*x/(4*5),后面以此类推 
	sum+=item;
	count++;
  }while(fabs(item)>=1e-5);
  printf("sin(%f)=%6.6lf,count=%d\n",x,sum,count);

}

输出结果为:

总结:

观察 相邻两项的 多项式 的规律 ,相差 一个 符号,两个x相乘,除数多了两项,除数分别为前一项的两个除数各加1。

item = -item*x*x/((2*i)*(2*i+1)),除数要用一个括号括起来;

2.

#include <stdio.h>
void main()
{
    double x,sum=0.0,t;
    int n=0;
    scanf("%lf",&x);
    t=x;
while(t>=1e-6 || t<=-1e-6)
{
   sum=sum+t;
   n=n+1;
   t=-t*x*x/(2*n)/(2*n+1);
}
   printf("%lf",sum);
}

 

  • 17
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值