Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Вниз

Спасите меня!!! 


rastaman   (2002-01-13 15:12) [0]

Горю я вот((( мне нужно до завтра сделаь прогу которая суммирует умножает матрицы а я не умею че делать? может есть гдето готовая такая прога?



Pat   (2002-01-13 18:22) [1]

А что не умеешь то?
Ну вот тебе алгоритмы...
Матрица C[m,l]=А[m,n]*B[n,l]

for i:=1 to m do
for x:=1 to l do
for j:=1 to n do
c[i,x]:=c[i,x] + a[i,j] * b[j,x];

Для суммы еще проще...
Матрица C[m,n]=А[m,n]+B[m,n]

for i:=1 to m do
for j:=1 to n do
c[i,j]:=a[i,j] + b[i,j];




Adder   (2002-01-13 18:29) [2]

Вот... был у меня старый кривой unit на BP7...
к сожалению, без комментариев - а сейчас леньки комментить...
Придется разбираться самостоятельно :)


unit matrix_;
interface
const
Razm_CA=4;Razm_RA=4;
Razm_CB=1;Razm_RB=4;
Razm_CC=Razm_CB;Razm_RC=Razm_RA;

Razm_R=90;Razm_C=90;Razm=4;

type
PMatrixSq=^MatrixSq;
MatrixSq = array[1..Razm,1..Razm] of double;

PMatrixA=^MatrixA;
MatrixA = array[1..Razm_RA,1..Razm_CA] of double;

PMatrixB=^MatrixB;
MatrixB = array[1..Razm_RB,1..Razm_CB] of double;

PMatrixC=^MatrixC;
MatrixC = array[1..Razm_RA,1..Razm_CB] of double;

PLine=^Line;
Line = array[1..Razm{_C}] of double;

PVec=^Vec;
Vec = array[1..Razm{_R}] of double;

procedure M_Sum(A:PMatrixA;B:PMatrixA;C:PMatrixA);{A+B=C}
procedure M_Razn(A:PMatrixA;B:PMatrixA;C:PMatrixA);{A-B=C}
procedure M_On_Const(A:PMatrixA;C:double;B:PMatrixA);{A*C=B}
procedure M_Multiply(A:PMatrixA;B:PMatrixB;C:PMatrixC);{A*B=C;Razm_R=Razm_C=Razm}
procedure MV_Multiply(A:PMatrixA;B:PVec;C:PVec);{A*B=C;Razm_R=Razm_C=Razm}
procedure MSq_Multiply(A:PMatrixSq;B:PMatrixSq;C:PMatrixSq);{A*B=C;Razm_R=Razm_C=Razm}
procedure MSV_Multiply(A:PMatrixSq;B:PVec;C:PVec);{A*B=C;Razm_R=Razm_C=Razm}
implementation
procedure M_Sum(A:PMatrixA;B:PMatrixA;C:PMatrixA);{A+B=C}
var i,j:byte;
begin
for i:=1 to Razm_RA do
for j:=1 to Razm_CA do C^[i,j]:=A^[i,j]+B^[i,j];
end;
procedure M_Razn(A:PMatrixA;B:PMatrixA;C:PMatrixA);{A-B=C}
var i,j:byte;
begin
for i:=1 to Razm_RA do
for j:=1 to Razm_CA do C^[i,j]:=A^[i,j]-B^[i,j];
end;
procedure M_On_Const(A:PMatrixA;C:double;B:PMatrixA);{A*C=B}
var i,j:byte;
begin
for i:=1 to Razm_RA do
for j:=1 to Razm_CA do B^[i,j]:=A^[i,j]*C;
end;
procedure MSq_Multiply(A:PMatrixSq;B:PMatrixSq;C:PMatrixSq);{A*B=C;Razm_R=Razm_C=Razm}
var i,j,k:byte; sum:MatrixSq;
begin
for i:= 1 to Razm do
for j:= 1 to Razm do sum[i,j]:=0;

for i:= 1 to Razm do
for j:= 1 to Razm do
for k:=1 to Razm do sum[i,j]:=sum[i,j]+B^[i,k]*A^[k,j];

for i:= 1 to Razm do
for j:= 1 to Razm do c^[i,j]:=sum[i,j];
end;
procedure M_Multiply(A:PMatrixA;B:PMatrixB;C:PMatrixC);{A*B=C;Razm_R=Razm_C=Razm}
var i,j,k,m:byte; sum:MatrixC;
begin
if Razm_CA <> Razm_RB then exit;
for i:= 1 to Razm_RA do
for j:= 1 to Razm_CB do sum[i,j]:=0;

for i:= 1 to Razm_RA do
for j:= 1 to Razm_CB do

for k:=1 to Razm_RB do
sum[i,j]:=sum[i,j]+A^[i,k]*B^[k,j];


for i:= 1 to Razm_RA do
for j:= 1 to Razm_CB do c^[i,j]:=sum[i,j];
end;
procedure MV_Multiply(A:PMatrixA;B:PVec;C:PVec);{A*B=C;Razm_R=Razm_C=Razm}
var i,j,k,m:byte; sum:Vec;
begin
if Razm_CA <> Razm then exit;
for i:= 1 to Razm_RA do sum[i]:=0;
for i:= 1 to Razm_RA do
for k:=1 to Razm{_RB} do
sum[i]:=sum[i]+A^[i,k]*B^[k];
for i:= 1 to Razm_RA do c^[i]:=sum[i];
end;

procedure MSV_Multiply(A:PMatrixSq;B:PVec;C:PVec);{A*B=C;Razm_R=Razm_C=Razm}
var i,j,k,m:byte; sum:Vec;
begin
for i:= 1 to Razm do sum[i]:=0;
for i:= 1 to Razm do
for k:=1 to Razm do
sum[i]:=sum[i]+A^[i,k]*B^[k];
for i:= 1 to Razm do c^[i]:=sum[i];
end;
end.



lamer2000   (2002-01-13 20:27) [3]

Могу скинуть на мыло опер с комплексными матрицами.



-=CrazyFish=-   (2002-01-14 00:28) [4]

можешь скачать у меня на страничке в программах




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.03 c
1-99960           Wizard                2002-01-11 14:17  2002.01.31  
DCOM


4-100128          В.И.Чапаев            2001-11-30 21:18  2002.01.31  
Мужики(и дамы тоже =ъ)! Извините за ламерский вопрос, но...


14-100055         VEG                   2001-12-10 22:01  2002.01.31  
Нужен компонент типа LABEL, только с большей скоростью перерисовки!!!


1-99972           MARcoDEN              2002-01-10 09:01  2002.01.31  
Windows XP


3-99833           Kulagin               2001-12-21 15:34  2002.01.31  
Связь Delphi с Exel