实验2-Strassen 矩阵乘法 written by yjf66@qq
com 实验2 Strassen 矩阵乘法 一、 实验目的 1
理解Strassen 矩阵乘法的分治思想 Strassen 矩阵乘法的分治法设计模式是:半分+混合 2
改进Strassen 矩阵乘法对内存的需求 若按Strassen 矩阵乘法的直接表述实现,则空间复杂度将是O(3n2),本实验将试图改进这个方面
Strassen 矩阵乘法的性能问题 改进Strassen 矩阵乘法的内存需求,并不一定能改进Strassen 矩阵乘法的效率,本实验将试图测试一些较大规模(n>=1024)的n 阶方阵的Strassen 矩阵乘,探讨其效率问题
二、 实验环境 C/C++编程环境 或 任何编程语言环境 三、 实验内容 1. Strassen 矩阵乘法描述 尽管Strassen 矩阵乘法的实用价值在当今的多核计算环境下可能不是那么显著,但其理论价值仍值得我们研究
Strassen 矩阵乘法体现了一类重要的分治算法设计模式,即半分+混合,同样具有这种算法设计模式的是FFT(Fast Fourier Transform)-“由于 FFT 这个卓越算法在实践上的重要意义,有些人把它看作是有史以来人们发明的最重要的算法之一
”[1] 实验2-Strassen 矩阵乘法 written by yjf66@qq
com Strassen 矩阵乘法的基本思想,可由下述矩阵乘法概括: 输入:两个n=2k 维方阵A 和B(若A 和B 的维度不是2k,则通过增加元素为0 的行和列,以使A 和B 均为2k 维的方阵) 输出:n 维方阵C (1) 1+41+443-11+24134
12-43+4113
123-11+224
4-43 44+= AB= A B= AB= A B= A