Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Внизпроизведение двух матриц Найти похожие ветки
← →
Beginer1 (2002-11-23 16:50) [0]помогите кто сможет
надо умножить две матрицы (AxB) размерностью NxN а ответ записать в матрицу С
зарание длагодарен
← →
TTCustomDelphiMaster (2002-11-23 17:15) [1]$50
← →
iNew (2002-11-23 18:14) [2]А слабо в учебник по алгебре заглянуть, ну или в нете найти.
Формула не такая уж и сложная.
← →
PaRL (2002-11-23 18:23) [3]То есть a[b] * c[b] ?
так в цикле... А скажите формулу, мне тоже интересно.
← →
Kotka (2002-11-23 20:45) [4]у меня есть иходники на делфи. Для себя писал! Если хош, вышлю по почте, только маил дай
← →
Asteroid (2002-11-23 21:45) [5]Ага. Ну попробуйте умножить две матрицы размером MxN, когда M <> N
← →
aaZ (2002-11-23 23:34) [6]А че сложного этому в средней школе учат...
← →
Kotka (2002-11-24 00:37) [7]>Asteroid © (23.11.02 21:45)
И что такого???
Главное чтоб матрицы имели размеры M*N и N*K соответственно!
← →
[NIKEL] (2002-11-24 00:37) [8]а есть у кого-нить алгоритм преобразования матрицы к ступенчатому виду ??
← →
Pat (2002-11-24 00:46) [9]>Beginer1 © (23.11.02 16:50)
Писал когда-то давно на Паскале. Если желание есть, разберешься
unit MATRIX;
interface
procedure Multiplication;
implementation
uses crt;
procedure Multiplication;
var
x,i,j,m,n,k,l:integer;
s,a,b,c:array[1..30,1..30] of integer;
begin {Procedure Multiplication}
window (1,1,80,25);
clrscr;
textcolor(11);
window(30,1,80,1);write("ВВЕДИТЕ РАЗМЕРНОСТЬ МАТРИЦ");
window(1,2,80,25);
write("количество строк матрицы A: ");read(m);
write("количество столбцов матрицы A: ");read(n);writeln;
write("количество строк матрицы B: ");read(k);
write("количество столбцов матрицы B: ");read(l);writeln;
writeln("введите элементы матрицы A: ");
for i:=1 to m do
for j:= 1 to n do {ввод матрицы A}
read(a[i,j]);
writeln("введите элементы матрицы B: ");
for i:=1 to k do
for j:= 1 to l do {ввод матрицы В}
read(b[i,j]);
window(1,1,80,25);
clrscr;
write("МАТРИЦА A:");
for i:=1 to m do
begin {вывод матрицы A}
writeln;
for j:= 1 to n do
write(a[i,j]," ");
end;
writeln;
writeln;
write("МАТРИЦА B:");
for i:=1 to k do
begin {вывод матрицы В}
writeln;
for j:= 1 to l do
write(b[i,j]," ");
end;
for i:=1 to m do
for j:=1 to l do
c[i,j]:=0;
for i:=1 to m do {произведение A*B}
for x:=1 to l do
for j:=1 to n do
c[i,x]:=c[i,x]+a[i,j]*b[j,x];
writeln;
writeln;
for i:=1 to k do
for j:=1 to n do
s[i,j]:=0;
for i:=1 to k do {произведение B*A}
for x:=1 to n do
for j:=1 to l do
s[i,x]:=s[i,x]+b[i,j]*a[j,x];
write("ПРОИЗВЕДЕНИЕ МАТРИЦЫ A НА МАТРИЦУ В: ");
if n=k then
for i:=1 to m do
begin {вывод A*B}
writeln;
for j:=1 to l do
write(c[i,j]," ");
end
else write("не существует");
writeln;
writeln;
write("ПРОИЗВЕДЕНИЕ МАТРИЦЫ B НА МАТРИЦУ A: ");
if l=m then
for i:=1 to k do
begin {вывод B*A}
writeln;
for j:=1 to n do
write(s[i,j]," ");
end
else write("не существует");
window(10,25,80,25);
write("ESC - выход ANY KEY - главное меню ENTER - продолжить");
end;{Procedure Multiplication}
end.{unit}
← →
Kotka (2002-11-24 01:18) [10]>[NIKEL] © (24.11.02 00:37)
>а есть у кого-нить алгоритм преобразования матрицы к ступенчатому виду ??
Если ты имеешь ввиду преобразование к единичной матрице методом Гаусса-Жордана, то есть!
Единичн. матрица это такое:
1000
0100
0010
0001
← →
[NIKEL] (2002-11-24 14:03) [11]2Kotka ©
ну это понятно...
мне надо именно преобразование к ступенчатому виду!
это неодно и тоже что и к еденичной матрице
надо методом (1 или 2) преобраозования Гаусса привести матрицу к ступенчатому виду
вобщем на листочке это нетрудно сделать, а вот в программе нужен алгоритм
← →
MBo (2002-11-24 14:08) [12]http://www.srcc.msu.su/num_anal/lib_na/cat/cat55.htm
← →
glad2001 (2002-11-25 21:48) [13]Pat!!! Тебе огромный респект за прогу с перемножением матриц!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c