Не могу разложить высчитать выражение рядом Тейлора на си

вот само задание: С помощью операторов цикла, протабулировать на отрезке от А до В с области определения функцию, заданную расписанию в ряд Тейлора. Для сравнения вычислить также в каждой точке табуляции значение функции задано формулой. Результаты представить в виде таблицы с комментариями выражение если я не ошибаюсь,его можна подать в коде вот так: ((1.0i+1)/(2.0i+2))*x сам i=i+2(это не точно)

у меня есть схожий код по вот этому заданию,только никак не могу корректно написать свой: введите сюда описание изображения

вот сам код для 23 задания:`

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

int main(void)
{
    int n = 1, i = 0;
    double Xn, Xt, step, result = 1, microRes = 1, answer, eps, x = 2, y = 3, z = 4;
    printf("Enter A: ");
    scanf_s("%lf", &Xn);
    printf("Enter B: ");
    scanf_s("%lf", &Xt);
    printf("Enter step: ");
    scanf_s("%lf", &step);
    eps = 0.02;
    while (Xn < Xt)
    {
        while (fabs(microRes > eps))
        {
            microRes = (x * y * z * pow(Xn, n));
            n++;
            x++; y++; z++;
            i++;
            result = result + microRes;
        }
        result = 1 + (result / 6);
        answer = pow((1 - Xn), -4);

        if (Xn < 0)
            printf(" X =%1.3f | answer = %1.3f | result =  %1.3f | iterations = %i  \n", Xn, answer, result, i + 1);
        else
            printf(" X = %1.3f | answer = %1.3f | result =  %1.3f | iterations = %i  \n", Xn, answer, result, i + 1);

        x = 2;
        y = 3;
        z = 4;
        n = 1;
        microRes = 1;
        Xn = Xn + step;
        result = 0;
        i = 0;
    }
    return 0;
}

либо такой вариант для еще одного задания:

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

int main() {
    const int steps = 20;
    const double eps = 1e-10;
    double x = 0, sum = 1, s = 1, res = 0, a = 0, b = 0;

    scanf_s("%lf %lf", &a, &b);
    if (fabs(a) > 1 || fabs(b) > 1 || b <= a) {
        printf("Incorrect input ");
        return 0;
    }
    
    printf("x\t\tf(x)\t\t\tpow(1-x, -1/2)\t\tdifference\n");

    for (x = a; x < b; x += (b - a) / steps) {
        sum = 1;
        s = 1;
        res = pow(1 - x, 1.0 / 3);
        int i = 0;
        while (fabs(res - sum) > eps) {
            s *= (3.0 * i - 1) / (3.0 * i + 3) * x;
            sum += s;
            i++;

        }

        printf("% lf\t% 18lf\t% 18lf\t% 18lf\n", x, sum, res, fabs(res - sum));
    }
return 0;
}

буду благодарен за помощь.


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