使用泰勒级数逼近sin(x),直到项的绝对值低于某个实数值

问题描述 投票:0回答:1

我想使用泰勒级数打印sin(x)的值。

我必须添加术语,直到术语的绝对值变为<10e-06

#include <stdio.h>
#include <math.h>
double val(double, double);
int main(void){

    double x,eps=10e-06;

    printf("\nEnter value of x: ");
    scanf("%lf",&x);

    printf("\nCalculated value: %lf\n",val(x, eps));

    return 0;

}

double val(double x, double eps){

    int i;
    double t=x, sum=0;
    if(fabs(x)<= eps) return 0;

    for(i=1;i<=20; i++){

        sum+=t;
        t*=-(x*x)/((2*i+1)*(2*i));
        if(fabs(t)>=eps) break;
    }
    return sum;
}

但是我得到与输入相同的输出(即我在输出中得到x)。

有人可以告诉我怎么了。

c taylor-series
1个回答
0
投票

问题在这里:

© www.soinside.com 2019 - 2024. All rights reserved.