там обе суммы от функции и ряда должны давать одинаковую цифру или близкую
доработать код
не правильно разложен ряд
чтобы в цикле его сложить итерационно
#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% |