Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 12.01.2019
Сообщений: 9
1

Решение пятидиагональной СЛАУ методом прогонки

12.01.2019, 18:32. Показов 1454. Ответов 1
Метки нет (Все метки)

помогите пожалуйста срочно!Дано задание,где нужно решить 5-диагональную(это важно) СЛАУ методом прогонки.Искала на данном форуме,нашла,но работает код не правильно,может у кого-нибудь есть работающий код??Этот не работает,проверяла в Maple.
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
#include "conio.h"
#include <cmath>
#include <iostream>
#include <ctime>
 
using namespace std;
 
 
int main()
{
    int i, n, k, n1, A1 = -100, B1 = 100, N1, N = 2; //N - размер диагонали, N1 - для рандома, n1 - размер матрицы
    double z;
 
    N1 = B1 - A1 + 1; //для рандома, в каком диапозоне
 
    cout << "Vvedite razmernost matrici: ";
    cin >> n1;
    srand(10);
    /*cout << "Vvedite " << n1 << " strok po " << n1 << " 4isel:" << endl;
    for (i = 0; i<n1; i++)
    for (k = 0; k<n1; k++)
    cin >> A[i][k];*/
    double **A = new double*[n1];
    for (int i = 0; i < n1; i++)
    {
        A[i] = new double[n1];
    }
    for (int i = 0; i < n1; i++)
    {
        for (int j = 0; j < n1; j++)
        {
            A[i][j] = 0;
        }
    }
    cout << "Matrix A:" << endl;
    cout << "--------------------" << endl;
    for (int i = 0; i < n1; i++)
    {
        for (int j = 0; j < n1; j++)
        {
            if (((i <= j + N) && (i >= j - N)) || (i == j))
                A[i][j] = (rand() % N1 + A1) / 10.0;
            cout << A[i][j] << ' ';
        }
 
        cout << endl;
    }
    cout << "--------------------" << endl << endl;
 
    /*cout << "Vvedite " << n1 << " 4isel:" << endl;
    for (i = 0; i<n1; i++)
    cin >> B[i];*/
    double *B = new double[n1];
    cout << "Matrix B:" << endl;
    cout << "--------------------" << endl;
    for (int i = 0; i < n1; i++)
    {
        B[i] = (rand() % (12) - 1) / 10.0;//(rand() % N1 + A1) / 10.0;
        cout << B[i] << ' ';
        cout << endl;
    }
    cout << "--------------------" << endl << endl;
    /*cout << "Matrix B:" << endl;
    for (i = 0; i<n1; i++)
    cout << B[i] << endl;*/
 
    n = n1 - 1;
    double *eps = new double[n1];
    double *X = new double[n1];
    double *et = new double[n1];
    eps[0] = -A[0][1] / A[0][0];
    et[0] = B[0] / A[0][0];
 
    for (i = 1; i<n; i++)
    {
        z = A[i][i] + A[i][i - 1] * eps[i - 1];
        eps[i] = -A[i][i + 1] / z;
        et[i] = (B[i] - A[i][i - 1] * et[i - 1]) / z;
    }
 
    X[n] = (B[n] - A[n][n - 1] * et[n - 1]) / (A[n][n] + A[n][n - 1] * eps[n - 1]);
 
    for (i = n - 1; i >= 0; i--)
        X[i] = eps[i] * X[i + 1] + et[i];
 
    cout << "Matrix X:" << endl;
    for (i = 0; i<n1; i++)
        cout << X[i] << endl;
 
    double *c = new double[n1]; //проверка
    for (int i = 0; i<n1; i++)
    {
        c[i] = 0;
        for (int k = 0; k<n1; k++)
            c[i] += A[i][k] * X[k];
    }
 
    for (int i = 0; i < n1; i++)
    {
        c[i] = c[i] - B[i];
    }
    cout << endl << "Matrix G:" << endl;
    for (i = 0; i<n1; i++)
        cout << c[i] << endl;
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2019, 18:32
Ответы с готовыми решениями:

Решение СЛАУ методом прогонки
Добрый день,нужно решить СЛАУ методом прогонки,вот СЛАУ и ее решение. коэфф перед х1считается как...

Решение задач динамического программирования методом прямой прогонки
Рассмотреть на любых 2-х примерах. Составить программу на выбор на Pascal,C,C++,C#

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

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

1
0 / 0 / 0
Регистрация: 01.05.2017
Сообщений: 137
05.09.2019, 20:54 2
а подскажите, пожалуйста литературу, где описан метод прогонки для пятидиагональных матриц. перерыл кучу литературы - везде только для трехдиагональных
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2019, 20:54

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Решение СЛАУ методом Жордана
Решить СЛАУ методом Жордана, Вычислить интегральнок выражение методом Симпсона

Решение СЛАУ методом отражений
Добрый вечер :) Было две темы &quot;Решение СЛАУ методом отражений&quot;, но нет реализации) У меня есть...

Решение слау методом релаксации
Доброго времени суток. В качестве исходных данных имеются слау большой размерности (koeff__100.7z)...

Решение СЛАУ методом Зейделя
Методом Зейделя решить с точностью до 0.001 заданную систему уравнений 3.3*x1+2.1*x2+2.8*x3=0.8...


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

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

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