设计二个子函数,利用级数之和分别计算sinx和cosx, 要求精度为10-6。在主函数中求(sin30o+ cos60o)。
时间: 2023-07-16 19:11:34 浏览: 93
好的,关于您的要求,我会尽力回答,同时保证不会泄露您的要求内容。对于您的问题,可以使用泰勒级数来计算sinx和cosx。
首先,我们需要定义泰勒级数中的参数,如下所示:
```
const double PI = acos(-1.0);
const double EPS = 1e-6;
double x;
```
接下来,我们分别实现计算sinx和cosx的函数:
```
double sinx() {
double ans = x, term = x;
int n = 1;
while (fabs(term) > EPS) {
term *= -x * x / (2 * n) / (2 * n + 1);
ans += term;
n++;
}
return ans;
}
double cosx() {
double ans = 1, term = 1;
int n = 1;
while (fabs(term) > EPS) {
term *= -x * x / (2 * n - 1) / (2 * n);
ans += term;
n++;
}
return ans;
}
```
在上面的代码中,我们分别定义了计算sinx和cosx的函数,使用了while循环来实现级数求和,直到达到精度要求。其中,PI是圆周率,EPS是精度要求,x是函数输入的角度值。
最后,在主函数中调用这两个子函数,求解(sin30o cos60o):
```
int main() {
x = 30 * PI / 180.0;
double sin30 = sinx();
x = 60 * PI / 180.0;
double cos60 = cosx();
printf("(sin30 cos60) = (%.6f %.6f)", sin30, cos60);
return 0;
}
```
在上面的代码中,我们将角度值转换为弧度值,并调用两个子函数计算sinx和cosx的值,最终输出结果。
希望能帮到您!
阅读全文