Re: Рекурсия
От: Eugene Sh Россия  
Дата: 19.11.05 14:25
Оценка:
Давай уточним: надо использовать рекурентное соотношение или рекурсию в программе?

И ещё одно уточнение. Когда программа должна заканчивать работу: когда |y(n)-y0| < e или |y(n)-y(n-1)| < e? Вычисления, которые я провел, показывают, что первое условие не достигается никогда.

Вот код, который написан для случая:
1) Используется рекурентное соотношение. Рекурсия в программе не используется
2) Программа останавливается при выполнении условия |y(n)-y(n-1)| < e


#include <math.h>
#include <iostream>
using namespace std;

double f(double x, double y_prev)
{
    return cos(y_prev) * cos(y_prev) / (x + y_prev);
}

int main()
{
    double x = 3.4;
    double y0 = 0.7;
    double eps = 1e-5;

    double y_curr = y0;
    double y_prev;
    do
    {
        y_prev = y_curr;
        y_curr = f(x, y_prev);
    } while (fabs(y_curr - y_prev) > eps);

    cout << "y = " << y_curr << endl;

    return 0;
}



Ответ, который выдает программа: y = 2.5599
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.