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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
《算法导论(第三版)》第四章4.2,使用strassen算法计算矩阵的乘法。
" t9 t1 D- W1 t2 L% i: P, W7 t( A5 z. X8 O! K
主函数:4 K' T! o8 H* L, H% `9 O% O5 P* p, a
  • 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结果
    5 {, Z. \# T! F4 y# t4 W
. d1 R; P! |. \+ D

2 c' x2 ^; u. t/ C3 y% z+ K& K: Pstrassen函数
. @/ j+ {, x+ e7 j) w9 I6 m
  • 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, {; n: H5 N! r9 l+ Z
% K/ K' D1 Q: @! N: V1 d

8 Z6 Z* v+ C# \  P, E0 n
2 A) {8 R0 A; M9 W9 H5 v+ K

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-20 19:31 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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