找回密码
 注册
关于网站域名变更的通知
查看: 389|回复: 1
打印 上一主题 下一主题

《算法导论(第三版)》第四章4.2,使用strassen算法计算矩阵的乘法。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-11 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
《算法导论(第三版)》第四章4.2,使用strassen算法计算矩阵的乘法。
1 z: g5 y9 t6 I! g; j& E
' L# |9 L) H; C* |# h主函数:
- P) F) m) e; _$ d3 n+ I
  • clear;clc
  • A=[1 3;7 5];%测试数据
  • B=[6 8;4 2];%测试数据
  • C1=A*B%标准数据结果
  • C1=strassen(A,B)%strassen结果
  • A=[45 12 32 12 ;52 32 10 54;20 43 20 1;15 96 03 4];%测试数据
  • B=[96 25 34 62 ;38 10 5  41;13 62 2 17;10 62 19 27];%测试数据
  • C2=A*B%标准数据结果
  • C2=strassen(A,B)%strassen结果
    & ~  B" }: {) w4 f2 u! W( O
! y! L1 i) H8 ^- x( y" V" _# }9 W

6 ^8 n4 L+ I5 bstrassen函数% b: u. C: u! O+ t, K: S. f. D
  • function [C] = strassen(A,B)
  • %strassen算法,输入的size==2^n
  • n=length(A);
  • if n==1
  •     C=A*B;%单个长度,就直接计算
  • else
  •     %步骤二的计算公式
  •     S1=B(1:n/2,n/2+1:n)-B(n/2+1:n,n/2+1:n);
  •     S2=A(1:n/2,1:n/2)+A(1:n/2,n/2+1:n);
  •     S3=A(n/2+1:n,1:n/2)+A(n/2+1:n,n/2+1:n);
  •     S4=B(n/2+1:n,1:n/2)-B(1:n/2,1:n/2);
  •     S5=A(1:n/2,1:n/2)+A(n/2+1:n,n/2+1:n);
  •     S6=B(1:n/2,1:n/2)+B(n/2+1:n,n/2+1:n);
  •     S7=A(1:n/2,n/2+1:n)-A(n/2+1:n,n/2+1:n);
  •     S8=B(n/2+1:n,1:n/2)+B(n/2+1:n,n/2+1:n);
  •     S9=A(1:n/2,1:n/2)-A(n/2+1:n,1:n/2);
  •     S10=B(1:n/2,1:n/2)+B(1:n/2,n/2+1:n);
  •     %步骤三的递归公式
  •     P1=strassen(A(1:n/2,1:n/2),S1);
  •     P2=strassen(S2,B(n/2+1:n,n/2+1:n));
  •     P3=strassen(S3,B(1:n/2,1:n/2));
  •     P4=strassen(A(n/2+1:n,n/2+1:n),S4);
  •     P5=strassen(S5,S6);
  •     P6=strassen(S7,S8);
  •     P7=strassen(S9,S10);
  •     %步骤四的结果相加
  •     C(1:n/2,1:n/2)=P5+P4-P2+P6;
  •     C(1:n/2,n/2+1:n)=P1+P2;
  •     C(n/2+1:n,1:n/2)=P3+P4;
  •     C(n/2+1:n,n/2+1:n)=P5+P1-P3-P7;
  • end
  • end* m& Z' H; k1 Q0 P. w6 A
( {6 h% V+ T( f( E3 @* @
& g2 p' ^8 W: F/ x$ h4 M" K! B
  H+ K( `+ }8 p2 r$ U. l7 a) g! u" h

该用户从未签到

2#
发表于 2020-3-11 16:55 | 只看该作者
使用strassen算法计算矩阵的乘法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-1 14:02 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表