15
Апр
2021

Вычисление синуса — ряд Тейлора в СИ [дубликат]

Посмотрите пожалуйста , почему для таких значений как 123456789 , 987654321 , значения неправильные выдает программа ?

#include <stdio.h>
#include <math.h>
#define PI 3.141593e+0
double sinus(double x);
int main(void)
{
    double a,x; 
    scanf("%le",&x);
    a=x;
    while(fabs(x)>2*(PI))
    {
     x=fabs(x)-2*(PI);
     }
     if(a>0)
     a=sinus(x);
     else a=(-1)*sinus(x);
    printf("%le",(double)a);
    return 0;}
    
double sinus(double x)
{
  double sum=0, h, eps=1.e-16; int i=2;
 
h=x;
do{
    sum+=h;
    h*=-((x*x)/(i*(i+1)));
    i+=2;}
while( fabs(h)>eps );
return sum;
return 0;
}

Источник: https://ru.stackoverflow.com/questions/1270672/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B8%D0%BD%D1%83%D1%81%D0%B0-%D1%80%D1%8F%D0%B4-%D0%A2%D0%B5%D0%B9%D0%BB%D0%BE%D1%80%D0%B0-%D0%B2-%D0%A1%D0%98

Тебе может это понравится...

Добавить комментарий