Метод простых итераций С++

Как сделать код чтобы она решала систему нелинейных уравнений с двумя переменными методом простых итераций

Это нужно реализовать это так чтобы пользователь вводил к-во итераций, точность, и начальное приближение.


Ответы (1 шт):

Автор решения: Harry

Немного преобразуем систему, выразив y из второго уравнения и подставив в первое. Дальше все просто.

int main(int argc, const char * argv[])
{
    const double eps = 1e-8;
    double y = 1, x = 1;
    while(true)
    {
        double xx = x, yy = y;
        x = sqrt(34-15/x/x);
        y = 15/x;

        if (abs(xx-x)< eps && abs(yy-y)< eps) break;
    }

    cout << "x = " << x << ", y = " << y << endl;
}

На самом деле решений 4, но, понятно, что процесс сходится только к одному решению (не может же он одновременно сходиться к четырем :))

В силу симметрии из решения (x,y) получаются решения (y,x), (-x,-y) и (-y,-x)...

→ Ссылка