Aleksandr89
Ученик
- Регистрация
- 19 Ноя 2009
- Сообщения
- 6
- Реакции
- 0
- Баллы
- 0
Помогите найти ошибку в коде С++
Надо решить СЛАУ методом Якоби
вот код:
#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 = -C;
for (int j = 0; j < n; j++)
{
if (i != j)
{
X1 += A[j] * X[j];
}
}
X1 /= -A;
}
maxdelta = fabs(X[0] - X1[0]);
for (int i = 0; i < n; i++)
{
if (maxdelta < fabs(X - X1))
maxdelta = fabs(X - X1);
X = X1;
}
}
for (int i = 0; i < n; i++)
printf("X[%i] = %5.2f\n", i+1, X);
system ("pause");
}
никак не могу найти ошыбку.......
Надо решить СЛАУ методом Якоби
вот код:
#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 = -C;
for (int j = 0; j < n; j++)
{
if (i != j)
{
X1 += A[j] * X[j];
}
}
X1 /= -A;
}
maxdelta = fabs(X[0] - X1[0]);
for (int i = 0; i < n; i++)
{
if (maxdelta < fabs(X - X1))
maxdelta = fabs(X - X1);
X = X1;
}
}
for (int i = 0; i < n; i++)
printf("X[%i] = %5.2f\n", i+1, X);
system ("pause");
}
никак не могу найти ошыбку.......