Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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]

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



Страницы: 1 вся ветка

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

Наверх





Память: 0.46 MB
Время: 0.004 c
14-100052
evgeg
2001-12-08 15:16
2002.01.31
Какой проект можно считать большим? И кто в таких участвовал?


14-100039
GydruS
2001-12-05 08:33
2002.01.31
Как отучить людей от лапанья экранов?(в компьютерных классах)


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


1-99948
RRRA
2002-01-11 20:11
2002.01.31
Несколько простых вопросов.


4-100129
-Coban-
2001-12-01 16:45
2002.01.31
Перехват ссылок IE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский