С помощью разложения функции в ряд Тейлора рассчитать с заданной точностью эпсилон для заданного значения х

#include <stdio.h>
#include <math.h>

int main() {

    int k = 1, x, sum = 1, epsilon;

    printf("x, epsilon=");
    scanf_s("%d%d", &x, &epsilon);

    while (x < epsilon) {

        sum = sum + pow((-1), k) * pow(x, k);
        k++;
    }
    printf("%d", sum);
    return 0;
}

Пожалуйста помогите решить задачу С помощью разложения функции в ряд Тейлора рассчитать с заданной точностью эпсилон > 0 для заданного значения х. !вот сама функция]1


Ответы (1 шт):

Автор решения: MBo

Почему аргумент x-то сравниваете? C чего бы он изменился?

Абсолютное значение очередного члена, добавляемый к сумме, сравнивайте с эпсилон

 do  {
   t = pow((-1), k) * pow(x, k);
   sum = sum + t;
    k++;
  }
 while (abs(t) > epsilon);

И по уму нафиг не нужны эти pow

 t = 1.0;
 do  {
    t = - t * x;
    sum = sum + t;
    k++;
  }
 while (abs(t) > epsilon);

Да, в данном случае через логарифм легко заранее найти количество итераций, но преподы от вас этого совсем не ждут.

→ Ссылка