Задача на рекурсивную последовательность С++
Доказать, что рекурсивная последовательность (изображение) имеет предел при n→∞ и найти значение этого предела. Определить глубину рекурсии во время расчета. Я не могу понять как найти значение предела, помогите пожалуйста.
Вот мой код:
#include <iostream>
#include <cmath>
using namespace std;
int depth=0;
double R1(double n)
{
if (n == 1)
return 1;
else
depth++;
return 2 * R1(n - 1);
}
double R2(double n)
{
if (n == 1)
return 1;
else
return 8 / (R2(n - 1) * R2(n - 1));
}
double R3(double n)
{
if (n == 1)
return 1;
else
return (R1(n) + R2(n)) / 3;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Да предел-то найти несложно, он равен 2.
Просто если предел есть, то, подставив предельное значение справа, мы получим его и слева...
Решая это уравнение относительно a, находим, что a=2...
Ну, а глубину рекурсии, раз не задана точность счета, можно оценить так:
int main(int argc, char * argv[])
{
int n = 0;
double a = 1;
for(double b = 0; abs(a-b) > 0; n++)
{
b = a;
a = (2*a+8/a/a)/3;
}
cout << "n = " << n << endl;
cout << "a = " << a << endl;
}
Результат расчета смотрите здесь: https://ideone.com/C2bFPQ
Ну, а доказывать, что предел существует, можно с помощью теоремы Банаха.

