【P147页 5.4.2 Strassen矩阵乘法】的 Mathematica 计算验证《算法设计与分析基础.潘彦译(第3版)》
Mathematica的 代码 *.nb 笔记本文件下载地址:
https://download.csdn.net/download/hardwork617s/15364189
Mathematica计算验证:
(* 【P147页 5.4.2 Strassen矩阵乘法】的 Mathematica 计算验证 *)
A = Array[Subscript[a, ##] &, {2, 2}, {0, 0}] ;
matrixA = A // MatrixForm
B = Array[Subscript[b, ##] &, {2, 2}, {0, 0}];
matrixB = B // MatrixForm
matrixAB = Dot[A // MatrixForm, B // MatrixForm]
AB = Dot[A, B] // MatrixForm
m1 = (Subscript[a, 0, 0] + Subscript[a, 1, 1])*(Subscript[b, 0, 0] +
Subscript[b, 1, 1]);
m2 = (Subscript[a, 1, 0] + Subscript[a, 1, 1])*Subscript[b, 0, 0];
m3 = Subscript[a, 0, 0]*(Subscript[b, 0, 1] - Subscript[b, 1, 1]);
m4 = Subscript[a, 1, 1]*(Subscript[b, 1, 0] - Subscript[b, 0, 0]);
m5 = (Subscript[a, 0, 0] + Subscript[a, 0, 1])*Subscript[b, 1, 1];
m6 = (Subscript[a, 1, 0] - Subscript[a, 0, 0])*(Subscript[b, 0, 0] +
Subscript[b, 0, 1]);
m7 = (Subscript[a, 0, 1] - Subscript[a, 1, 1])*(Subscript[b, 1, 0] +
Subscript[b, 1, 1]);
strassenAB = ( {
{m1 + m4 - m5 + m7, m3 + m5},
{m2 + m4, m1 + m3 - m2 + m6}
} )
strassenABisEqual = strassenAB // Simplify // MatrixForm
strassenABisEqual == AB