Вычисление суммы ряда

239
09 декабря 2021, 18:20

мне нужно сделать код так, чтобы получился пример под цифрой 2 но код я смог сделать только так, что у меня получается пример под цифрой 1 Как мне это переделать? 1. 1+1/2^2!+ 1/3^2!+ 1/4^2!+ 1/5^2!+... до Вводимого числа E 2. 0,001^2+0,002^2/2!+ 0,003^2/3!+...до Вводимого числа E

#include <iostream>
#include <math.h>

int main()
{
   using namespace std;
   float e, s, i = 1, f = 1, prev;
   cout << "value for e =";
   cin >> e;
   s = 0;
   do
   {
       s = s + pow((1 / f), 2);
       i++;
       prev = 1 / f;
       f *= i;
       cout << "s="<< s<< endl;
   } while (1 / f >= e);
   return 0;
}
Answer 1

Вот как лучше сформулировать задание:

Нужно вычислить сумму ряда

для x=0.001, останавливая вычисления, когда очередной член становится меньше вводимого значения eps.

Тогда все просто - лучше только не "в лоб", а заметить, что отношение соседних членов равно

Тогда очень просто получается нужный код:

int main(int argc, const char * argv[])
{
    double x = 0.001;
    double eps;
    cin >> eps;
    double term = 1, sum = 1;
    for(int n = 2;term > eps; ++n)
        sum += (term *= double(n)/(n-1)/(n-1));
    sum *= x*x;
    cout << sum << endl;
}

Второй вариант - вычисление суммы для N членов - столь же простое:

int main(int argc, const char * argv[])
{
    double x = 0.001;
    int N;
    cin >> N;
    double term = 1, sum = 1;
    for(int n = 2; n <= N; ++n)
        sum += (term *= double(n)/(n-1)/(n-1));
    sum *= x*x;
    cout << sum << endl;
}

P.S. Правда, есть одна хитрость - чисто с точки зрения машинной точности такие суммы лучше считать от малых членов к большим, но для данного задания это уже перебор :)

А вообще, в пределе эта сумма равна

Answer 2

Можно здесь (?). Тут - же вы написали прогрессию гармонического ряда для степени 2, что разве неясно чему она равна. Ну или = Пи в квадрате / на 6. А в Результат также можно добавить будет 0. Всё. Компьютерных алгоритмов не знаю и не знаю: как писать шифры.

READ ALSO
Сортировка массива объектов по string полю

Сортировка массива объектов по string полю

Есть такой класс администратора

71
Как найти длину гипотезузы?

Как найти длину гипотезузы?

найти значения длины гипотенузы в прямоугольном треугольнике с целыми сторонами, если 1 из катетов (H) Н-простое числоH=(2<=H<=10^4)

147
Не могу понять, почему ругается компилятор

Не могу понять, почему ругается компилятор

Решил попробовать создать двоичный тип данных для вводимых чисел, а также функции конъюнктирования и дизъюнктирования к нимОднако в какой-то...

87