Главная страница
    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
3-99861
Алексей Акиньхов
2001-12-26 14:34
2002.01.31
Преобразование dbf файлов


7-100084
Sergy
2001-10-18 17:32
2002.01.31
Выкллючить комп


4-100103
neodiX
2001-11-29 15:30
2002.01.31
Kak programno, na vremia, otkliucit mysh i klavu v WinNT ili Win2k? Ocen nado..


3-99888
777
2001-12-25 16:05
2002.01.31
TDBGrid и Ширина столбца


3-99901
Oleon
2001-12-28 17:32
2002.01.31
Ну прямо никто не знает что-ли? Не может быть.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский