Доработать код на СИ, не С++

Выполнен
Заказ
6273791
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
4 Окт 2024 в 20:00
Цена
Договорная
Блокировка
10 дней
Размещен
4 Окт 2024 в 16:06
Просмотров
24
Описание работы

там обе суммы от функции и ряда должны давать одинаковую цифру или близкую


доработать код

не правильно разложен ряд

чтобы в цикле его сложить итерационно


#include

#include

#include

#include


#define E 1e-7 // Заданная точность


double function(double x)

{

  return 3 / ((1-x)*(1+2*x));

}


double summ(double x) 

{

  double S = 0.0; // Начальная сумма

  double xn = 1.0; // x^n для n=0

  double neg2x_n = 1.0; // (-2*x)^n для n=0

  int n = 0; // Индекс ряда

  double term = 0;


  do {

    // Вычисляем текущий член ряда

    double term = xn + 2 * neg2x_n;

    S += term; // Добавляем член к сумме


    // Обновляем значения x^n и (-2x)^n для следующей итерации

    xn *= x; // Умножаем на x для n+1

    neg2x_n *= -2 * x; // Умножаем на -2*x для n+1


    // Переходим к следующему члену

    n++;

  } while (fabs(term) >= E); // Проверка на точность


  return S;

}


int main() {

  setlocale(LC_ALL, "Russian");

  /*Сумма функции*/

  double f = 0;

  /*Сумма ряда*/

  double sumrow = 0;

  /*Переменная с экрана*/

  double x = 0;


  /* Вывод на экран x */

  printf("Введите значение x от -0,5 до 0,5) : ");

  /* Ввод значение x */

  scanf("%lf", &x);


  if(x >= fabs(0.5))

  {

    printf("Ошибка ввода!!!!");

    printf(" Введите значение x от -0,5 до 0,5");

  }


  /*Значение функции*/

  f = function(x);


  printf("Сумма функции: %.10lf\n", f);


  sumrow = summ(x); // Вычисляем сумму

  printf("Сумма ряда = %.10lf\n", sumrow); // Выводим результат


  return 0;

}


вот тут ошибка double summ(double x) 

{

  double S = 0.0; // Начальная сумма

  double xn = 1.0; // x^n для n=0

  double neg2x_n = 1.0; // (-2*x)^n для n=0

  int n = 0; // Индекс ряда

  double term = 0;


  do {

    // Вычисляем текущий член ряда

    double term = xn + 2 * neg2x_n;

    S += term; // Добавляем член к сумме


    // Обновляем значения x^n и (-2x)^n для следующей итерации

    xn *= x; // Умножаем на x для n+1

    neg2x_n *= -2 * x; // Умножаем на -2*x для n+1


    // Переходим к следующему члену

    n++;

  } while (fabs(term) >= E); // Проверка на точность


  return S;

}

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
24 минуты
Выполнен в срок
Предыдущий заказ
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир