当前位置: 代码迷 >> 综合 >> 线性代数中的矩阵乘法推理。
  详细解决方案

线性代数中的矩阵乘法推理。

热度:19   发布时间:2024-02-09 23:45:14.0

性代数中的矩阵乘法推理。

首先要说什么是线性映射。线性映射即将 n 维的向量,通过 m*n 的矩阵映射成 m 维的向量。

     比如A矩阵 [[0 1] [2 3] [4 5]] 乘以2维的x向量[0 1] ,即将此向量映射成3维的y向量[1 3 5], 计算方法为 y[i] =

那么矩阵乘法呢?即将多次映射过程中的中间矩阵相乘得一矩阵d,而d对原始向量映射的结果与多次映射的结果相同,即矩阵d为矩阵相乘结果。

乘法推理:Xn为原始向量, Rmn为一次映射矩阵,Tsm为二次映身矩阵,Ys为目标向量,Dsn为矩阵乘积目标:

即Ys = Xn * Rmn * Tsm;

其中一次映射得m维的向理: Vm = Xn*Rmn =

[

x0 * R00 + x1* R01 + ... +xn* R0n,

x0 * R10 + x1* R11 + ... +xn* R1n,

...

x0 * Rm0 + x1* Rm1 + ... +xn* Rmn,

];

其中一次映射得s维的向理:  Ys = Vm * Tsm  =

[

(x0 * R00 + x1* R01 + ... +xn* R0n) * T00 + (x0 * R10 + x1* R11 + ... +xn* R1n)*T01 + .... +(x0 * Rm0 + x1* Rm1 + ... +xn* Rmn) * T0m,

(x0 * R00 + x1* R01 + ... +xn* R0n) * T10 + (x0 * R10 + x1* R11 + ... +xn* R1n)*T11 + .... +(x0 * Rm0 + x1* Rm1 + ... +xn* Rmn) * T1m,

...

(x0 * R00 + x1* R01 + ... +xn* R0n) * Ts0 + (x0 * R10 + x1* R11 + ... +xn* R1n)*Ts1 + .... +(x0 * Rm0 + x1* Rm1 + ... +xn* Rmn) * Tsm,

];

单看第一行=====================开始

(x0 * R00 + x1* R01 + ... +xn* R0n) * T00 + (x0 * R10 + x1* R11 + ... +xn* R1n)*T01 + .... +(x0 * Rm0 + x1* Rm1 + ... +xn* Rmn) * T0m,

即为:

(x0 * R00* T00 + x1* R01* T00 + ... +xn* R0n* T00) + (x0 * R10*T01 + x1* R11*T01 + ... +xn* R1n*T01 )+ .... +(x0 * Rm0* T0m + x1* Rm1* T0m + ... +xn* Rmn* T0m) ,

即为:

x0 * (R00* T00 + R10*T01 + ...  + Rm0* T0m) + x1 * (R01* T00 + R11*T01 + ...  + Rm1* T0m) + ... + xn * (R0n* T00 + R1n*T01 + ...  + Rmn* T0m)

因为向量 * 向量 = 向量各元素乘积之和,所以上面可简化为:

向量 Xn 乘以 向量 [(R00* T00 + R10*T01 + ...  + Rm0* T0m),  (R01* T00 + R11*T01 + ...  + Rm1* T0m), ...  (R0n* T00 + R1n*T01 + ...  + Rmn* T0m)]

同理 (R00* T00 + R10*T01 + ...  + Rm0* T0m),可简化为 向量Rv0 * 向量T0v,

其中,Rv0表矩阵Rmn的第0列列向量[R00, R10, ..., Rm0],

T0v表矩阵Tsm的第一行行向量[T01, T02, ..., T0m]

同理 (R01* T00 + R11*T01 + ...  + Rm1* T0m),可简化为 向量Rv1 * 向量T0v,

,Rv1表矩阵Rmn的第1列列向量[R01, R11, ..., Rm1],

T0v表矩阵Tsm的第一行行向量[T01, T02, ..., T0m]

所以第一行即为

Xn * [Rv0 * T0v, Rv1 * T0v, ..., Rvn * T0v ]

单看第一行=====================结束

所有行都如上,可解释为Ys =

[

Xn * [Rv0 * T0v, Rv1 * T0v, ..., Rvn * T0v ],

Xn * [Rv0 * T1v, Rv1 * T1v, ..., Rvn * T1v ],

...

Xn * [Rv0 * Tsv, Rv1 * Tsv, ..., Rvn * Tsv ],

];

根据向量与矩阵的乘法,将向量Xn提出来,即得一矩阵Dsn = 

[

[Rv0 * T0v, Rv1 * T0v, ..., Rvn * T0v ],

[Rv0 * T1v, Rv1 * T1v, ..., Rvn * T1v ],

...

 [Rv0 * Tsv, Rv1 * Tsv, ..., Rvn * Tsv ],

];

即Ys =Xn* Dsn;

Rv0表矩阵Rmn的第0列列向量[R00, R10, ..., Rm0],

Rv1表矩阵Rmn的第1列列向量[R01, R11, ..., Rm1],

以此类推,

T0v表矩阵Tsm的第0行行向量[T01, T02, ..., T0m]

T1v表矩阵Tsm的第0行行向量[T11, T12, ..., T1m]

以此类推,

即:

Dsn[i, j] = Rvj *Tiv;即: 前矩阵的 j 所在的列向量 乘以 后矩阵的 i 所在的行向量;