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

Гаусс - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
A_S_M
0 / 0 / 0
Регистрация: 07.10.2011
Сообщений: 29
24.02.2012, 13:48     Гаусс #1
Помогите написать программу в С++
код в паскале
Текст программы
"Решение систем линейных уравнений методом Гаусса"

Pascal
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Program Lin_yravneniya;
 uses crt;
 const N=3;
 eps=0.00001; { all numbers less than eps are equal 0 }
 type matr=array [1. n,1. n] of real;
 mas=array [1. n] of real;
 var
 i,j: integer;
 b,x: mas;
 variant: byte;
 a,c: matr; 
 dt: real;
 imx,np: integer;
 {*** печать исходной и обратной матрицы*** }
 procedure PrintMatr2 (m,m1: matr; n,nz,nd: integer);
 var i,j: integer;
 begin
 for i: =1 to n do
 begin
 if (i=1) then write (np: 2,': ')
 else write (' ');
 for j: =1 to n do
 write (m [i,j]: nz: nd); write (' ');
 for j: =1 to n do
 write (m1 [i,j]: nz: nd);
 writeln;
 end;
 inc (np);
 end;
 procedure MultString (var a,b: matr; i1: integer; r: real);
 var j: integer;
 begin
 for j: =1 to n do
 begin
 a [i1,j]: =a [i1,j] *r;
 b [i1,j]: =b [i1,j] *r;
 end;
 end;
 procedure AddStrings (var а,b: matr; i1, i2: integer; r: real);
 { процедура прибавляет к i1 строке матрицы а i2-ю умноженную на r}
 var j: integer;
 begin
 for j: =1 to n do
 begin
 a [i1,j]: =a [i1,j] +r*a [i2,j] ;
 b [i1,j]: =b [i1,j] +r*b [i2,j] ;
 end;
 end;
 procedure MultMatr (a,b: matr; var c: matr);
 var i,j,k: byte;
 s: real;
 begin
 for i: =1 to n do
 for j: =1 to n do
 begin
 s: =0;
 for k: =1 to n do
 s: =s+a [i,k] *b [k,j] ;
 c [i,j]: =s;
 end;
 end;
 function sign (r: real): shortint;
 begin
 if (r>=0) then sign: =1 else sign: =-1;
 end;
 {********************************** *****************}
 {** вычеркивание из матрицы строки и столбца **}
 procedure GetMatr (a: matr; var b: matr; m, i,j: integer);
 var ki,kj,di,dj: integer;
 begin
 di: =0;
 for ki: =1 to m-1 do
 begin
 if (ki=i) then di: =1;
 dj: =0;
 for kj: =1 to m-1 do
 begin
 if (kj=j) then dj: =1;
 b [ki,kj]: =a [ki+di,kj+dj] ;
 end;
 end;
 end;
 {*** метод Гаусса *******}
 procedure gauss (a: matr; b: mas; var x: mas; n: integer);
 Var k: byte;
 m, s: real;
 begin
 { приведение к треугольному виду}
 For k: =1 to N-1 do
 For i: =k+1 to n do
 begin
 m: =a [i,k] /a [k,k] ;
 a [i,k]: =0;
 For j: =k+1 to N do
 a [i,j]: =a [i,j] -m*a [k,j] ;
 b [i]: =b [i] -m*b [k] ;
 end;
 {расчет неизвестных х в обратном порядке}
 x [n]: =b [n] /a [n,n] ;
 writeln;
 writeln ('Вывод результатов решения системы уравнений методом Гаусса');
 writeln ('x [',n,'] =',x [n]: 6: 2);
 for i: = (n-1) downto 1 do
 begin s: =0;
 For j: =i+1 to n do
 s: =s-a [i,j] *x [j] ;
 x [i]: = (b [i] +s) /a [i, i] ;
 writeln ('x [', i,'] =',x [i]: 6: 2);
 end;
 end;
 Комментарий модератора 
Код выделяем тегами!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 13:48     Гаусс
Посмотрите здесь:

C++ Гаусс для коллекции
Гаусс( C++
маткад гаусс
C++ Гаусс
C++/CLI Гаусс Visual C++
Гаусс-4, откуда взялись коэффициенты? Fortran
C++ Гаусс
Scilab Методы решения СЛАУ (Гаусс, Зейдель)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
24.02.2012, 15:07     Гаусс #2
A_S_M, посмотри уже рабочий и проверенный код
Методом Гаусса решить систему n линейных алгебраических уравнений
Yandex
Объявления
24.02.2012, 15:07     Гаусс
Ответ Создать тему
Опции темы

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