Метод Зейделя.

Решить систему линейных уравненийметодом Зейделя с точностью = 0,001:

5.1. Введите матрицу коэффициентов при неизвестных и матрицу свободных членов.

, .

5.2. Задайте функцию, выполняющую последовательно:

ü приведение системы к нормальному виду;

ü приведение нормальной системы к виду, пригодному для итерационного процесса Зейделя;

ü реализация итерационного процесса Зейделя. Аргументы функции: А - матрица исходной системы, B - вектор-столбец свободных членов, - точность решения. Функция возвращает решение системы и его погрешность.

Замечание: При наборе оператора if: , сделайте слева команду Add Line дважды и получите

5.3. Решите систему, используя эту функцию:

5.4. Проверьте решение:

6. Метод Гаусса — Зейделя.Отладьте программы и проверьте их решение на примерах, выданных преподавателем.

6.1. Пример реализация на С++

// Условие окончанияbool converge(double *xk, double *xkp){ for (int i = 0; i < n; i++) { if (fabs(xk[i] - xkp[i]) >= eps) return false; } return true;} /* Ход метода, где: a[n][n] - Матрица коэффициентов x[n], p[n] - Текущее и предыдущее решения b[n] - Столбец правых частей Все перечисленные массивы вещественные и должны быть определены в основной программе, также в массив x[n] следует поместить начальное приближение столбца решений (например, все нули)*/ do{ for (int i = 0; i < n; i++) p[i] = x[i]; for (int i = 0; i < n; i++) { double var = 0; for (int j = 0; j < i; j++) var += (a[i][j] * x[j]); for (int j = i + 1; j < n; j++) var += (a[i][j] * p[j]); x[i] = (b[i] - var) / a[i][i]; }}while (!converge(x, p));