笔记|c语言_利用泰勒公式求sinx的值

写在前面,

fabs()函数(头文件是<math.h>)是C语言中的一个数学函数,用于计算一个浮点数的绝对值。它的原型如下:

```c
double fabs(double x);
```

该函数返回参数x的绝对值,即x的正值部分。

要求最后一项绝对值刚好小于0.00001(1e-5即1*10的-5)

先循环求每一项分母,再循环求每一项分子

例如

x^3/3!

为一项,x的3次方为分子,3!为分母

/泰勒公式:sin(x)=x-x^3/3!+x^5/5!+...+(-1)^(m-1)*x^(2m-1)/(2m-1)! 
#include <stdio.h>
#include <math.h>
//利用泰勒公式求sin(x),要求最后一项的绝对值刚好小于0.00001 
//泰勒公式:sin(x)=x-x^3/3!+x^5/5!+...+(-1)^(m-1)*x^(2m-1)/(2m-1)! 
int main()
{
	float t,i,x,p,z=1,s=0,u=1;
	int count = 1;
	printf("请输入x的数值\n");
	scanf("%f",&x);
	while(fabs(u)>=1e-5)
	{
		t = 1;
		for(i=1;i<=(2*count-1);i++)
		{
			t *= i;  //求各项分母 
		}
		p = 1;//
		for(i=1;i<=(2*count-1);i++)
		{
			p *= x;  //求各项分子 
		}
		u = p/t;
		s += z*u;//求和
		z *= -1;//变号 
		count++; 
	}
	printf("%f",s);
	return 0;
}

因为sinx的泰勒公式展开为奇数次项,所以利用每次循环使count值为奇数次递增,即count*2-1

 

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值