0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 37
1

рекуррентное соотношение

16.10.2018, 00:09. Показов 2652. Ответов 7
Метки нет (Все метки)

Помогите, пожалуйста, вычислить рекуррентное соотношение в бесконечном ряду.
Миниатюры
рекуррентное соотношение  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2018, 00:09
Ответы с готовыми решениями:

Рекуррентное соотношение
Записать рекуррентное соотношение для нахождения n-го члена ряда и суммы n членов. Использовав...

Рекуррентное соотношение
В общем такая задача: Написать программу, вычисляющую сумму ряда для задаваемого значения x с...

рекуррентное соотношение 1/(1-x)
Не могу понять рекуррентное соотношение для 1/(1-x),помогите. Рекомендуется сначала сделать эту...

Рекуррентное соотношение для вычисления n члена ряда и суммы n членов
Записать рекуррентное соотношение для вычисления n члена ряда и суммы n членов. Используя...

7
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
16.10.2018, 00:26 2
Чего-то в супе не хватает. Точнее говоря, в условии задачи.
По идее, ряд в показателе степени должен быть сходящимся. Но без дополнительных ограничений, при x близких к -a/2 ряд расходится. Понятно безо всяких вычислений, что при x = -a/2 значение всего выражения будет равно бесконечности.
0
0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 37
16.10.2018, 00:33  [ТС] 3
в условии указано для https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{2}<{(2x+a)}^{2}
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
16.10.2018, 01:05 4
Лучший ответ Сообщение было отмечено chpokhead как решение

Решение

Вычисление ряда для показателя степени двойки - как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cmath>
 
using namespace std;
 
double seriesValue(double a, double x, double eps = 1e-6) {
    double part = a / (2 * x + a);
    double member = part;
    double sum = member;
    int cnt = 2;
    
    part *= part;
    
    do {
        member *= part;
        sum += member  / (2 * cnt - 1);
        ++cnt;
        // cout << sum << '\t' << member << endl;  // можно посмотреть как считает ))
    } while (abs(member) > eps);
    
    return sum;
}
 
int main()
{
    cout << "seriesValue() = " << seriesValue(0.51, 0.26) << endl;
}
Остальное тривиально.
1
0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 37
18.10.2018, 01:29  [ТС] 5
Спасибо большое! Все работает, а как вы пришли к этой формуле, которую используете в цикле?
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
18.10.2018, 01:56 6
chpokhead, напишите оригинал условия задачи
0
0 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 37
18.10.2018, 02:11  [ТС] 7
Вычислить значение суммы членов бесконечного ряда с точностью до члена ряда, меньшего eps = 1e-4 для https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{2}<{(2x+a)}^{2}, и значение функции ln(x+a) для проверки.Задачу решить, используя реккурентные зависимости.
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
18.10.2018, 04:48 8
Лучший ответ Сообщение было отмечено chpokhead как решение

Решение

Цитата Сообщение от chpokhead Посмотреть сообщение
а как вы пришли к этой формуле, которую используете в цикле?
Долгими годами тяжёлого изнурительного труда...

Вообще-то это достаточно распространённый приём для вычисления таких рядов.
Если записать ряд в рекуррентнной форме, то получится:

https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y}_{1}=\frac{a}{2x + a}
https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y'}_{n}={Y'}_{n-1}\cdot \frac{{a}^{2}}{{(2x + a)}^{2}}={Y'}_{n-1}\cdot {{Y}_{1}^{2}}
https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y}_{n}={Y'}_{n}\cdot \frac{1}{(2n - 1)}

Собственно это и реализовано в коде. Переменная part инициализируется значением https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y}_{1}.
Переменная member - это текущий член ряда https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y}_{i}.
Потом значение переменной part возводим в квадрат - получаем https://www.cyberforum.ru/cgi-bin/latex.cgi?{{Y}_{1}}^{2}.
Предыдущее значение member умножаем на part - получаем https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y'}_{i}.
Получаем окончательное значение, разделив https://www.cyberforum.ru/cgi-bin/latex.cgi?{Y'}_{i} на https://www.cyberforum.ru/cgi-bin/latex.cgi?2n - 1, которое и прибавляем к частичной сумме ряда. Переменная cnt - номер члена ряда (в формулах это n) начинает работать со второго члена ряда. Поэтому инициализируется двойкой.
Всё.

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

Особенно это даёт преимущество, когда в формуле используются факториалы, и следующий член ряда можно вычислить, используя предыдущий, без вычисления самого факториала. Если такой ряд считать "в лоб", то вычисления могут закончиться очень быстро с диагнозом "переполнение".
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2018, 04:48
Помогаю со студенческими работами здесь

Реализовать рекурсивную функцию умножения двух натуральных чисел, используя рекуррентное соотношение
Написать программу решения на с++. Помогите, пожалуйста.

Рекуррентное образование матрицы
По двум заданным матрицам X и Y размерности n  m вычислить матрицу X5 согласно следующему...

Рекурсивная функция вычисляющая рекуррентное выражение
Доброго времени суток. Помогите пожалуйста с рекурсией На паскале что-то подобное записывается...

Вычислить простое рекуррентное выражение. Вывести на экран таблицу значений функций
Вычислить простое рекуррентное выражение. Вывести на экран таблицу значений функций , Прошу помочь.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru