矩阵分块乘法的证明

news2024/9/22 19:29:41

      设A是一个m \times l的矩阵,B是一个l \times n的矩阵,

A_{m \times l} = \left( \begin{matrix} a_{11} & \cdots & a_{1l} \\ \vdots & \qquad & \vdots \\ a_{m1} & \cdots & a_{ml} \end{matrix} \right)           B_{l \times n} = \left( \begin{matrix} b_{11} & \cdots & b_{1n} \\ \vdots & \qquad & \vdots \\ b_{l1} & \cdots & b_{ln} \end{matrix} \right)

A和B的分块矩阵分别记为  A^{'}B^{'} ,

A^{'}_{s \times t} = \left( \begin{matrix} A_{11} & \cdots & A_{1t} \\ \vdots & \qquad & \vdots \\ A_{s1} & \cdots & A_{st} \end{matrix} \right)        B^{'}_{t \times r} = \left( \begin{matrix} B_{11} & \cdots & B_{1r} \\ \vdots & \qquad & \vdots \\ B_{t1} & \cdots & B_{tr} \end{matrix} \right)

证明AB = A^{'}B^{'}.

证明:设

AB = \left( \begin{matrix} e_{11} & \cdots & e_{1n} \\ \vdots & \qquad & \vdots \\ e_{m1} & \cdots & e_{mn} \end{matrix} \right)     e_{ij} = \sum_{k=1}^l a_{ik} b_{kj} 

A^{'}B^{'} = \left( \begin{matrix} C_{11} & \cdots & C_{1r} \\ \vdots & \qquad & \vdots \\ C_{s1} & \cdots & C_{sr} \end{matrix} \right)  C_{ij} = \sum_{k=1}^t A_{ik} B_{kj}

      要证明AB = A^{'}B^{'},可以首先证AB和A^{'}B^{'}是同型矩阵,即证明A^{'}B^{'}是一个m \times n的矩阵,接着再证AB = A^{'}B^{'},可以把AB做一个与A^{'}B^{'}同样的分块,然后证明相同位置的分块相等。关于矩阵分块,这里有几个结论,1)处于同一行的分块,它们包含的行数相同,2)处于同一列的分块它们包含的列数相同,3)两个可以相乘的分块矩阵,左边矩阵的第i列的分块包含的列数和右边矩阵的第i行的分块包含的行数相同,左边矩阵对行分块及右边矩阵对列分块没有什么限制。

       我们先定义两个函数L和H,L用于获取矩阵分块包含的列数,H用于获取矩阵分块包含的行数,令L(A_{ij}) = l_j (1\leqslant i \leqslant s) 有l_1+l_2+\cdots+l_t=l,同时令H(B_{ij}) = h_i (1 \leqslant j \leqslant r),有h_1+h_2+ \cdots + h_t = l,并且有l_i = h_i(1 \leqslant i \leqslant t),令H(A_{ij}) = h^{'}i(1 \leqslant j \leqslant t),有 h^{'}_1 + h^{'}_2 + \cdots + h^{'}_s = m,令L(B_{ij}) = l^{'}_j(1 \leqslant i \leqslant t),有l^{'}_1 + l^{'}_2 + \cdots + l^{'}_r = n。因为C_{ij} = \sum_{k=1}^t A_{ik} B_{kj},所以H(C_{ij}) = H(A_{ik}) = h^{'}_iL(C_{ij}) = L(B_{kj}) = l^{'}_j,所以C_{ij}是一个h^{'}_i \times l^{'}_j的矩阵,所有与C_{ij}在同一行的子块包含的行数都相同,所有与C_{ij}在同一列的子块包含的列数都相同,所以C_{ij}仍然是一个分块矩阵,A^{'}B^{'}包含的行数为\sum_{i=1}^sH(C_{ij}) = \sum_{i=1}^sh^{'}i = m, 包含的列数为\sum_{j=1}^rL(C_{ij}) = \sum_{j=1}^rl^{'}_j = n,所以A^{'}B^{'}是一个m \times n矩阵,即证明了A^{'}B^{'}和AB是同型矩阵。

       接下来证明AB = A^{'}B^{'}

       把AB做与A^{'}B^{'}同样的分块,记为

            AB = \left( \begin{matrix} E_{11} & \cdots & E_{1r} \\ \vdots & \qquad & \vdots \\ E_{s1} & \cdots & E_{sr} \end{matrix} \right)     只需证明E_{ij} = C_{ij}即可。                           

       要证明E_{ij} = C_{ij},只要证明它们的同位置元素相等,也就是证明(E_{ij})_{uv} = (C_{ij})_{uv},让我们来各自求这两个元素,看它们是否相等。

      先求(E_{ij})_{uv},先求(E_{ij})_{uv}的行列号,H((E_{ij})_{uv}) = H((E_{ij})_{1v}) + u - 1 = \sum_{r=1}^{i-1}H(E_{rv}) + 1 + u -1 = \sum_{r=1}^{i-1}h^{'}_r + u

 令\sum_{r=1}^{i-1}h^{'}_r为p,则H((E_{ij})_{uv}) = p + u

L((E_{ij})_{uv}) = L((E_{ij})_{u1}) + v - 1 = \sum_{c=1}^{j-1}L(E_{uc}) + 1 + v -1 = \sum_{c=1}^{j-1}l^{'}_c + v

\sum_{c=1}^{j-1}l^{'}_c为q,L((E_{ij})_{uv}) = q + v,则(E_{ij})_{uv} = e_{p+u, q+v} = \sum_{k=1}^l a_{p+u,k}b_{k,q+v}

接下来求(C_{ij})_{uv}C_{ij} = \sum_{k=1}^t A_{ik} B_{kj},所以(C_{ij})_{uv} = \sum_{k=1}^t (A_{ik} B_{kj})_{uv} = (A_{i1}B_{1j})_{uv} +(A_{i2}B_{2j})_{uv} + \cdots + (A_{it}B_{tj})_{uv}

      下面看如何计算(A_{ik} B_{kj})_{uv},根据矩阵的乘法规律,它是用A_{ik}的第u行乘以B_{kj}的第v列得到,

      H((A_{ik})_{u1}) = H((A_{ik})_{11}) + u - 1= \sum_{r=1}^{i-1}H(A_{r1}) + 1 + u - 1 = \sum_{r=1}^{i-1}h^{'}_r + u = p+u

      L((A_{ik})_{u1}) = \sum_{c=1}^{k-1}L(A_{ic}) + 1 = \sum_{c=1}^{k-1}l_c + 1

      H((B_{kj})_{1v}) = H((B_{kj})_{11}) = \sum_{r=1}^{k-1}H(B_{rj}) + 1 = \sum_{r=1}^{k-1}h_r + 1

      L((B_{kj})_{1v}) = L((B_{kj})_{11}) + v -1 = \sum_{c=1}^{j-1}L(B_{kc}) + 1 + v - 1= \sum_{c=1}^{j-1}l^{'}_c + v = q + v

      A_{ik}的第u行为:\{ a_{p+u, w}|\sum_{c=1}^{k-1}l_c + 1 \leqslant w \leqslant \sum_{c=1}^{k}l_c \}

      B_{kj}的第v列为:\{b_{w,q+v}|\sum_{r=1}^{k-1}h_r + 1 \leqslant w \leqslant \sum_{r=1}^{k}h_r \}

     别忘了有l_i = h_i(1 \leqslant i \leqslant t),于是(A_{ik} B_{kj})_{uv} = \sum_{w=h_1+h_2+\cdots+h_{k-1} + 1}^{h_1+h_2+\cdots+h_k}a_{p+u,w}b_{w,q+v},       (C_{ij})_{uv} = \sum_{k=1}^t (A_{ik} B_{kj})_{uv} = (A_{i1}B_{1j})_{uv} + (A_{i2}B_{2j})_{uv} + \cdots + (A_{it}B_{tj})_{uv} = \sum_{w=1}^{h_1}a_{p+u,w}b_{w,q+v} + \sum_{w=h_1 + 1}^{h_1+h_2}a_{p+u,w}b_{w,q+v} + \cdots + \sum_{w=h_1+h_2+\cdots+h_{t-1} + 1}^{h_1+h_2+\cdots+h_t}a_{p+u,w}b_{w,q+v} = \sum_{w=1}^{h_1+h_2+\cdots+h_t}a_{p+u,w}b_{w,q+v} = \sum_{w=1}^{l}a_{p+u,w}b_{w,q+v}

     (E_{ij})_{uv} = (C_{ij})_{uv},因此AB = A^{'}B^{'}

     证明完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.C语言(变量和常量)

一、变量和常量的概念 变量:可以变的量 常量:不可变的量 变量举例: 1.变量的分类 1.1 分为全局变量和局部变量 全局变量:大括号外定义的变量 局部变量:大括号内的变量 1.2注意: 注入在同一范围内&am…

MAC多版本Java环境变量切换

在Mac上切换不同版本的Java环境变量可以通过以下步骤进行: 1. 打开终端(Terminal)应用程序。 2. 使用vi或者nano等编辑器打开.zshrc文件。如果该文件不存在,可以创建一个新的文件。 3.使用命令查看当前电脑已安装的JAVA版本 /usr…

不改一行代码轻松玩转 Go 应用微服务治理

作者:赵源筱 Go 应用微服务治理简介 Go 语言具有简洁、高效、并发性强等特性,已经被广泛认为是构建微服务的理想选择之一。Go 语言作为构建 Kubernetes、Docker 的主要编程语言,目前不仅在云原生基础组件领域中被广泛使用,也逐渐…

深入浅出LangChain:从模型调用到Agents开发的全流程指南

2024最新LangChain全面解析:从基础组件到AI应用构建 LangChain、LangGraph、LangSmith:打造完整AI解决方案的利器 本文将对于LangChain的基本组件、用途、用法进行介绍。 LangChain、LangGraph以及LangSmith的组合,极大的简化了开发者构建AI应用、Agents、Tools的…

看新闻知补贴不用专门薅羊毛!让工作变舒服的5个黄金法则——早读(逆天打工人爬取热门微信文章解读)

你们都不看新闻吗? 引言Python 代码第一篇 洞见 让工作变舒服的5个黄金法则第二篇 故事之散户结尾 (发了3000亿以旧换新补贴,大家没有感觉到力度吗? 时间到今年年底,9月-12月是消费区,中间夹杂个双十一,现在…

[易聊]软件项目测试报告

一、项目背景 随着互联网发展,各种各样的软件,比如游戏、短视频、购物软件中都有好友聊天功能,这是一个可在浏览器中与好友进行实时聊天的网页程序。“ 易聊 ”相对于一般的聊天软件,可以让用户免安装、随时随地的通过浏览器网页…

页面内容---复制粘贴【收藏版】【H5 web端亲测有效】

js中的复制粘贴 . 页面内容—复制粘贴【收藏版】【H5 web端亲测有效】 navigator.clipboard.writeText(copyText) 是 Web API 中的一个方法,用于将指定的文本内容复制到用户的剪贴板。这个方法属于 Clipboard API,它使得网页能够读取和写入剪贴板的内容…

【笔记】数据结构笔记02

toc 前话 算法学习网站&#xff1a; itcharge 代码随想录 labuladong 参考严蔚敏数据结构 树与等价问题 typedef PTree MFSet;//查找算法int find_mfset(MFSet S,int i){if(i<1||i>S.n) return -1;//i不属于任一集合for(ji;S.nodes[j].parent>0;jnodes[j].paren…

用宝塔部署项目到阿里云服务器访问不到的问题

今天用宝塔部署项目到阿里云&#xff0c;开始前端部署到了80端口&#xff0c;能正常访问&#xff0c;后端部署到了8081&#xff0c;但是后端接口一直无响应&#xff0c;最后超时。 但是java正常运行 系统防火墙的状态正常&#xff0c;策略也是放行 阿里云安全组也已经配置了 …

【性能优化】:从理论中来到实践中去(三)

本文主要介绍真实代码实现 序言 根据前面两篇文章的梳理 【性能优化】&#xff1a;探索系统瓶颈的根源&#xff08;一&#xff09; 【性能优化】&#xff1a;设计模式与技术方案解析&#xff08;二&#xff09; 我们已经知道了自动化跑批系统的核心功能&#xff0c;今天就来真…

如何使用混合搜索实现更好的 LLM RAG 检索

通过结合密集嵌入和BM25构建高级本地LLM RAG管道 基本的检索增强生成&#xff08;RAG&#xff09;管道使用编码器模型在给定查询时搜索相似文档。 这也被称为语义搜索&#xff0c;因为编码器将文本转换为高维向量表示&#xff08;称为嵌入&#xff09;&#xff0c;在该表示中&…

【计算机组成原理】汇总五、中央处理器

五、中央处理器 文章目录 五、中央处理器1.CPU的功能与结构1.1CPU功能1.2运算器1.2.1基本结构1.2.2 ALU和寄存器的数据通路 1.3控制器1.3.1基本结构1.3.2控制器功能 1.4CPU的基本结构 2.指令执行过程2.1指令周期2.2指令周期流程2.3数据流2.4指令执行方案&#xff1a;如何安排多…

Type-C接口诱骗取电快充方案

Type-C XSP08Q 快充协议芯片是一种新型电源管理芯片&#xff0c;主要负责控制充电电流和电压等相关参数&#xff0c;从而实现快速充电功能。Type-C XSP08Q快充协议是在Type-C接口基础上&#xff0c;加入了XSP08Q协议芯片的支持&#xff0c;很大程度上提升了充电速度。 正常情况…

ConcurrentHashMap扩容原理 | 存储流程 | 源码探究

新人写手&#xff0c;代码菜鸡&#xff1b;笔下生涩&#xff0c;诚惶诚恐。 初试锋芒&#xff0c;尚显青涩&#xff1b;望君指点&#xff0c;愿受教诲。 本篇文章将从源码的层面&#xff0c;探讨ConcurrentHashMap的存储流程以及扩容原理 Java版本为JDK17&#xff0c;源代码可…

Ollama 本地部署

文章目录 前言一、Ollama是什么&#xff1f;二、使用步骤1.安装 OllamaWindows检验是否安装成功 2.运行ollama 模型库运行模型提问修改配置&#xff08;可选&#xff09;如果有个性化需求&#xff0c;需要修改默认配置&#xff1a; 参考 前言 Ollama是一个易于使用的本地大模型…

LivePortraitV3,支持图像驱动和区域控制,更精确的人像控制(WIN,MAC)

LivePortrait又又又又更新了&#xff01;这速度真是&#x1f44d;&#x1f3fb;&#x1f44d;&#x1f3fb; 【LivePortraitV3&#xff0c;支持图像驱动和区域控制&#xff0c;更精确的人像控制&#xff08;WIN&#xff0c;MAC&#xff09;】 https://www.bilibili.com/video/…

别暑气 迎秋意

今年长达40天的“三伏”结束啦&#xff01; 伏天过后&#xff0c;暑热逐渐消退&#xff0c;天气开始转凉&#xff0c;秋季逐渐来临。我们也该调整好生活节奏&#xff0c;去迎接收获季节的开始。 1、注意防寒保暖 天气逐渐转凉&#xff0c;昼夜温差不断增大&#xff0c;所以要…

Pytest自动化测试框架关联/参数化实战

关联 利用Python提供的fixture可以实现关联 实现步骤&#xff1a; 在case目录下&#xff0c;新建conftest.py文件&#xff0c;比如我们需要token&#xff0c;就在这个文件下定义一个公共的方法&#xff0c;调用登录接口并返回需要的token值&#xff08;注&#xff1a;公共的方…

【乐企】有关乐企能力测试接口对接-货物运输服务(详细)

1、前置条件&#xff0c;参考【乐企】有关乐企能力测试接口对接-基础版&#xff08;详细&#xff09; 2、接口文档 和基础版区别&#xff1a; 1、传参的时候添加了 用例编码&#xff1a;ylbm 2、发票上传接口的服务编码变化了&#xff1a;fwbm:HWYSFPSC 3、能力编码和用例编码…

Linux——安装软件(mysql)

一、应用部署&#xff1a; 安装软件 运行某个程序或者服务 安装软件包 dnf/yum 包安装工具官方网站提供的集成软件包源码编译安装 // 源码编译的步骤 只应用于编译型语言 对于解释性语言编写的程序 采用不用的方式打包 编译型语言编写的程序&#xff1a; nginx解释性语言…