Показать сообщение отдельно
Старый 20.11.2009, 18:04   #1 (permalink)
Aleksandr89
Новичок
 
Регистрация: 19.11.2009
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите найти ошибку в коде С++

Надо решить СЛАУ методом Якоби
вот код:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int n = 4;
int A[4][4] = {{2, 0, 7, 1},{0, 2, 0, 0},{1, 2, -1, -1},{-1, -2, 1, 2}};
int C[4] = {11, 6, 2, 0};
float X[4] = {1, 1, 1, 1}, X1[4];
float delta = 0.05;
float maxdelta = 1;
while ( maxdelta >= delta )
{
for (int i = 0; i < n; i++)
{
X1[i] = -C[i];
for (int j = 0; j < n; j++)
{
if (i != j)
{
X1[i] += A[i][j] * X[j];
}
}
X1[i] /= -A[i][i];
}
maxdelta = fabs(X[0] - X1[0]);
for (int i = 0; i < n; i++)
{
if (maxdelta < fabs(X[i] - X1[i]))
maxdelta = fabs(X[i] - X1[i]);
X[i] = X1[i];
}
}
for (int i = 0; i < n; i++)
printf("X[%i] = %5.2f\n", i+1, X[i]);
system ("pause");
}

никак не могу найти ошыбку.......
Aleksandr89 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070