Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/58: Рейтинг темы: голосов - 58, средняя оценка - 4.72
Space Monkey
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 3
1

Программа на решение СЛАУ методом Якоби

14.06.2012, 18:31. Просмотров 11712. Ответов 3
Метки нет (Все метки)

Вывести значение решения и количество итераций
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2012, 18:31
Ответы с готовыми решениями:

Решение СЛАУ методом Якоби
Пытаюсь реализовать метод решения системы линейных уравнений методом Якоби. ...

Решение СЛАУ методом Якоби
Решить СЛАУ методом Якоби. Вывести значения решения, график зависимости нормы...

Решение СЛАУ методом вращений (Якоби)
помогите, может у когото имеется приложение (на языке Pascal или C++), Решение...

Почему программа прерывается с ошибкой? Реализовывал решение СЛАУ методом Гаусса
#include <iostream> #include <cmath> using namespace std; int main() { ...

Решение СЛАУ методом отражений
Всем привет. Задали писать курсач. Нужно реализовать метод отражения....

3
mimilbek
9 / 9 / 4
Регистрация: 13.04.2013
Сообщений: 125
Завершенные тесты: 1
11.11.2014, 14:27 2
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
112
#include <iostream>
#include <fstream>
#include <math.h>
#include <omp.h>
#include <cstdlib> 
using namespace std;
 
 
void Mul(int N, double **A,double *x,double *y)
{
    for (int i = 0; i<N; i++)
    {   
        y[i] = 0;
        for (int j = 0; j<N; j++)
            y[i] = y[i] + (A[i][j] * x[j]);
    }
}
 
 
void PrintMatrix(int N, double **A )
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            cout << A[i][j]<<" ";
        cout << endl;
    }
}
void PrintVec(int N, double *A)
{
    for (int i = 0; i < N; i++)
    {
            cout << A[i] << " ";
    }
    cout << endl;
}
void Jacobi(int N, double**A, double* F, double* X)
{
    double eps=0.001,norm,* TempX = new double[N],start,end;
    //start=omp_get_wtime();
    for(int k=0;k<N;k++)
        TempX[k]= X[k];
    int cnt = 0;
    start=omp_get_wtime();
    do {
        for (int i = 0; i < N; i++) 
        {
            TempX[i] = F[i];
            for (int g = 0; g < N; g++) 
                if (i != g)
                    TempX[i] -= A[i][g] * X[g];
            TempX[i] /= A[i][i];
        }
        norm = abs(X[0] - TempX[0]);
        for (int h = 0; h < N; h++) 
        {
            if (abs(X[h] - TempX[h]) > norm)
                norm = abs(X[h] - TempX[h]);
            X[h] = TempX[h];
        }
        cnt++;  
    } 
    while (norm > eps);
    end = omp_get_wtime();
    cout<<"Количество итераций = "<<cnt<<endl;
    printf_s("Затрачено %f сек\n", (end-start));
    delete[] TempX;
}
void Load(int &N, double **&A, double *&F)
{
    setlocale(0,"");
    ifstream fin;
    fin.open("input.txt");
    fin >> N;
    F = new double [N];
    A = new double *[N];
        for (int i = 0; i < N; i++)
            A[i] = new double[N];
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
                fin >> A[i][j];
            fin >> F[i];
        }
    fin.close();
}
 
int main()
{
    double **Matrix, *b,*y,*x;
    int n;
    Load(n, Matrix, b);
    cout << "Матрица:\n";
    PrintMatrix(n, Matrix);
    cout << "b: ";
    PrintVec(n, b);
    x = new double[n];
    for(int i=0;i<n;i++)
        x[i]=1.0;
    y = new double[n];
    cout<<endl<<b[1]<<endl;
    Jacobi(n, Matrix, b, x);
    cout << "Результат | x: ";
    PrintVec(n, x);
    cout << "A*x=b | b: ";
    Mul(n, Matrix, x, y);
    PrintVec(n, y);
    delete x;
    delete y;
    system("pause");
    return 1;
}

Реализован подсчет времени выполнения метода
1
Apokalipsis36
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 3
10.01.2016, 16:32 3
А какое ты приложение создавал, консольное или пустое?
0
mimilbek
9 / 9 / 4
Регистрация: 13.04.2013
Сообщений: 125
Завершенные тесты: 1
15.12.2016, 17:49 4
Пустое
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2016, 17:49

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

Решение СЛАУ методом Гаусса
Всем привет))) Друзья, сколько я уже лазию по инету и по этому форуму, я никак...

Решение СЛАУ методом вращения
Доброго времени суток, товарищи. Имеется задание: дано интегральное...


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

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

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