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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.74
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
#1

Метод простых итераций для решения СЛАУ - C++

06.06.2011, 14:04. Просмотров 4968. Ответов 4
Метки нет (Все метки)

Здравствуйте. Попытался сделать программу для решения СЛАУ методом простых итераций. Не работает. Вернее работает неправильно. Помогите найти и исправить ошибки. Пожалуйста.
Первая проблема - не вводится столбец свободных членов. Не пойму почему. Да и в алгоритме где то напутал.

Вот код программы.

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
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
 
int main(int argc, char *argv[])
{
    
   int i,j,q,N,M,K,count,T,f,;
   int A[20][20];
   int B[20];
    double norma; //norma vektora
    double xn[20]={0};//vektor tekuchey operacii
    double x[20];
    float  eps = 0.0001;
    
cout<<"N=";
cin>>N;
cout<<"M=";
cin>>M;
 
 
 
for(i=0;i<N;i++)
for(j=0;j<M;j++)
       {cout<<"A["<<i<<"]["<<j<<"] = ";// vvod elementov matrici
cin>>A[i][j];
       }
cout<<endl;
 
for(q=0;q<N;q++)
       {cout<<"B["<<q<<"] = ";// vvod svobodnogo stolbza
       }
cout<<endl;
 
for(i=0;i<N;i++)// vivod vvedennoy
{ for(j=0;j<M;j++)
cout<<A[i][j]<<" ";
cout<<endl;
       }
cout<<endl; 
 
for(q=0;q<N;q++)
cout<<B[q]<<" ";
cout<<endl;
cout<<endl;
 
 
//deystvia
do{
  norma=0.0;
  for(i=0;i < N;i++)
  {
   xn[i]=-B[i];
 
   for(j=0;j < M;j++)
   {
    if(i!=j)
     xn[i]+=A[i][j]*x[j];
   }
 
   xn[i]/=-A[i][i];
  }
 
  for(i=0;i < N;i++)
  {
   if(fabs(x[i]-xn[i]) > norma)
    norma=fabs(x[i]-xn[i]); 
   x[i]=xn[i];
  }
  
 }
 
 while(norma > eps); 
                                   }
                                    
for(i=0;i<N;i++)// vivod izmenennoy
{ for(j=0;j<M;j++)
cout<<A[i][j]<<" ";
cout<<endl;
       }
 
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 14:04     Метод простых итераций для решения СЛАУ
Посмотрите здесь:
Метод простых итераций для решения СЛАУ C++
Метод простых итераций для решения СЛАУ C++
Метод простых итераций для решения СЛАУ C++
C++ Алгоритм написания для решения СЛАУ методом простых итераций
C++ Метод простых итераций для СЛАУ
Метод простых итераций для СЛАУ C++
C++ Метод простых итераций для СЛАУ
C++ Метод простых итераций для СЛАУ
C++ Метод простых интераций для решения СЛАУ
C++ Метод простых итераций для решения системы линейных уравнений
Метод простых итераций для одного уравнения C++
C++ Метод простых итераций (для трехмерной матрицы)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
07.06.2011, 16:41  [ТС]     Метод простых итераций для решения СЛАУ #2
Ну поправьте ошибки.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.06.2011, 17:18     Метод простых итераций для решения СЛАУ #3
после каждого ввода поставь cin.ignore();
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
07.06.2011, 17:23     Метод простых итераций для решения СЛАУ #4
дебагер в помощь
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
09.06.2011, 12:38  [ТС]     Метод простых итераций для решения СЛАУ #5
А по существу?
Yandex
Объявления
09.06.2011, 12:38     Метод простых итераций для решения СЛАУ
Ответ Создать тему
Опции темы

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