При каких N и Х считать сумму ряда Тейлора бессмысленно? - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <conio.h> #include <math.h> void main() { unsigned long int N, i, N_of_factorial = 2; long double S = 0, x, next_member; printf("Enter N: "); scanf_s("%u", &N); printf("\nEnter x: "); scanf_s("%Lf", &x); next_member = x; printf("\n Sin(x): %.17Lf", sin(x)); for (i = 0; i <= N; i++) { if (i % 2 == 0) S += next_member; if (i % 2 != 0) S -= next_member; next_member *= x*x / (N_of_factorial*(N_of_factorial + 1)); N_of_factorial += 2; if (next_member == 0) break; } printf("\nSum of Teylor's series: %.17Lf", S); next_member = x; N_of_factorial = 2; S = 0; i = 0; while (next_member != 0) { if (i % 2 == 0) S += next_member; if (i % 2 != 0) S -= next_member; next_member *= x*x / (N_of_factorial*(N_of_factorial + 1)); N_of_factorial += 2; i++; } printf("\n Sum with max accuracy: %.17Lf", S); _getch(); }
Решение задачи: «При каких N и Х считать сумму ряда Тейлора бессмысленно?»
for (i = 0; i <= N; i++) { if (i % 2 == 0) S += next_member; if (i % 2 != 0) S -= next_member; next_member *= x*x / (N_of_factorial*(N_of_factorial + 1)); N_of_factorial += 2; if (next_member == 0) break; }
Объяснение кода листинга программы
В этом коде выполняется вычисление суммы ряда Тейлора. Переменная N
представляет собой количество членов ряда, которые нужно сложить. Переменная S
используется для хранения суммы ряда. Переменная next_member
представляет собой следующий член ряда, который нужно добавить или вычесть из суммы. Переменная x
представляет собой коэффициент, на который умножается каждый член ряда. Переменная N_of_factorial
используется для хранения факториала числа N
.
Код проверяет, является ли текущий член ряда четным числом. Если это так, он добавляется к сумме, если нет - вычитается. Затем переменная next_member
умножается на значение x
, деленное на факториал числа N
и (факториал числа N
+ 1). Значение N_of_factorial
увеличивается на 2, и если следующий член ряда равен нулю, цикл прерывается.
Код может считаться бессмысленным, если ряд Тейлора для данного значения N
и x
не сходится, то есть если next_member
никогда не станет равным нулю. Однако, этот код не проверяет сходимость ряда, он просто вычисляет сумму ряда до тех пор, пока не будет достигнут предел по количеству членов ряда или не будет найден член ряда, равный нулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д