Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
ZveRb34
5 / 5 / 0
Регистрация: 23.11.2011
Сообщений: 83
1

Метод Гаусса для СЛАУ

27.05.2014, 03:06. Просмотров 1374. Ответов 1
Метки нет (Все метки)

Здравствуйте, вот код, консоль запускается, но никакого вывода нет.
OpenMP подключил.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <omp.h>
#include <math.h>
#include <string.h>
 
#define M 800
 
long double MA[M][M+1], MA2[M][M+1], V[M+1], X[M], MAD, OTV[M];
 
int printMatrix(){
 
return 0;
 
    int k, d;
    for (k = 0; k < M; k++){
        for (d = 0; d <= M; d++){
            printf("%.2Lf ", MA[k][d]);
        }
        printf("\n");
    }
    printf("\n");
}
 
int main(int args, char **argv){
    int size, i, j, v, k, d, p, J;
 
    int * mas;
    long double MAX;
    double wtime1, wtime2, wtick;
 
 
    for (i = 0; i < M; i++){
        for (j = 0; j <= M; j++){
            fscanf(stdin, "%Lf", &MA[i][j]);
        }
    }
 
    printMatrix();
 
    memcpy(MA2, MA, sizeof(long double)*M*(M+1));
 
    wtime1 = omp_get_wtime();
    for (i = 0; i < M; i++){
 
        printMatrix();
 
        MAX = fabsl(MA[i][i]);
        J = i;
        for (j = i+1; j < M; j++){
            if (fabsl(MA[j][i]) > MAX){
                MAX = fabsl(MA[j][i]);
                J = j;
            }
        }
 
        if (J != i){
            memcpy(V, &MA[i][i], sizeof(long double)*(M+1-i));
            memcpy(&MA[i][i], &MA[J][i], sizeof(long double)*(M+1-i));
            memcpy(&MA[J][i], V, sizeof(long double)*(M+1-i));
        }
 
        printMatrix();
 
        if (MA[i][i] != 0){
            for (j = M; j >= i; j--)
                MA[i][j] /= MA[i][i];
        }else{
            fprintf(stderr, "Система не совместна\nMA[%d]=%.2Lf MA[%d][%d] = %.2Lf\n", i, MA[i][i], i, j, MA[i][j]);
            return 0;
        }
 
        printMatrix();
 
        for (k = i+1; k < M; k++){
            for (d = M; d >= i; d--){
 
                MA[k][d] -= MA[k][i]*MA[i][d];
            }
        }
 
        printMatrix();
    }
 
    for ( i = 0; i < M; i++ )
        X[i] = MA[i][M];
 
    for ( i = M - 2; i >= 0; i-- )
        for ( j = i + 1; j < M; j++ )
            X[i] -= X[j] * MA[i][j];
    wtime2 = omp_get_wtime();
 
    fprintf(stderr, "Время работы программы %.9f\n", wtime2-wtime1);
 
    for (i = 0; i < M; i++){
        MAD = 0;
        for (j = 0; j < M; j ++){
            MAD += MA2[i][j]*X[j];
        }
        MAD -= MA2[i][M];
        if (i < M-1)
            printf("%.12Lf+", MAD);
        else
            printf("%.12Lf\n", MAD);
    }
    printf("\n");
 
 
return 0;
}
Вот что выдает:
Метод Гаусса для СЛАУ
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 03:06
Ответы с готовыми решениями:

Реализовать метод Гаусса для расчета СЛАУ
Всем доброго времени суток) Уважаемые знатоки,помогите разобраться ) нужно реализовать метод Гаусса...

Метод Гаусса решения СЛАУ
Прошу помочь с составлением программы, позволяющей решать системы линейных уравнений методом Гаусса...

МНК (метод наименьших квадратов) в базисе факториальных многочленов. СЛАУ методом Гаусса
Все верно? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; using...

Решение СЛАУ методом Гаусса для 3 уравнений с 2-мя неизвестными
Нужно создать функцию для решения СЛАУ методом Гаусса для 3 уравнений с 2-мя неизвестными ...

Ошибка в программе для решения СЛАУ методом Гаусса
Здравствуйте помогите пожалуйста! Не могу найти ошибку в программе :( Алгоритм такой: среди...

1
Вованя
153 / 148 / 66
Регистрация: 20.02.2014
Сообщений: 552
Завершенные тесты: 1
27.05.2014, 11:21 2
C
1
2
3
4
5
6
int printMatrix(){
 
return 0;  // Это вообще зачем тут?
 
    int k, d;
    for (k = 0; k < M; k++){
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2014, 11:21

Разработать программу для решения СЛАУ методом Гаусса
Разработать программу для решения СЛАУ методом Гаусса есть код, но во первых он не работает во...

Метод Гаусса, для нахождения обратной матрицы
Доброго времени суток, уважаемые форумчане! Большая просьба, проверьте код на правильность Это...

Решение СЛАУ методом Гаусса
Задание 7. Алгоритм Гаусса. Реализовать алгоритм решения СЛАУ методом Гаусса. Ограничения:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.