Рекуррентная формула для функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, программа выводит неправильное значение, задание было таковым:Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от Хнач до Хконеч с шагом dx и с точностью eps Мне сказали, что проще это выполнить с помощью рекуррентной формулы, которую мне дали, но результат выводится неверный,не могли бы вы мне помочь? Вот сам код:
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main()
{
float eps, dx, x, b, sum=0;
int n=1;
printf("\nVvedite eps, dx\n");
scanf("%f%f", &eps, &dx);
for(x>=-1; x<1; x+=dx)
{b=-1;
do{sum+=b; n++; b*=-(x/(n+1));}
while(fabs(b)>eps);
printf("\nx=%g,\t sum=%g", x, sum);}
getch();
return 0;
}

Решение задачи: «Рекуррентная формула для функции»

textual
Листинг программы
#include <stdio.h>
#include<math.h>
int main()
{
float sum, x, xn, xk, eps, i, dx, iter, n;
printf("xn= ");
scanf("%f", &xn);
printf("xk= ");
scanf("%f", &xk);
if(xn > xk)
{printf("xn doljno bit < xk\n");
}
printf("dx= ");
scanf("%f", &dx);
printf("x= ");
scanf("%f", &x);
for(i=xn; i<=xk; i+=dx)
{
x=(double)i;
sum=iter=1;
n=1;
do{
iter*=pow(x,n)/n;
sum+=iter;
n++;
}
while(fabs(iter)>eps);
printf("\nx=%g,\t sum=%g", x, sum);
return 0;
}
}

Объяснение кода листинга программы

В этом коде выполняется вычисление суммы ряда Тейлора для функции e^x на заданном интервале [xn, xk] с шагом dx. Пользователю предлагается ввести значения xn, xk, dx, после чего программа вычисляет и выводит значения x и sum. Список действий:

  1. Объявление переменных:
    • sum (сумма ряда)
    • x (текущее значение аргумента функции)
    • xn (начальное значение аргумента функции для вычисления ряда)
    • xk (конечное значение аргумента функции для вычисления ряда)
    • eps (маленькое число, используемое для проверки условия выхода из цикла)
    • i (применяется в цикле)
    • dx (шаг изменения аргумента функции в цикле)
    • iter (итерационный номер значения x)
    • n (номер члена ряда, который находится в процессе вычисления)
  2. Вывод сообщения и запрос на ввод значений xn и xk.
  3. Проверка условия xn > xk и вывод сообщения, если оно не выполняется.
  4. Ввод значения dx.
  5. Ввод начального значения x.
  6. Выполнение цикла от xn до xk с шагом dx.
  7. Внутри цикла вычисление значения x, итерационного номера iter и суммы ряда sum.
  8. Вычисление следующего члена ряда и добавление его к сумме.
  9. Увеличение значения n на единицу.
  10. Проверка условия выхода из цикла (сравнение абсолютного значения разности текущего и предыдущего членов ряда с eps).
  11. Если условие не выполняется, то цикл продолжается.
  12. Если условие выполняется, то выполняется вывод значений x и sum, и программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы