Пусть дан бесконечный ряд,найти его сумму. Вот что я написал сам:
//Найти сумму бесконечного ряда
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cmath>
#include <math.h>
using namespace std;
int main()
{
int x = 1;
int n = 1;
double an = x / 2., S = an;
while (fabs(an) > 2)
{
an *= -1 * (x + 1) * (2 * n + 1) / (2 * n + 1);
S += an;
n++;
}
cout << setw(3) << an << " " << S << " " << n << "\n";
system("pause");
return 0;
}
Что мне тут нужно исправить?Помогите пожалуйста с задачкой.
double x;
cin >> x;
cout << (x-sin(x)) << endl;
Это если надо быстро и точно :)
Если надо помучиться - надо считать сумму...
double Series(double x, double eps)
{
double term = x*x*x/6, sum = term;
x = x*x;
for(int n = 4; abs(term) > eps; n+=2)
sum += term *= -x/(n*(n+1));
return sum;
}
int main()
{
for(double x = 0; x < 1; x += 0.1)
cout << setw(5) << x << setw(12) << x-sin(x) << setw(12) << Series(x,1e-7) << endl;
}
Полный код здесь.
можно сделать так:
double func(const double x) {
return sin(x) - x;
}
:)))
но если написать код, то можно использовать итерационный подход
f(n) / f(n-1) = (-1) * x^2 / (2n * (2n + 1))
f(1) = -x^3 / 6
вы используете этот принцип, но ошиблись с формулой
и по идее подсчёт можно останавливать когда
fabs(S(n) - S(n-1)) < epsilon
где epsilon = 1e-10
например
можно конечно было бы сделать что S(n) == S(n-1)
, то при схождении ряда возможно колебание вокруг значения из-за ограниченной точности чисел с плавающей запятой
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Написал алгоритм который должен сортировать числа в порядке возрастанияВвод через 1 строку
Пытаюсь я считать число из файла и сразу же вывести его в консоль, а выводиться неинициализированный участок памяти, а все данные из файла...