利用公式 sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!...设计函数double sin(double x)计算sin(x)的值(精度要求为最后一项的绝对值小于10^-6),并编写main()函数进行测试。
时间: 2023-11-26 11:04:45 浏览: 286
求2-4asinx-cos2x的最大最小值1
以下是利用泰勒展开公式计算sin(x)的函数double sin(double x),同时满足精度要求为最后一项的绝对值小于10^-6:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double sin(double x) {
double sum = 0;
double term = x;
int sign = 1;
int n = 1;
while (abs(term) > 1e-6) {
sum += term;
sign = -sign;
n += 2;
term = sign * pow(x, n) / tgamma(n + 1);
}
return sum;
}
int main() {
double x;
cout << "请输入角度值:";
cin >> x;
x = x * M_PI / 180; // 将角度值转化为弧度值
cout << "sin(" << x << ") = " << sin(x) << endl;
return 0;
}
```
其中,利用了C++中的tgamma函数来计算阶乘。在main函数中,先将角度值转化为弧度值,然后调用sin函数计算sin(x)的值,并输出结果。
阅读全文