Численно убедиться в справедливости разложения функции - C (СИ)

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

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

Задана функция и ее разложение в ряд или произведение Численно убедиться в . справедливости равенства для чего для заданного значения аргумента , x вычислить левую часть и разложение стоящее в правой части с заданной погрешностью , , ε. Испытать разложение на сходимость при разных значениях аргумента, оценить скорость сходимости, для чего вывести число итераций n (слагаемых или сомножителей), необходимых для достижения заданной точности. В некоторых задачах указан интервал допустимых значений аргумента x, при которых сходимость гарантируется (проверить, входит ли введенное число в этот интервал). Не могу найти ошибку. Преподователь сказал что решение неверное.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double cos, x, sum, sl;
long int n;
printf("Введите x: ");
scanf("%lf", &x);
do
{
printf("Введите cos x (-1<cos x<1): ");
scanf("%lf", &cos);
if (cos <-1 || cos > 1) printf("Значение x не удовлетворяет условию -1< cos <1\n");
} while (cos <-1 || cos >1);
n = 1;
sum = 0;
sl = 1;
while (sl > cos)
{
sum = sum + sl;
sl = pow(x, n);
n++;
printf("%ld %lf\n", n, sl);
}
printf("Сумма ряда: %lf\n", sum);
printf("Сумма по формуле: %f\n", exp(x));
printf("Количество итераций: %ld", n);
return 0;
}

Решение задачи: «Численно убедиться в справедливости разложения функции»

textual
Листинг программы
printf("Введите x: ");
scanf("%lf", &x);
printf("Введите точность: ");
scanf("%lf", &eps);
 
n = 1;
sum = 1.;
do
{
    sl=1. -4.0*x*x/(M_PI*M_PI*(2.*n-1.)*(2.*n-1.));
    sum *= sl;
   n++;
}while (fabs(sl-1.) > eps);
printf("Сумма ряда: %lf\n", sum);
printf("Сумма по формуле: %f\n", cos(x));
printf("Количество итераций: %ld", n);

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

  1. Ввод значений переменных x и eps с помощью функции scanf.
  2. Инициализация переменных n и sum.
  3. Запуск цикла do-while, который выполняется до тех пор, пока значение sl не будет равно 1 с точностью eps.
  4. Внутри цикла вычисляется значение sl по формуле 1-4xx/(M_PIM_PI(2n-1)(2*n-1)).
  5. Значение sl умножается на sum, обновляя его.
  6. Увеличивается значение n.
  7. Выводится значение sum ряда.
  8. Вычисляется значение cos(x) по формуле cos(x).
  9. Выводится значение cos(x).
  10. Выводится количество итераций цикла.

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


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

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

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