метод зейделя c



Автор Џна Сорокина задал вопрос в разделе Другие языки и технологии

Помогите написать программу в C++ Метод Зейделя для систем не линейных уравнений и получил лучший ответ

Ответ от
// Условие окончания
bool converge(double *xk, double *xkp)
{
double norm = 0;
for (int i = 0; i < n; i++)
{
norm += (xk[i] - xkp[i])*(xk[i] - xkp[i]);
}
if(sqrt(norm) >= 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; j < n; j++)
var += (a[i][j] * p[j]);
x[i] = (b[i] - var) / a[i][i];
}
}
while (!converge(x, p));

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Помогите написать программу в C++ Метод Зейделя для систем не линейных уравнений
Метод Гаусса — Зейделя решения системы линейных уравнений на Википедии
Посмотрите статью на википедии про Метод Гаусса — Зейделя решения системы линейных уравнений
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*