㈠ 矩陣乘法和加法演算法
矩陣加法和乘法是很簡單的
矩陣加法首先是同型矩陣才能相加
例如
兩個3行3列矩陣才能相加
3行3列去不能和2行3列相加
計算規則是對應項相加(a1,a2)+
(b1,b2)=(a1+a2,b1+b2)
矩陣乘法主要是前一項的列數必須等於後一項的行數
m*n
和
n*k
就可以相乘
而m*n
和m*n就不可以
計算規則
結果的第一個元素是第一個矩陣第一行乘以第二個矩陣第一列
第二個元素第一行乘以第二列以此類推
例如
(a1,a2) (b1,b2)
(a1*b1+a1*b3,a1*b2+a2*b4)
(a3,
a4)
乘以
(b3,b4)
等於
( a3*b1+a4*b3,a3*b2+a4*b4
)
㈡ 矩陣乘法如何計算詳細步驟!
回答:
此題2行2列矩陣乘以2行3列矩陣。
所得的矩陣是:2行3列矩陣
最後結果為: |1 3 5|
|0 4 6|
拓展資料
1、確認矩陣是否可以相乘。只有第一個矩陣的列的個數等於第二個矩陣的行的個數,這樣的兩個矩陣才能相乘。
圖示的兩個矩陣可以相乘,因為第一個矩陣,矩陣A有3列,而第二個矩陣,矩陣B有3行。
6、檢查相應的數字是否出現在正確的位置。19在左下角,-34在右下角,-2在左上角,-12在右上角。
㈢ 請問矩陣加減乘除如何計算
加法運算:兩個矩陣的加是矩陣中對應的元素相加,相加的前提是:兩個矩陣要是通行矩陣,即具有相同的行和列數。如:矩陣A=[1 2],B=[2 3] ,A+B=[1+2 2+3]=[3 5]。
減法運算:兩個矩陣相減,跟加法類似。
乘法運算:兩個矩陣要可以相乘,必須是A矩陣的列數B矩陣的行數相等,才可以進行乘法,矩陣乘法的原則是,A矩陣的第i行中的元素分別與B矩陣中的第j列中的元素相乘再求和,得到的結果就是新矩陣的第i行第j列的值。
除法運算:一般不說矩陣的除法。都是講的矩陣求逆。
(3)矩陣乘法簡易演算法擴展閱讀:
矩陣乘法的注意事項
1、當矩陣A的列數等於矩陣B的行數時,A與B可以相乘。
2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。
3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
基本性質
乘法結合律: (AB)C=A(BC)。
乘法左分配律:(A+B)C=AC+BC 。
乘法右分配律:C(A+B)=CA+CB 。
對數乘的結合性k(AB)=(kA)B=A(kB)。
轉置 (AB)T=BTAT.
矩陣乘法一般不滿足交換律。
*註:可交換的矩陣是方陣。
計算矩陣的除法,先將被除的矩陣先轉化為它的逆矩陣,再將前面的矩陣和後面的矩陣的逆矩陣相乘。
那麼,一個矩陣的逆矩陣的求解方法是:先把一個單位矩陣放在目的矩陣的右邊,然後把左邊的矩陣通過初等行變換轉換為單位矩陣,此時右邊的矩陣就是我們要求的逆矩陣。
我們再通過舉一個實例來說明矩陣的除法的具體計算方法。
先把單位矩陣放在矩陣A的右邊並放在同一個矩陣里邊。現用第二行和第三行分別減去第一行的3倍和-1倍。
㈣ 矩陣的乘法是怎麼算出來的 在線等!!給一個簡單的例子就好了!!
規則是左邊的行乘以右邊的列。舉個例子:A=(1,2;3,4),B=(1,0;2,1);那麼AB就是A的行乘以B的列,首先A的第一行(1,2),B的第一列(1,2),相乘就是1x1+2x2=5,那麼這個結果就放在第一行第一列;A的第一行(1,2),B的第二列(0,1),相乘就是1x0+2x1=2,這個結果就放在第一行第二列。
㈤ 矩陣乘法公式
|a11 a12 …… a1n||b11 b12 …… b1k|
|a21 a22 …… a2n||b21 b22 …… b2k|=
| . . …… . || . . …… . |
|am1 am2 …… amn||bn1 bn2 …… bnk|
|a11*b11+a12*b21+……+a1n*bn1 a11*b12+a12*b22+……+a1n*bn2
若A、B和C表示三個矩陣並有C=AB,A為n行m列,B為m行q列,則C為n行q列
則對於C矩陣任版一元素Cij都有權
Cij=ai1*b1j+ai2*b2j+ai3*b3j+...+ain*bnj
i=1,2,3,...,n,j=1,2,3,...q
(5)矩陣乘法簡易演算法擴展閱讀:
1、當矩陣A的列數(column)等於矩陣B的行數(row)時,A與B可以相乘。
2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。
3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
㈥ 矩陣乘法怎麼算
比如乘法AB
一、
1、用A的第1行各個數與B的第1列各個數對應相乘後加起來,就是乘法結果中第1行第1列的數;
2、用A的第1行各個數與B的第2列各個數對應相乘後加起來,就是乘法結果中第1行第2列的數;
3、用A的第1行各個數與B的第3列各個數對應相乘後加起來,就是乘法結果中第1行第3列的數;
依次進行,(直到)用A的第1行各個數與B的第末列各個數對應相乘後加起來,就是乘法結果中第1行第末列的的數。
二、
1、用A的第2行各個數與B的第1列各個數對應相乘後加起來,就是乘法結果中第2行第1列的數;
2、用A的第2行各個數與B的第2列各個數對應相乘後加起來,就是乘法結果中第2行第2列的數;
3、用A的第2行各個數與B的第3列各個數對應相乘後加起來,就是乘法結果中第2行第3列的數;
依次進行,(直到)用A的第2行各個數與B的第末列各個數對應相乘後加起來,就是乘法結果中第2行第末列的的數。
依次進行,
(直到)用A的第末行各個數與B的第1列各個數對應相乘後加起來,就是乘法結果中第末行第1列的數;
用A的第末行各個數與B的第2列各個數對應相乘後加起來,就是乘法結果中第末行第2列的數;
用A的第末行各個數與B的第3列各個數對應相乘後加起來,就是乘法結果中第末行第3列的數;
依次進行,
(直到)用A的第末行各個數與B的第末列各個數對應相乘後加起來,就是乘法結果中第末行第末列的的數。
矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義[1]。一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。
㈦ 這兩個矩陣相乘怎麼算
矩陣相乘需要前面矩陣的行數與後面矩陣的列數相同方可相乘。
第一步先將前面矩陣的每一行分別與後面矩陣的列相乘作為結果矩陣的行列。
(7)矩陣乘法簡易演算法擴展閱讀:
矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義 。一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。
1、當矩陣A的列數等於矩陣B的行數時,A與B可以相乘。
2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。
3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
㈧ 用c語言實現兩個矩陣相乘怎麼做
C語言實現矩陣相乘
問題描述:
編寫程序,可以實現m*n矩陣和n*p矩陣相乘。m,n,p均小於10,矩陣元素為整數。
分析:
首先我們可以根據題意寫出函數頭。可以定為void
MatrixMutiply(int
m,int
n,int
p,long
lMatrix1[MAX][MAX],long
lMatrix2[MAX][MAX],long
lMatrixResult[MAX][MAX]),其中lMatrix1和lMatrix2分別是輸入的m*n矩陣和n*p矩陣,lMatrixResult是輸出的m*p矩陣。
因為m,n和p都是未知量,要進行處理的矩陣大小是變數。但我們可以定義比較大的二維數組,只使用其中的部分數組元素。
矩陣相乘的演算法比較簡單,輸入一個m*n矩陣和一個n*p矩陣,結果必然是m*p矩陣,有m*p個元素,每個元素都需要計算,可以使用m*p嵌套循環進行計算。
根據矩陣乘法公式:
可以用循環直接套用上面的公式計算每個元素。嵌套循環內部進行累加前,一定要注意對累加變數進行清零。
數據要求
問題中的常量:
#define
MAX
10
/*矩陣最大行數和列數*/
問題的輸入:
int
m,n,p;
/*相乘的兩個矩陣的行列數*/
long
lMatrix1[MAX][MAX],lMatrix2[MAX][MAX];
/*相乘的兩個矩陣*/
問題的輸出:
long
lMatrixResult[MAX][MAX];
/*矩陣相乘後得到的矩陣*/
初始演算法
1.輸入兩個矩陣的的行列數m,n,p;
2.輸入第一個矩陣的每個元素;
3.輸入第二個矩陣的每個元素;
4.調用函數進行乘法運算,結果放在lMatrixResult
中;
5.
列印輸出結果矩陣。
演算法細化
演算法的步驟4計算兩個矩陣的乘法演算法如下:
4.1
定義循環變數i,j,k;
4.2
嵌套循環計算結果矩陣(m*p)的每個元素。
程序代碼如下:
#define
MAX
10
void
MatrixMutiply(int
m,int
n,int
p,long
lMatrix1[MAX][MAX],
long
lMatrix2[MAX][MAX],long
lMatrixResult[MAX][MAX])
{
int
i,j,k;
long
lSum;
/*嵌套循環計算結果矩陣(m*p)的每個元素*/
for(i=0;i<m;i++)
for(j=0;j<p;j++)
{
/*按照矩陣乘法的規則計算結果矩陣的i*j元素*/
lSum=0;
for(k=0;k<n;k++)
lSum+=lMatrix1[i][k]*lMatrix2[k][j];
lMatrixResult[i][j]=lSum;
}
}
main()
{
long
lMatrix1[MAX][MAX],lMatrix2[MAX][MAX];
long
lMatrixResult[MAX][MAX],lTemp;
int
i,j,m,n,p;
/*輸入兩個矩陣的的行列數m,n,p*/
printf("
Please
input
m
of
Matrix1:
");
scanf("%d",&m);
printf("Please
input
n
of
Matrix1:
");
scanf("%d",&n);
printf("Please
input
p
of
Matrix2:
");
scanf("%d",&p);
/*輸入第一個矩陣的每個元素*/
printf("
Please
elements
of
Matrix1(%d*%d):
",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
scanf("%ld",&lTemp);
lMatrix1[i][j]=lTemp;
}
/*輸入第二個矩陣的每個元素*/
printf("
Please
elements
of
Matrix2(%d*%d):
",n,p);
for(i=0;i<n;i++)
for(j=0;j<p;j++)
{
scanf("%ld",&lTemp);
lMatrix2[i][j]=lTemp;
}
/*調用函數進行乘法運算,結果放在lMatrixResult
中*/
MatrixMutiply(m,n,p,lMatrix1,lMatrix2,lMatrixResult);
/*列印輸出結果矩陣*/
printf("
Result
matrix:
");
for(i=0;i<m;i++)
{
for(j=0;j<p;j++)
printf("%ld
",lMatrixResult[i][j]);
printf("
");
}
}
程序運行結果如下:
Please
input
m
of
Matrix1:
3
Please
input
n
of
Matrix1:
2
Please
input
p
of
Matrix2:
3
Please
elements
of
Matrix1(3*2):
1
2
0
1
3
0
Please
elements
of
Matrix2(2*3):
1
2
0
3
1
1
Result
matrix:
7
4
2
3
1
1
3
6
0
㈨ 兩個矩陣相乘演算法
矩陣相乘需要前面矩陣的行數與後面矩陣的列數相同方可相乘。
第一步先將前面矩陣的每一行分別與後面矩陣的列相乘作為結果矩陣的行列。
(9)矩陣乘法簡易演算法擴展閱讀:
矩陣相乘最重要的方法是一般矩陣乘積。它只有在第一個矩陣的列數(column)和第二個矩陣的行數(row)相同時才有意義 。一般單指矩陣乘積時,指的便是一般矩陣乘積。一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。
1、當矩陣A的列數等於矩陣B的行數時,A與B可以相乘。
2、矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。
3、乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。
㈩ 矩陣的乘法運算怎麼算
矩陣的乘法,首先要判定能不能作乘法,即要求作乘法時,前一個矩陣的列數與後一個矩陣的行數相等。
設矩陣A是m×n的、矩陣B是n×s的,乘法AB後得到矩陣C,則C為m×s的,如下圖所示。
C11是由A的第一行與B的第一列對應相乘得到的,即C11=1×3+2×1+4×2=13。
C32是由A的第三行與B的第二列對應相乘得到的,即C32=2×2+5×6+1×1=35。
其他元素也是同理,分別取A的某行與B的某列,將對應元素相乘求出。