C语言利用泰勒公式,计算sin(x)!麻烦你教我一下,跪求,谢谢大神
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 16:28:13
![C语言利用泰勒公式,计算sin(x)!麻烦你教我一下,跪求,谢谢大神](/uploads/image/z/984932-44-2.jpg?t=C%E8%AF%AD%E8%A8%80%E5%88%A9%E7%94%A8%E6%B3%B0%E5%8B%92%E5%85%AC%E5%BC%8F%2C%E8%AE%A1%E7%AE%97sin%EF%BC%88x%EF%BC%89%21%E9%BA%BB%E7%83%A6%E4%BD%A0%E6%95%99%E6%88%91%E4%B8%80%E4%B8%8B%2C%E8%B7%AA%E6%B1%82%2C%E8%B0%A2%E8%B0%A2%E5%A4%A7%E7%A5%9E)
C语言利用泰勒公式,计算sin(x)!麻烦你教我一下,跪求,谢谢大神
C语言利用泰勒公式,计算sin(x)!
麻烦你教我一下,跪求,谢谢大神
C语言利用泰勒公式,计算sin(x)!麻烦你教我一下,跪求,谢谢大神
#include <stdio.h>
#include <math.h>
int jiecheng(int n)
{
\x09int result = 1;
\x09if(n==0) return result;
\x09else
\x09{
\x09\x09while(n)
\x09\x09{
\x09\x09\x09result *= n;
\x09\x09\x09n--;
\x09\x09}
\x09\x09return result;
\x09}
}
double dsin(double x)
{
\x09double result = x;
\x09int n = 3;
\x09int sign = -1;
\x09double temp;
\x09while(1)
\x09{
\x09\x09temp = pow(x,n)/jiecheng(n);
\x09\x09if(temp<0.000001)return result;
\x09\x09temp *= sign; //变号控制
\x09\x09result += temp;
\x09\x09n +=2;
\x09\x09sign *=-1;
\x09}
}
int main()
{
\x09double p;
\x09p = 1;
\x09printf("%lf %lf", dsin(p),sin(p));
\x09return 0;
}
//double类型的数据有误差,但是结果在可接受范围内
//是利用泰勒展开进行运算,测试了sin(1)
//阶乘可能会溢出