Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 07.09.2014
Сообщений: 4
1

Обратная матрица Гаусса

24.05.2015, 06:10. Показов 2149. Ответов 1
Метки нет (Все метки)

Здравствуйте)) Помогите пожалуйста дорешать задачу про метод Гаусса.
Мне осталось найти обратную матрицу, но я не могу сообразить как..

Вот задача..

Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
SysUtils;
 
Const nmax=10;
Type mas=array[1..nmax] of real;
matr=array[1..nmax] of mas;
Var A,C,T:matr;
b,x:mas;
i,j,n,count,err:integer;
det,s:real;
Procedure Gaus(Var A:matr;B:mas;Var X:mas;Var count:integer;Var err:integer);
Var i,j,k,imax:integer;
temp,pr,sum:real;
Begin
count:=0;err:=0;
For k:=1 to n-1 do
Begin
//ищем в столбце k max элемент
imax:=k;
For i:=k+1 to n do
if abs(A[i,k])>abs(A[imax,k]) then imax:=i;
if imax<>k then
Begin
For j:=1 to n do
Begin
temp:=A[k,j];
A[k,j]:=A[imax,j];
A[imax,j]:=temp;
End;
temp:=B[k];
B[k]:=B[imax];
B[imax]:=temp;
//увеличиваем кол-во перестановок
inc(count);
End;
//прямой метод Гаусса
For i:=k+1 to n do
Begin
pr:=a[i,k]/a[k,k];
For j:=1 to n do
a[i,j]:=a[i,j]-a[k,j]*pr; 
b[i]:=b[i]-b[k]*pr;
if A[i,i]=0 then
 
Begin
err:=1;
Exit;
End;
End;
End;
 
//обратный ход Метода Гаусса
x[n]:=b[n]/a[n,n];
For k:=n-1 downto 1 do
Begin
sum:=0;
For i:=k+1 to n do
sum:=sum+x[i]*a[k,i];
x[k]:=(b[k]-sum)/a[k,k];
End;
End;
Begin
//размер и сама СЛАУ
n:=4;
A[1,1]:=-3;A[1,2]:=2;A[1,3]:=-4;A[1,4]:=5;B[1]:=12.29;
A[2,1]:=2;A[2,2]:=-1;A[2,3]:=1;A[2,4]:=-11.5;B[2]:=-12.69;
A[3,1]:=1;A[3,2]:=-3;A[3,3]:=-2;A[3,4]:=2.7;B[3]:=13.10;
A[4,1]:=5;A[4,2]:=-1;A[4,3]:=3;A[4,4]:=7.8;B[4]:=56.93;
C:=A;
 
Gaus(A,B,X,count,err);
if err=1 then
Begin
writeln('Matrica virozhdennaya');
Exit;
End;
 
write('X = (',X[1]:7:3);
For i:=2 to n do
write(';',X[i]:7:3);
writeln(' )');
write('Nevyazka: ');
For i:=1 to n do
Begin
s:=0;
For j:=1 to n do
s:=s+C[i,j]*X[j];
//выводим невязку
write(s-B[i]:0:2,' ');
End;
writeln;
if odd(count) then det:=-1
else det:=1;
For i:=1 to n do
det:=det*A[i,i];//вычисляем определитель
writeln('det(A) = ',det:0:2);
For i:=1 to n do
B[i]:=0;
readln;
 
End.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2015, 06:10
Ответы с готовыми решениями:

Обратная матрица методом Гаусса
Нужно написать программу нахождения обратной матрицы методом Гаусса в Delphi. Я не очень разбираюсь...

Обратная матрица
Всем привет! Памагите праграмировати в Delphi рещение обратной матрицы, вот щто я зделала для...

Обратная матрица
помогите разобрать код пожалуйста . кусок var var Type TMatr=array of array of real; ...

Обратная матрица с класссами
Заказал прогу у плохого автора и он мне вынес все мозги. Помогите дописать (если там есть вообще...

1
136 / 134 / 100
Регистрация: 10.03.2015
Сообщений: 553
24.05.2015, 08:54 2
Суть данного метода заключается в следующем: если взять единичную матрицу E и провести над ней элементарные преобразования, приводят Марица A к единичной, то в результате матрица E превратится в обратную к A.
Вот блок-схема:
Миниатюры
Обратная матрица Гаусса  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2015, 08:54

Не верная обратная матрица
Прога работает,но неверно(все ячейки одним числом заполняет), по моему слишком много циклов....

Обратная матрица. Исправить программу
Здравствуйте! Мне нужно найти обратную матрицу (7Х7). Я на этом форуме поискала,нашла...

Обратная матрица методом Гаусса
Добрый день! Требуется реализовать поиск обратной матрицы путем элементарных преобразований в...

Обратная матрица методом Гаусса
Дана матрица: Нужно найти обратную матрицу методом Гаусса. Помогите решить, никак не...

Обратная матрица методом Гаусса
Есть функция на языке C++, которая находит обратную матрицу методом Гаусса. Она проверена, все...

Обратная матрица, метод Гаусса
Подскажите пожалуйста как найти обратную матрицу методом Гауса?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru