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

метод Гаусса - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
aank10
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 121
08.06.2011, 13:42     метод Гаусса #1
Знаю что тема поднималась много раз но все же, можете продемонстрировать решение хотя бы 3 уравнений (желательно 4) но без считывания и записи из файла, и максимально просто.
2х+у-z=8
-3x-y+2z=-11
-2x+y+2z=-3
система взята с википедии она точно решается. По форуму полазил и нашел метод Гаусса но так как он там описан разобраться в нём тяжело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 13:42     метод Гаусса
Посмотрите здесь:

Метод Гаусса в С++ C++
Метод Гаусса C++
метод Гаусса C++
метод гаусса C++
C++ Метод Гаусса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
08.06.2011, 13:46     метод Гаусса #2
метод Гаусса
aank10
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 121
08.06.2011, 14:26  [ТС]     метод Гаусса #3
Цитата Сообщение от pito211 Посмотреть сообщение
я уже искал и если б смог самостоятельно разобраться то совета не спрашивал бы.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
08.06.2011, 15:43     метод Гаусса #4
учи мат часть, если не понимаешь, что тут ещё можно поделать?
aank10
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 121
08.06.2011, 15:57  [ТС]     метод Гаусса #5
Цитата Сообщение от pito211 Посмотреть сообщение
учи мат часть, если не понимаешь, что тут ещё можно поделать?
в ручную решить могу , а вот запрограммировать пока не получается.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
08.06.2011, 16:04     метод Гаусса #6
начни. Я бы на твоём месте определил
оператор-(vector& vct1, vector vct2);
оператор*(const double &d, vector& vct);
kjahert
48 / 48 / 5
Регистрация: 08.04.2011
Сообщений: 124
08.06.2011, 16:08     метод Гаусса #7
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
const int n=4;  ///размерность системы, если 3 уравнеия то матрица 3*4, если 4, то 4*5
double y[n];   
double par,s,r[n];
int i,j,ii,k,jj,t=1;
 
double a[n][n+1]={{0.060, 0.048, 0.700, 0.550, 5.458},   ///матрица коеффициентов, где последний столбец - правая часть уравнения/системы
             {0.020, 0.333, 0.080, 0.300, 3.460}, ///сюда вводиш коеф-ты, т.е если 2x то водиш 2, иксы - 1-й столбец, y- 2 столбец...
             {1.250, 0.400, 0.092, 0.248, 18.515},
             {0.034, 0.650, 0.067, 0.300, 5.478}};
 
void main()
{
 for (j=0;j<n-1;j++)
 {
  if (a[j][j]==0)
  {
   ii=j+1;
 do
 {
  if((a[ii][j]!=0)||(ii==n-1))
  {
   break;
  }
 ii++;             ////проверки деления на 0
}
 while(1);
 
if((a[ii][j]==0)&&(ii==n-1))
{
 t=0;
};
 
for(k=0;k<n;k++)
{
 r[k]=a[j][k];
 
 a[j][k]=a[ii][k];
 
 a[ii][k]=r[k];
}}
 
for (i=j+1;i<n;i++)
{
 if(a[i][j]!=0)           /////прямой ход
 {
  par=a[i][j]/a[j][j];
 
 for (jj=j;jj<n+1;jj++)
 {
  a[j][jj]=a[j][jj]*par;
 
  a[i][jj]=a[i][jj]-a[j][jj];
 
  a[j][jj]=a[j][jj]/par;    
 }
}}}
 
 for (i=0;i<n;i++)
 {
  if (a[i][i]==0)
  {
   t=0;
  };
 }
 
 if (t!=0)
 {
  y[n-1]=a[n-1][n]/a[n-1][n-1];
  for (i=n-2;i>=0;i--)             ////обратный ход
  {
   j=n-1;                            
   s=a[i][j]*y[j];
  for (j=n-2;j>0;j--)
  {
   if (j!=i)
   { 
    s=s+a[i][j]*y[j];
  }}
   y[i]=(a[i][n]-s)/a[i][i];
  }
 
 for(i=0;i<n;i++)
 {
  cout<<y[i]<<endl;
 }}
  else
 
 cout<<"opredelitel=0"<<endl;
 getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 01:01     метод Гаусса
Еще ссылки по теме:

Метод Гаусса C++
Метод Гаусса C++
C++ СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя

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

Или воспользуйтесь поиском по форуму:
aank10
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 121
09.06.2011, 01:01  [ТС]     метод Гаусса #8
kjahert спасибо выручил , код довольно прост что б в нём разобраться самому, лови + .
Yandex
Объявления
09.06.2011, 01:01     метод Гаусса
Ответ Создать тему
Опции темы

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