本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:
#include <stdio.h>
#include <math.h>double funcos( double e, double x );int main()
{ double e, x;scanf("%lf %lf", &e, &x);printf("cos(%.2f) = %.6f\n", x, funcos(e, x));return 0;
}
函数接口
double funcos( double e, double x )
{int flag = 1,i = 1,m = 0;double mr,dr = 1,item = 1;double rt = 0;while(item>e){for(i = 1;i<=m;i++)dr = dr*i;mr = pow(x,m);item = mr/dr;rt = rt+flag*item;m = m+2;flag = -flag;i = 1;dr = 1;}return rt;
}
我想到可以编写代码求一些函数的近似值:首先把函数泰勒展开,在用本题的代码方式表达泰勒展开式,代x值求解。函数类似于sin x,ln x,ex等等泰勒展开式比较简单。