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

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

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

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

06.06.2011, 14:04. Просмотров 5158. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 14:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод простых итераций для решения СЛАУ (C++):

Метод простых итераций для решения СЛАУ - C++
Доброго времени суток. Если у кого нибудь есть готовые программы для данного метода, скиньте пожалуйста. Особенно написанные на Borland C++.

Метод простых итераций для решения СЛАУ - C++
Здравствуйте. Есть функция, реализующая метод простых итераций: void ProstIterMetode() {int i,j; double *x0,delta,*E; x0=new...

Метод простых итераций для решения СЛАУ - C++
Всем добрый вечер! Столкнулся с заданием на тему решения СЛАУ методом простых итераций и Зейделя. В итоге завис с первым методом:...

Алгоритм написания для решения СЛАУ методом простых итераций - C++
Прошу помощи в написании программы для решения СЛАУ методом итераций. Нет, я не прошу писать код за меня, я прошу вашей помощи, чтобы...

Метод простых итераций для СЛАУ - C++
Здравствуйте! Пытаюсь реализовать метод простых итераций. Все функции, которые работают нормально, кроме самих итераций. Не могу понять,...

Метод простых итераций для СЛАУ - C++
Прошу помочь с написанием МПИ для СЛАУ на C. Каким образом выразить из AX=b ур-е X=BX+C, в которое подставлять начальное приближение? И по...

4
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
07.06.2011, 16:41  [ТС] #2
Ну поправьте ошибки.
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.06.2011, 17:18 #3
после каждого ввода поставь cin.ignore();
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
07.06.2011, 17:23 #4
дебагер в помощь
0
nikozavr
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
09.06.2011, 12:38  [ТС] #5
А по существу?
0
09.06.2011, 12:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2011, 12:38
Привет! Вот еще темы с ответами:

Метод простых итераций для СЛАУ - C++
Доброго времени суток всем!!! решаю СЛАУ методом простых итераций, проблема вот в чем: не могу понять, как сделать расчет по к-ым...

Метод простых итераций для СЛАУ - C++
Помогите пожалуйста! Нужно реализовать метод простых итераций для решения СЛАУ дана вот такая матрица -0.95 -0.06 -0.12 0.14 ...

Метод простых интераций для решения СЛАУ - C++
Нашел код, при компилировании выдает много ошибок. Может подскажите что нибудь? //Метод простой итерации решения СЛАУ #include...

Метод простых итераций для решения системы линейных уравнений - C++
помогите найти ошибку в алгоритме при вводе уравнения x+y = 2 2x-y = 7 x = 2-y; y = (7-2*x)/-1 double ...


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

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

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