本題要求實現一個函數,用下列公式求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等等泰勒展開式比較簡單。