本题要求实现一个函数,用下列公式求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等等泰勒展开式比较简单。