Главная страница
    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.005 c
4-100119
Mikola
2001-12-04 17:11
2002.01.31
Сокеты (Sockets) .Основные принципи роботы с ними. Функции (Win32 API) для роботы с сокетами.


4-100110
Song
2001-12-02 22:50
2002.01.31
Узнать, что программа уже запущена


3-99842
Петрович
2001-12-26 06:03
2002.01.31
Для чего нужна конструкция For Update


7-100081
Alexei
2001-10-23 12:17
2002.01.31
Принтер по умолчанию


1-99938
дикое Кенгуру
2002-01-06 06:46
2002.01.31
Как вставить в TRichEdit такоеже выпадающее меню как в TEdit ? Чтобы не писать своё и не делать мартышкин труд.





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