Форум программистов, компьютерный форум CyberForum.ru

Решение СЛАУ методом Гаусса, индексы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
19.03.2012, 13:31     Решение СЛАУ методом Гаусса, индексы #1
Собственно программа решает слау методом гаусса.
Как найти индексы главного элемента на второй итерации?

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
#include <iostream.h>
#include <math.h>
void main(void)
{
int N,i,j,k,l,m,ypos;
cout <<"Enter N: "; // Ввод номера варианта
cin >>N;
double a[4][4]={{0,-20-0.3*N,3,0.1*N},{25,2,-2,1},{-4,-0.1*N,1,16+0.3*N},{2,5,25,-2}},
b[4][1]={{-49-0.5*N},{25*N+11},{-3.9*N+13},{2*N-67}},
ab[4][5]={{0,-20-0.3*N,3,0.1*N,-49-0.5*N},{25,2,-2,1,25*N+11},{-4,-0.1*N,1,16+0.3*N,-
3.9*N+13},{2,5,25,-2,2*N-67}},
glav_elem, // Переменная, для хранения значения главного элемента
buf_elem, x[4][1]={{0},{0},{0},{0}}; // Буферный элемент
cout <<endl<<"Matrix A"<<endl; // Вывод исходной матрицы А
for (i=0; i<4; i++)
{
for (j=0; j<4; j++)
{
cout<<a[i][j]<<" ";
}
cout <<endl;
}
cout <<endl;
cout <<"Matrix B"<<endl; //Вывод исходной матрицы В
for (i=0; i<4; i++)
{
cout<<b[i][0];
cout<<endl;
}
cout <<endl;
cout <<"Matrix AB"<<endl; //Вывод исходной матрицы AВ
for (i=0; i<4; i++)
{
for (j=0; j<5; j++)
{
cout<<ab[i][j]<<" ";
}
cout <<endl;
}
cout <<endl;
for (j=0; j<4; j++) // Цикл по строкам
{
glav_elem=0;
for (i=j; i<4; i++) // Цикл по столбцам
{
if (fabs(ab[i][j])>glav_elem) // Нахождение главных
// элементов
{
glav_elem=fabs(ab[i][j]);
ypos=i; // Номер столбца с главным
//элементом
}
}
for (k=0; k<5; k++) // Цикл по столбцам матрицы АВ
{
buf_elem=ab[j][k]; // Перемещение главного элемента на первое
ab[j][k]=ab[ypos][k]; // место в каждой строке
ab[ypos][k]=buf_elem;
}
for (i=j+1; i<5; i++)
{
double t=(-ab[i][j]/ab[j][j]); // t - делитель, необходимый для
//прямого ходя метода Гаусса
for(k=0; k<5; k++)
{
ab[i][k]=ab[i][k]+ab[j][k]*t; //(-ab[i][j]/ab[j][j]); // Обнуление
// элементов, стоящих ниже главной диагонали
}
}
for (l=0; l<4; l++) // Цикл вывода элементов матрицы АВ
{
for (m=0; m<5; m++)
{
cout<<(ab[l][m])<<" ";
}
cout <<endl;
}
cout <<endl;
}
for (i=3; i>-1; i--) // Цикл по столбцам
{
x[i][0]=(ab[i][4]-ab[i][3]*x[3][0]-ab[i][2]*x[2][0]-ab[i][1]*x[1][0])/ab[i][i];
}
cout <<endl;
for (i=0; i<4; i++) // Вывод матрицы значений искомых неизвестных
{
cout <<"x"<<i+1<<"="<<x[i][0]<<endl;
}
cout <<endl;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
19.03.2012, 17:14     Решение СЛАУ методом Гаусса, индексы #2
Цитата Сообщение от apachan Посмотреть сообщение
Собственно программа решает слау методом гаусса.
Как найти индексы главного элемента на второй итерации?
- посмотри уже готовый алгоритм
Методом Гаусса решить систему n линейных алгебраических уравнений
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
19.03.2012, 22:09  [ТС]     Решение СЛАУ методом Гаусса, индексы #3
- посмотри уже готовый алгоритм
А у меня неготовый?

Я не знаю куда запихнуть цикл, когда столбец=2 (2-ая итерация), чтобы вывести индексы мах по модулю элемента.
-=ЮрА=-
19.03.2012, 22:52
  #4

Не по теме:

Цитата Сообщение от apachan Посмотреть сообщение
А у меня неготовый?
- представь себе нет - у тебя частный случай, по моей ссылке метод Гаусса в общем виде
Ладно раз готовый тогда прости что отнял время...

apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
20.03.2012, 18:29  [ТС]     Решение СЛАУ методом Гаусса, индексы #5
- представь себе нет - у тебя частный случай, по моей ссылке метод Гаусса в общем виде
Это понятно, что частный случай, упрощено, чтобы каждый раз не вводить матрицы.
Вопрос то конкретный, вывод индексов, не понимаю как мне может помочь в этом помочь ваша программа
-=ЮрА=-
Заблокирован
Автор FAQ
21.03.2012, 10:42     Решение СЛАУ методом Гаусса, индексы #6
Цитата Сообщение от apachan Посмотреть сообщение
чтобы каждый раз не вводить матрицы.
- ты так ничего и не понял, дело было абсолютно не в статическом задании матриц, о вводе вообще речи не ввёл.
Логика неверная в алгоритме!

Не по теме:

Блондинка сдаёт на права, сдают езду в городе, инструктор решил посмотреть на истиноое вождение подопечной. Перекрёсток впереди грузовик, блондинка не сбавляя скорости врезается на всём ходу в его борт. Уже в больнице разговор блондинки и инструктора:
-Почему вы не нажжимали на педаль тормоза
-А что надо?Раньше перед грузовиками наша инструкторская машина сама останавливалась...

apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
21.03.2012, 13:02  [ТС]     Решение СЛАУ методом Гаусса, индексы #7
Логика неверная в алгоритме!
Что конкретно неверно? Результаты обе программы выдают одинаковые...
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
28.03.2012, 10:40  [ТС]     Решение СЛАУ методом Гаусса, индексы #8
Другой вопрос: при проходе по любому нужному столбцу столбцу как сохранить его элементы в отдельный массив и уже среди них найти максимальный и вывести его индексы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 17:00     Решение СЛАУ методом Гаусса, индексы
Еще ссылки по теме:

C++ Решение СЛАУ методом Гаусса
СЛАУ методом Гаусса C++
C++ Почему программа прерывается с ошибкой? Реализовывал решение СЛАУ методом Гаусса

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

Или воспользуйтесь поиском по форуму:
apachan
13 / 13 / 2
Регистрация: 07.12.2010
Сообщений: 127
11.04.2012, 17:00  [ТС]     Решение СЛАУ методом Гаусса, индексы #9
вверх
Yandex
Объявления
11.04.2012, 17:00     Решение СЛАУ методом Гаусса, индексы
Ответ Создать тему
Опции темы

Текущее время: 20:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru