Strassen矩阵算法分析,应用strassen算法来计算4×4矩阵

N)* Strassen_sub(x,分而治之算法实现2 n * 2 n 矩阵乘法# included doubleStrassen_ sub(constitntx CoutC语言实现Strassen 算法算二矩阵 。
【Strassen矩阵算法分析,应用strassen算法来计算4×4矩阵】
1、如何写出比MATLAB更快的 矩阵运算程序转自知乎:原文链接:矩阵计算基于Intel自己生产的mathkernelllibrary(MKL) , 比其他blas/lapack库快很多 。c在循环中速度很快 。要想矩阵像MATLAB一样快速计算,就得链接MKL,写出来是必然的 。而且就算你链接了,编译时的各种优化选项之类的,还是不如别人的专业设置,速度也很难接近MATLAB 。

即使在我将python的NumPy库链接到MKL之后,速度也只是勉强接近 。因为Gentoo的MKL库永远是最新的,而MKL库的每一个新版本都稍微提高了矩阵,所以可能是NumPy暂时可以媲美MATLAB了 。但是一旦MATLAB的更新版本出来,就会使用更新的MKL库,这种领先优势也就失去了 。

2、 矩阵的乘法,如果两个 矩阵的行列太多,计算乘积结果会很麻烦,有没有简便...使用block 矩阵方法 , 特别是那些行太多的矩阵 。矩阵的乘法比较复杂,就是两个矩阵有mk kn个元素,计算结果有mn个元素,但是计算量是2mnk 。有些方法可以降低计算复杂度,比如Strassen- 。

3、第二张图中画波浪线的地方,这个计算量是两个n/2*n/2 矩阵乘积计算... Key是n/2×n/2的表示 。因为在列出的Strassen-2/中,原来的n×n 矩阵被分成了4个更小的矩阵,每个小矩阵的维数都是n / 。将原来的矩阵乘法分解成7个更小的矩阵(d1到d7)计算 。每个D都是n/2×n/2的两个小矩阵维数的乘积 。有七个这样的D,所以是七次 。

4、求多个 矩阵联乘的最优 算法!这是我们学过的课本算法 Design中的一个例子 。属于动态规划 。需要的话我给你源码~还有我们老师修改的分析~ 。动态编程 。类似最优三角剖分和最优二叉查找树,属于分治动态规划D [i] [j] min (d [i,k] d [k,j] opt [i,j]),I1Y1Strassen_ sub (a,p);//前一个P次方进一步分成两个字的子问题y2 Strassen_sub(a,
进一步分为两个字子问题return(y1 y2);} doubleStrassen_ main(constin tx,constin TN){//n > 0 return(Strassen_ sub(x,n)* Strassen_sub(x,n));}voidmain(){intx2,n8;标准输 。

    推荐阅读