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

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

Войти
Регистрация
Восстановить пароль
 
Вальмонт
Сообщений: n/a
#1

Решение СЛАУ методом релаксации - C++

25.05.2014, 16:45. Просмотров 633. Ответов 0
Метки нет (Все метки)

Здравствуйте. Мне нужна ваша помощь в создании программы по решению СЛАУ методом релаксации. У самого код не получается, найденные х оно отображает, как 0.
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
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <fstream>
using namespace std;
double relax(double **A,double *b,int n,double ep)
{int i,j,t,nom; double *R0,*R1,*X,*C,**D,S,Max,dx; bool Pr;
R0=new double [n];
R1=new double [n];
X=new double [n];
C=new double [n];
D=new double *[n];
for(i=0;i<n;i++)
D[i]=new double [n];
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
D[i][j]=-A[i][j]/A[i][i];
C[i]=b[i]/A[i][i];}
for(i=0;i<n;i++)
X[i]=0;
for(i=0;i<n;i++)
{S=0;
for(j=0;j<n;j++)
if(i=j) S=S+D[i][j]*X[j];
R1[i]=C[i]-X[i]+S;};
for(;Pr=0;)
{for(i=0;i<n;i++)
R0[i]=R1[i];
Max=R0[0]; nom=0;
for(i=0;i<n;i++)
if(R0[i]>Max) {Max=R0[i];nom=i;};
dx=Max;
for(i=0;i<n;i++)
{if(i=nom) R1[i]=0;
else R1[i]=R0[i]+D[i][nom]*dx;}
X[nom]=X[nom]+dx;
Pr=0;
for(i=0;i<n;i++)
if (R1[i]>ep) Pr=1;}
return *X;};
///////////////////////////////////////////////////////////////////////////
int main()
{setlocale(LC_ALL, "rus");
int i,j,k,n; ifstream g;
double **A,*b,*x,ep=0.001;
g.open("D:\\ab.txt");
g>>n;
x=new double [n];
b=new double [n];
A=new double *[n];
for(i=0;i<n;i++)
A[i]=new double[n];
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
g>>A[i][j];}
for(i=0;i<n;i++)
g>>b[i];
b[3]=30-90+50; b[4]=90-10-20; b[5]=-50+20-40;
g.close();
cout<<"Размерность матрицы:"<<n<<"x"<<n<<endl;
cout<<"Исходная матрица токов:";
for(i=0;i<n;i++)
{cout<<endl;
for(j=0;j<n;j++)
cout<<A[i][j]<<"\t";}
cout<<endl<<endl;
cout<<"Массив свободных членов:"<<endl;
for(i=0;i<n;i++)
cout<<b[i]<<"\t";
cout<<endl<<endl;
for(i=0;i<n;i++)
x[i]=relax(A,b,n,ep);
cout<<"Результат"<<endl;
for(i=0;i<n;i++)
cout<<x[i]<<"\t";
cout<<endl;
system("PAUSE");
return 0;}
Вот приблизительная блок схема, по которой должен быть осуществлён этот метод.
Миниатюры
Решение СЛАУ методом релаксации  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2014, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение СЛАУ методом релаксации (C++):

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

Разработать алгоритм численного решения СЛАУ методом верхней релаксации - C++
Помогите пожалуйста курсач горит (:ireful: Разработать алгоритм численного решения cистема линейных алгебраических уравнений методом...

Решение СЛАУ методом Якоби - C++
Пытаюсь реализовать метод решения системы линейных уравнений методом Якоби. #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include...

Решение СЛАУ методом вращения - C++
Доброго времени суток, товарищи. Имеется задание: дано интегральное уравнение: U(x) + I ( K(x,s)U(s)ds= f(x) ( I - определённый...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2014, 16:45
Привет! Вот еще темы с ответами:

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

Решение СЛАУ методом Якоби - C++
Решить СЛАУ методом Якоби. Вывести значения решения, график зависимости нормы невязки от номера итерации и его значение, при котором...

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

Решение СЛАУ методом Крамера - C++
Доброго времени суток! Пишу курсовую по методу Крамера. Вроде ничего сложного, но программированием я занимаюсь не часто, скачал с нета...


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

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

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