Рекуррентная формула для функции - 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. Список действий:
- Объявление переменных:
- sum (сумма ряда)
- x (текущее значение аргумента функции)
- xn (начальное значение аргумента функции для вычисления ряда)
- xk (конечное значение аргумента функции для вычисления ряда)
- eps (маленькое число, используемое для проверки условия выхода из цикла)
- i (применяется в цикле)
- dx (шаг изменения аргумента функции в цикле)
- iter (итерационный номер значения x)
- n (номер члена ряда, который находится в процессе вычисления)
- Вывод сообщения и запрос на ввод значений xn и xk.
- Проверка условия xn > xk и вывод сообщения, если оно не выполняется.
- Ввод значения dx.
- Ввод начального значения x.
- Выполнение цикла от xn до xk с шагом dx.
- Внутри цикла вычисление значения x, итерационного номера iter и суммы ряда sum.
- Вычисление следующего члена ряда и добавление его к сумме.
- Увеличение значения n на единицу.
- Проверка условия выхода из цикла (сравнение абсолютного значения разности текущего и предыдущего членов ряда с eps).
- Если условие не выполняется, то цикл продолжается.
- Если условие выполняется, то выполняется вывод значений x и sum, и программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д