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

Обратная матрица

25.05.2013, 20:55. Показов 3778. Ответов 5
Метки нет (Все метки)

Всем привет!
Памагите праграмировати в Delphi рещение обратной матрицы,
вот щто я зделала для обратной матрицы и ни палучяеца:
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 20:55
Ответы с готовыми решениями:

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

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

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

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

5
Администратор
11991 / 5321 / 267
Регистрация: 05.04.2011
Сообщений: 14,087
Записей в блоге: 2
25.05.2013, 21:05 2
axe92, код пишем в тему ручками, и само задание - по-русски.
0
axe92
25.05.2013, 21:23 3
вот код


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
{$R *.dfm}
type matrice=array of array of extended;
function Determinant(A:matrice):extended;
var det:extended;
    n,k,i,j:integer;
    M:matrice;
begin
n:=high(A);
setlength(M,n,n);
if n=0 then Determinant:=A[0,0] {caz elementar}
  else
    begin
    det:=0;
    for k:=0 to n do
      begin
        for i:=0 to n-1 do
        for j:=0 to k-1 do M[i,j]:=A[i+1,j];
        for i:=0 to n-1 do
        for j:=k to n-1 do M[i,j]:=A[i+1,j+1];
        if odd(k) then det:=det-A[0,k]*Determinant(M)
          else det:=det+A[0,k]*Determinant(M);
        end;
        Determinant:=det;
    end;
end;
procedure Inversa(A:matrice;var Inv:matrice);
var minor:matrice;
    detmin,det:Extended;
    n,i,j,kx,ky:Integer;
begin
  n:=High(A);
  SetLength(minor,n,n);
  for i:=0 to n do
  for j:=0 to n do
  begin
    for kx:=0 to i-1 do
    begin
    for ky:=0 to j-1 do
    minor [kx,ky]:=A[i,j];
    for ky:=j to n-1 do
    minor[kx,ky]:=A[i,j+1];
  end;
  for kx:=i to n-1 do
  begin
    for ky:=0 to j-1 do minor[kx,ky]:=A[i+1,j] ;
      for ky:=0 to n do minor[kx,ky]:=A[i+1,j+1];
  end;
  det:=Determinant(A);
  detmin:=Determinant(minor);
  if Odd(i+1) then Inv[j,i]:=-detmin/det
  else
  Inv[j,i]:=detmin/det;
end;
end;
Миниатюры
Обратная матрица  
10 / 10 / 2
Регистрация: 24.01.2013
Сообщений: 110
25.05.2013, 21:33 4
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, Grids;
 
type
   TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    N1: TMenuItem;
    N21: TMenuItem;
    N31: TMenuItem;
    N41: TMenuItem;
    Label1: TLabel;
    Label2: TLabel;
    procedure N21Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  result:integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.N21Click(Sender: TObject);
begin
result:=2;
stringgrid1.RowCount:=2;
stringgrid1.ColCount:=2;
 
stringgrid2.RowCount:=2;
stringgrid2.ColCount:=2;
end;
 
procedure TForm1.N31Click(Sender: TObject);
begin
result:=3;
stringgrid1.RowCount:=3;
stringgrid1.ColCount:=3;
 
stringgrid2.RowCount:=3;
stringgrid2.ColCount:=3;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c,d,e,f,i,j: integer;
  Matr,Tran,Obr: array [1..9,1..9] of Extended;
  det:Extended;
begin
for i:=0 to result do
for j:=0 to result do
Matr[i,j]:= StrToFloat(stringgrid1.cells[i,j]);
case result of
2: begin
for i:=0 to result do
for j:=0 to result do
det:=(Matr[1,1]*Matr[2,2])-(Matr[2,1]*Matr[1,2]);
 
for i:=0 to result do
for j:=0 to result do
Tran[i,j]:= Matr[j,i];
 
for i:=0 to result do
for j:=0 to result do
Obr[i,j]:=(1/det)*tran[i,j];
   end;
 
3: begin
 
   end;
end;
stringgrid2.Cells[i,j]:=FloatToStr(Obr[i,j]);
end;
end.
Вроде как-то так, и пожалуйста пишите задание по-русски,тут язык сломать можно, и обращайте внимание на ошибки, вроде так=)
1
0 / 0 / 0
Регистрация: 07.11.2016
Сообщений: 1
11.11.2016, 12:12 5
а можно ли этот код вывести на форму?? или придется самому сначала интерфейс создавать а потом просто вписывать основные переменные и прочее???
0
Почетный модератор
64089 / 47498 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
11.11.2016, 13:47 6
Цитата Сообщение от Deka77 Посмотреть сообщение
или придется самому сначала интерфейс создавать
Придется.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2016, 13:47

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

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

Обратная форма
Есть сайт в формате html, на нем нужно сделать обратную форму связи, чтобы сообщения на мейл мой...

Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной
Дана квадратная матрица А порядка n. Проверьте, является ли матрица единичной. Описать с помощью...


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

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

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