用C语言,利用级数之和分别计算sinX和cosX(X为弧度), 要求精度为10-6。
时间: 2024-05-13 12:18:02 浏览: 23
可以利用泰勒级数公式来计算sinX和cosX,公式如下:
sinX = X - X^3/3! + X^5/5! - X^7/7! + ...
cosX = 1 - X^2/2! + X^4/4! - X^6/6! + ...
其中,阶乘可以通过循环计算得到,每次计算后判断误差是否小于10^-6(即两次迭代的结果之差的绝对值是否小于10^-6),如果小于则退出循环。具体实现如下:
```c
#include <stdio.h>
#include <math.h>
#define PRECISION 1e-6
double fact(int n) {
double res = 1.0;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
double sin(double x) {
double res = 0.0;
double term = x;
int n = 1;
while (fabs(term) >= PRECISION) {
res += term;
term = -term * x * x / ((2 * n) * (2 * n + 1));
n++;
}
return res;
}
double cos(double x) {
double res = 1.0;
double term = 1.0;
int n = 1;
while (fabs(term) >= PRECISION) {
res -= term;
term = term * x * x / ((2 * n - 1) * (2 * n));
n++;
}
return res;
}
int main() {
double x = 1.0; // 输入弧度值
printf("sin(%f) = %f\n", x, sin(x));
printf("cos(%f) = %f\n", x, cos(x));
return 0;
}
```
其中,fact函数用于计算阶乘,sin和cos函数分别计算sinX和cosX,并且利用while循环来迭代计算,直到误差小于10^-6为止。