精华内容
下载资源
问答
  • 2.10 分块矩阵求逆

    千次阅读 2020-03-20 12:34:24
    分块矩阵求逆法,把大型矩阵变成小型矩阵,可以提高计算效率。 1、准对角矩阵 A=[A11OOA22]A= \left[ \begin{matrix} A_{11} & \mathbf{O} \\ \mathbf{O} & A_{22} \\ \end{matrix} \right]A=[A11​O​OA22...

    分块矩阵求逆

    分块矩阵求逆法,把大型矩阵变成小型矩阵,可以提高计算效率。

    1、准对角矩阵 A = [ A 11 O O A 22 ] A= \left[ \begin{matrix} A_{11} & \mathbf{O} \\ \mathbf{O} & A_{22} \\ \end{matrix} \right] A=[A11OOA22] 的逆,可以待定系数法求,设逆矩阵为 A − 1 = [ X Y Z W ] A^{-1}= \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] A1=[XZYW] ,则
    [ X Y Z W ] [ A 11 O O A 22 ] = [ E n O O E m ] \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] \left[ \begin{matrix} A_{11} & \mathbf{O} \\ \mathbf{O} & A_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} E_n & \mathbf{O} \\ \mathbf{O} & E_m \\ \end{matrix} \right] [XZYW][A11OOA22]=[EnOOEm]

    计算

    [ X Y Z W ] [ A 11 O O A 22 ] = [ X A 11 Y A 22 Z A 11 W A 22 ] = [ E n O O E m ] \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] \left[ \begin{matrix} A_{11} & \mathbf{O} \\ \mathbf{O} & A_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} XA_{11} & YA_{22} \\ ZA_{11} & WA_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} E_n & \mathbf{O} \\ \mathbf{O} & E_m \\ \end{matrix} \right] [XZYW][A11OOA22]=[XA11ZA11YA22WA22]=[EnOOEm]

    令对应元素相等,得

    X A 11 = E n Y A 22 = O Z A 11 = O W A 22 = E m XA_{11} = E_n \quad YA_{22} = \mathbf{O} \\ ZA_{11} = \mathbf{O} \quad WA_{22} = E_m XA11=EnYA22=OZA11=OWA22=Em

    由于矩阵 A 11 , A 22 A_{11} , A_{22} A11,A22 ,可得 X = A 11 − 1 , Y = O , Z = O , W = A 22 − 1 X=A^{-1}_{11},Y=\mathbf{O},Z=\mathbf{O},W=A^{-1}_{22} X=A111,Y=O,Z=O,W=A221 ,所以 A − 1 = [ A 11 − 1 O O A 22 − 1 ] A^{-1}= \left[ \begin{matrix} A^{-1}_{11} & \mathbf{O} \\ \mathbf{O} & A^{-1}_{22} \\ \end{matrix} \right] A1=[A111OOA221]

    2、准下角矩阵 A = [ A 11 O A 21 A 22 ] A= \left[ \begin{matrix} A_{11} & \mathbf{O} \\ A_{21} & A_{22} \\ \end{matrix} \right] A=[A11A21OA22] 的逆,可以待定系数法求,设逆矩阵为 A − 1 = [ X Y Z W ] A^{-1}= \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] A1=[XZYW] ,则
    [ X Y Z W ] [ A 11 O A 21 A 22 ] = [ E n 0 0 E m ] \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] \left[ \begin{matrix} A_{11} & \mathbf{O} \\ A_{21} & A_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} E_n & 0 \\ 0 & E_m \\ \end{matrix} \right] [XZYW][A11A21OA22]=[En00Em]

    计算

    [ X Y Z W ] [ A 11 O A 21 A 22 ] = [ X A 11 + Y A 21 Y A 22 Z A 11 + W A 21 W A 22 ] = [ E n O O E m ] \left[ \begin{matrix} X & Y \\ Z & W \\ \end{matrix} \right] \left[ \begin{matrix} A_{11} & \mathbf{O} \\ A_{21} & A_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} XA_{11}+YA_{21} & YA_{22} \\ ZA_{11}+WA_{21} & WA_{22} \\ \end{matrix} \right]= \left[ \begin{matrix} E_n & \mathbf{O} \\ \mathbf{O} & E_m \\ \end{matrix} \right] [XZYW][A11A21OA22]=[XA11+YA21ZA11+WA21YA22WA22]=[EnOOEm]

    令对应元素相等,得

    X A 11 + Y A 21 = E n Y A 22 = O Z A 11 + W A 21 = O W A 22 = E m XA_{11}+YA_{21} = E_n \quad YA_{22} = \mathbf{O} \\ ZA_{11}+WA_{21} = \mathbf{O} \quad WA_{22} = E_m XA11+YA21=EnYA22=OZA11+WA21=OWA22=Em

    由于矩阵 A 11 , A 22 A_{11} , A_{22} A11,A22 ,可得 X = A 11 − 1 , Y = O , Z = − A 22 − 1 A 21 A 11 − 1 , W = A 22 − 1 X=A^{-1}_{11},Y=\mathbf{O},Z=-A^{-1}_{22}A_{21}A^{-1}_{11},W=A^{-1}_{22} X=A111,Y=O,Z=A221A21A111,W=A221 ,所以 $A^{-1}=
    \left[ \begin{matrix}
    A^{-1}{11} & \mathbf{O} \
    -A{-1}_{22}A_{21}A{-1}
    {11} & A^{-1}_{22} \
    \end{matrix} \right] $ 。

    3、准上角矩阵 A = [ A 11 A 12 O A 22 ] A= \left[ \begin{matrix} A_{11} & A_{12} \\ \mathbf{O} & A_{22} \\ \end{matrix} \right] A=[A11OA12A22] 的逆 A − 1 = [ A 11 − 1 − A 11 − 1 A 12 A 22 − 1 O A 22 − 1 ] A^{-1}= \left[ \begin{matrix} A^{-1}_{11} & -A^{-1}_{11}A_{12}A^{-1}_{22} \\ \mathbf{O} & A^{-1}_{22} \\ \end{matrix} \right] A1=[A111OA111A12A221A221]

    上面三个例子显示,如果子矩阵是 O \mathbf{O} O 矩阵,逆矩阵对应的子矩阵也是 O \mathbf{O} O 矩阵,这些位置的元素不需要计算,直接是 0 0 0 ,在实际计算逆矩阵时,可以提高效率。
    分块矩阵计算逆矩阵,如3阶准上角矩阵, A = [ 1 3 5 2 4 6 0 0 7 ] A= \left[ \begin{matrix} 1 & 3 & 5 \\ 2 & 4 & 6 \\ 0 & 0 & 7 \end{matrix} \right] A=120340567 ,4个子矩阵分别为 A 11 = [ 1 3 2 4 ] , A 12 = [ 5 6 ] , A 21 = [ 0 0 ] , A 22 = [ 7 ] A_{11} = \left[ \begin{matrix} 1 & 3 \\ 2 & 4 \\ \end{matrix} \right], A_{12} = \left[ \begin{matrix} 5 \\ 6 \\ \end{matrix} \right], A_{21} = \left[ \begin{matrix} 0 & 0 \end{matrix} \right], A_{22} = \left[ \begin{matrix} 7 \end{matrix} \right] A11=[1234],A12=[56],A21=[00],A22=[7] 。根据2阶逆矩阵公式,得 A 11 − 1 = [ 4 − 3 − 2 1 ] / ( − 2 ) A^{-1}_{11} = \left[ \begin{matrix} 4 & -3 \\ -2 & 1 \\ \end{matrix} \right] / (-2) A111=[4231]/(2) A 22 − 1 = [ 1 / 7 ] A^{-1}_{22} = \left[ \begin{matrix} 1/7 \end{matrix} \right] A221=[1/7] − A 11 − 1 A 12 A 22 − 1 = [ 1 − 2 ] / 7 -A^{-1}_{11}A_{12}A^{-1}_{22}=\left[ \begin{matrix} 1 \\ -2 \\ \end{matrix} \right]/7 A111A12A221=[12]/7 , 所以逆矩阵为 A − 1 = [ − 2 3 / 2 1 / 7 1 − 1 / 2 − 2 / 7 0 0 1 / 7 ] A^{-1}= \left[ \begin{matrix} -2 & 3/2 & 1/7 \\ 1 & -1/2 & -2/7 \\ 0 & 0 & 1/7 \end{matrix} \right] A1=2103/21/201/72/71/7 。 读者可以验证 A A − 1 = E , A − 1 A = E AA^{-1}=E, A^{-1}A=E AA1=E,A1A=E 。比直接计算3阶矩阵的逆要快很多。

    展开全文
  • python 空矩阵

    2020-11-29 13:25:28
    稀疏矩阵不必以标准矩阵形式表示。 有很多方法可以缓解这种标准形式给我们的计算系统带来的压力,而且恰恰是这种情况使得流行的python机器学习主力scikit...稀疏矩阵带来的一个问题是,它们可能会占用很大的内存。 ...

    o55g08d9dv.jpg广告关闭

    腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!

    稀疏矩阵不必以标准矩阵形式表示。 有很多方法可以缓解这种标准形式给我们的计算系统带来的压力,而且恰恰是这种情况使得流行的python机器学习主力scikit...稀疏矩阵带来的一个问题是,它们可能会占用很大的内存。 假设采用标准的方法来表示2x2矩阵,则尽管没有捕获到有用的信息,也需要在内存中为每个空表示进行...

    2u6g160ois.png

    numpy是用于处理矩阵运算非常好的工具。 执行效率高,因为其底层是用的是c语句使用numpy,需要将数据转换成numpy能识别的矩阵格式。 基本用法: numpy.array(object, dtype = none, copy = true, order = none,subok = false,ndmin = 0) 名称描述object数组或嵌套的数列dtype数组元素的数据类型,可选,例如...

    估计的协方差可能在数值上不稳定,并且倾向于在估计的源振幅和可用样本数之间引起相关性。 因此,mne手册建议对噪声协方差矩阵进行正则化(请参阅对噪声协方差矩阵进行正则化),尤其是在只有少量样本可用的情况下。 然而,要说出样本的有效数量并不容易,因此要选择适当的正则化。 在mne-python中,使用中所述的高级...

    我是一个相当新的python。 我创建了一个空矩阵: a = numpy.zeros(shape=(n,n)) 现在我可以使用每个元素 :a.item(i,j) 我如何设置索引(i,j)?...

    sk74nxzywe.png

    csr、csc是用于矩阵-矩阵和矩阵-向量运算的有效格式,lil格式用于生成和更改稀疏矩阵。 python不能自动创建稀疏矩阵,所以要用scipy中特殊的命令来得到稀疏矩阵。 (1)压缩稀疏行(csr,compressed sparse row):或csr_matrix按行对矩阵进行压缩的。 csr使用了三个数组,分别为数值、行偏移(表示某一行的第一个元素...

    np.ones((128, 256, 150))hr_y = np.ones((256, 128, 150))hr_z =np.ones((256, 256, 75))merged = np.zeros(hr_shape)merged += hr_xmerged +=hr_ymerged += hr_zprint(merged)#部分输出]]上面是我敲的简单代码,我想建立一个三维的图片矩阵,具体操作跟代码一样,间隔为2 然后将图片插入矩阵,这样空的部分我想通过...

    numpy是python做数据分析所必须要掌握的基础库之一。 以下为入门numpy的100题小练习,原为github上的开源项目,由和鲸社区的小科翻译并整理(保留了部分原文作为参考)。 受限于篇幅,小编在这里只提供了部分题目的运行结果。 友情提示:代码虽好,自己动手才算学到。 1. 导入numpy库并简写为 np ()(提示: import ...

    创建一个空的稀疏矩阵 # format:csr_matrix((row_len, col_len)) empty_sparse_matrix =sparse.csr_matrix((600, 600))注意,我们不应该创建一个空的稀疏...时间复杂度除了空间复杂性之外,密集的矩阵也会加剧运行时。 我们将用下面的一个例子来说明。 那么我们如何表示这些矩阵呢? scipy的稀疏模块介绍在python...

    我在工程中使用matlab的矩阵和python混合使用以上对象,出现最多就是shape不对应,index,columns 错误。 最好不要混用不同数据结构,容易出错,更增加转化的性能开销参考:https:blog.csdn.netu010383605articledetails78935836...

    稀疏矩阵本质上还是矩阵,只不过多数位置是空的,那么存储所有的 0 非常浪费。 稀疏矩阵的存储机制有很多种 (列出常用的五种): coo (coordinate list format):座标格式,容易创建但是不便于矩阵计算,用 coo_matrixcsr (compressed sparse row): 压缩行格式,不容易创建但便于矩阵计算,用 csr_matricsc ...

    python数据结构列表将列表当做堆栈使用将列表当作队列使用列表推导式嵌套列表解析del语句元组和序列集合字典遍历技巧列表python中列表是可变的...以下实例展示了3x4的矩阵列表:matrix=,]以下实例将3x4的矩阵列表转换为4x3列表:print(forrowinmatrix]foriinrange(4)])运行结果:, , ,]以上这种转换是...

    创建矩阵(采用ndarray对象)对于python中的numpy模块,一般用其提供的ndarray对象。 创建一个ndarray对象很简单,只要将一个list作为参数即可。 例如:import numpy as np #引入numpy库 #创建一维的narray对象 a = np.array()#创建二维的narray对象 a2 = np.array(,])#创建多维对象以其类推获取矩阵行数列数(二维...

    转为3行 2列矩阵,注意元素个数不能多不能少# 空矩阵kong = np.zeros((3,4)) # 创建3行4列全为0的矩阵float类型print(kong)# 指定值的矩阵defau = np.ones((2,3,4),dtype=np.int) # 三维 3行 4列,2 个 int 类型print(defau)# 从10开始 30 步长为5np.arange(10,30,5) # 不包含30#随机模块np.random.random((2,3)) # 两...

    python学习数据库介绍mysql数据库存储数据的方式与excel类似,都是以表格的形式来存储数据。 excel一般用一张表来存储少量的数据,数据库可以用多个表来存储大量的数据。 用其他方式存储数据,如果数据量少,读取的时候会很快,但是如果数据量过大,读取数据的速度就比较慢了; 但是使用数据库就能高效的读取数据...

    python自带的数据结构分为可变和不可变的:可变的有:数组、集合、字典,不可变的是:字符串、元组、整数 26、什么是python的命名空间? 在python中,所有...分别的应用场景? numpy 是的扩展包,纯数学。 pandas 做 以矩阵为基础的数学计算模块。 提供了 一套名为 dataframe 的数据结构,比较契合统计分析中的表...

    python内置了一系列的常用函数,以便于我们使用python。 基本的数据操作基本都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本io操作,然后就是对于语言自身的反射操作,还有就是字符串操作。 官方文档: https:docs.python.org3libraryfunctions.html? highlight=built#ascii 截图如下:? 简单做一下...

    这篇文章主要是结合机器学习实战将推荐算法和svd进行相应的结合任何一个矩阵都可以分解为svd的形式其实svd意义就是利用特征空间的转换进行数据的映射,后面将专门介绍svd的基础概念,先给出python,这里先给出一个简单的矩阵,表示用户和物品之间的关系这里我自己有个疑惑? 对这样一个data = u(z)vt这里的u和v真正...

    elb89fbfpe.png

    natural language processing (nlp) using python4.8相似矩阵下一步就是计算句子间的相似性,我们将用余弦相似性来衡量句子的相似性。 我们先构建一个空矩阵,然后填入句子间的余弦相似度。 初始矩阵的大小是n*n, n代表句子数量。 #构建相似矩阵sim_mat=np.zeros()#使用余弦相似来计算两个句子间的相似度fromsklearn...

    误用 list 乘法今天刷 leetcode 碰到一个水题转置矩阵,这不就是先生成个空的倒置矩阵再填结果嘛,没多想就用 list 乘法上手就写。 class solution: def transpose(self, a): :type a: list] :rtype: list] x,y = len(a), len(a) buff = * x] * y for i in range(x): for j in range(y):buff = a return buff看似结果...

    q5rt8ifqst.jpeg

    通常用于命令行参数re: 正则匹配math: 数学运算datetime:处理日期时间4、字典如何删除键和合并两个字典del和update方法 ? 5、谈下python的gilgil 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即gil),使该进程内的其他线程无法运行,等该...

    展开全文
  • 这是上一章21二次型的续章节。二次型(下)。本文重点介绍正定矩阵和正定二次型。...1、正定矩阵A是对称矩阵中的一种。其特点是:(1)A的所有特征值都是正的(2)矩阵A行最简的主元都是正的。也就是对角阵...

    这是上一章21二次型的续章节。二次型(下)。

    本文重点介绍正定矩阵和正定二次型。内容简单,阅读时间四十五分钟内。

    本章参考视频有,厦门大学—高等代数、清华—线性代数(马辉)、麻省理工—线性代数

    本人只记录实用的,不会所有都写进去。

    正定矩阵虽然之前19章已经提到过,但具体的判定要需要学习。

    1、正定矩阵A是对称矩阵中的一种。其特点是:

    (1)A的所有特征值都是正的

    (2)矩阵A行最简的主元都是正的。也就是对角阵是正的,对角元也是正的。
    (3)正定矩阵A化为二次型后,

    (4)

    ,并且行列式detA>0

    以上4条,只要任意一条成立(其它三条也必然成立),即可以认为在对称矩阵的前提下,这个对称矩阵是“正定矩阵”。

    注意:

    可以将

    x写为[x1,x2,...,xn]

    xT写为:

    x1

    x2

    ...

    xn

    然后这两个向量再和A左右相乘。

    但其实 运用上一章二次型的方法,“将A矩阵去写成二次型方程”,就是

    比如:A矩阵为

    2 6

    6 20

    转为二次型为

    这个二次型刚好等于用三个矩阵相乘

    的值。

    2、半正定矩阵:

    正定矩阵行列式detA>0,而当行列式detA≥0时,这个对称矩阵是半正定矩阵。

    性质是:(基于首先是个对称矩阵的前提下)

    (1)每个特征值大于或等于0

    (2)detA≥0

    举个例子吧:

    有二阶矩阵A:

    2 6

    6 ?

    ?号这个位置,如果等于18就是半正定矩阵,因为行列式为0;如果大于18就是正定矩阵,det>0。

    另外如果是

    2 6

    6 18

    二次型判定即是:

    这个式子的结果 x存在有可能让整个式子等于0的情况,所以是半正定。

    对于

    2 6

    6 20

    这个式子的结果恒大于0,所以是正定。

    另外:

    通过矩阵是正定矩阵,我们可以转化为xTAx ,所代表的二次型方程的二阶导数必然为正数,那么即是有最小值。

    3、判定极大极小值:

    若二次型方程一阶导数必为0,则有极值,但不清楚极大还是极小;

    二阶导数为正,是最小值;是一个U型曲线

    二阶导数为负,是最大值。是一个倒U型曲线。

    引申:

    当det=0时,必能化简有0行或0列,为奇异矩阵(参见之前章节中“运转路线”)

    也就是说如果这是个半正定矩阵,那么一定是奇异矩阵,不可逆矩阵。

    如果是正定矩阵,就是非奇异的,可逆矩阵,满秩,不降维。

    4、正定二次型:

    (概念)

    在第1点补充注意部分,提及矩阵A可以写成

    ,去判断正定性质,

    而A矩阵用上一章“矩阵化二次型”的方法得到的“二次型方程”就正是

    那么,

    如果这个矩阵A对应的二次型方程,去除方程中未知数全部取0的情况,方程恒大于0,那这个二次型方程就称之为“正定二次型”。

    也就是:

    永远都大于0,

    且判定大于0的条件是基于“去除x1,x2,...xn全部取0”的情况。(注意:是不全为0,也就是多个未知数中,可以取0,但不要全部取0.)

    这就是正定二次型。

    判断正定二次型的计算方法和“不全为0”的理解,见本章第6点。

    5、负定型、半负定型、不定型、正定型、半正定型:

    正定矩阵对应正定二次型(正定型),

    半正定矩阵对应半正定二次型(半正定型),

    还有负定型、半负定型、不定型:

    看下书上概念:

    e93b44b359ea8478e88ddde76f06f67c.png

    注:

    上面的第五点可理解为:其它情形的 f 称为不定。

    00cd01fc31f55bdf45466a9f68fa125b.png

    6、判断正定二次型的计算方法: 配方法

    12fcadeba00341d406a60dd385cb89eb.png

    运用配方法:

    (1)化为:

    469c3249227c870d965837742296dacb.png

    可见如果不取0,这个方程恒大于0,所以它是正定矩阵。

    假若取0,为了不违反“未知数不能全为0”的先决条件,那只是x1取0,x2不能取0;

    又或者x2取0,x1不能取0,这样也可以。无论哪种情况,都是恒大于0,正定矩阵。

    (2)(3)

    305a7417ed8546f13f028ce3fde61e86.png

    (2)的情况,显然x1=x2时,方程为0;但如果x1不等于x2,方程大于0.

    所以方程≥0,为半正定矩阵、半正定型。

    (3)将 第一项拆分为

    ,然后和
    比较大小,发现当x1=1,x2=1,时候,左边为0.25,右边为四分之五,所以小减大是小于零的;但这个二次型方程更加易知大于0的情况。

    所以方程≥0,为半正定矩阵、半正定型。

    7、正定矩阵A的合同矩阵B(合同关系矩阵)仍然是正定的。

    以下对于正定矩阵互相等价的性质:

    fd211ce226c6bbb84fea8d6dc212cf44.png

    (6)A的所有顺序主子式皆大于0。(顺序主子式:参见第19章。补充:顺序主子式一定是从

    开始的。)

    A是n阶实对称矩阵,当存在下面任意一种情况,则(1)—(6)之间可以互推。

    p是正惯性。n是秩。

    注意:A正定,可推

    正定,合同关系下的B也正定,但A*B一般不正定。

    另外:正定矩阵里面的最大的数在正定矩阵的主对角线上。

    8、(题目)

    题目1:

    fbbf937f331547afa45b98bd1ca2bb2b.png

    3a9ac73faa926e31520864d795d86353.png

    思路:通过顺序主子式判断。

    题目2:

    75c3cc9564b751434301da06e3a6b9e9.png

    这一题:

    厦门大学 高等代数课程 第九章 二次型_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

    最后一章节,第22分钟开始。本人没看。以后用到再学习。

    这是最后一道题目,也是我认为其他题目中,比较有用处的一道。

    有些怅怀,高代的二次就学完了,厦大的部分都完结了,虽不是特别完整,但于工作之中,追求实效,“实际”和“效率”,我对我自己是满意的,不是100分,可是我希望给自己打上100分的成绩。

    明天开始进入结束的章节:可能四天我就要结束代数的部分。

    奇异值分解,伪逆。


    (完)

    敬—高效现实的一天。

    展开全文
  • 给定两个N × N的稀疏矩阵A和B,其中矩阵A有P个元素非0,矩阵B有Q个元素非0。请计算两个矩阵的乘积C = A × B并且输出C中所有非0的元素。 输入 第一行包含三个整数N, P, Q 以下P行每行三个整数i, j, k表示A矩阵的一...

    描述
    给定两个N × N的稀疏矩阵A和B,其中矩阵A有P个元素非0,矩阵B有Q个元素非0。请计算两个矩阵的乘积C = A × B并且输出C中所有非0的元素。

    输入
    第一行包含三个整数N, P, Q

    以下P行每行三个整数i, j, k表示A矩阵的一个非0元素:Aij = k

    以下Q行每行三个整数i, j, k表示B矩阵的一个非0元素:Bij = k

    对于80%的数据,1 ≤ N, P, Q ≤ 200

    对于100%的数据, 1 ≤ N, P, Q ≤ 2000, 1 ≤ i, j ≤ N, 0 ≤ k ≤ 100

    输出
    输出若干行,按先行后列的顺序输出矩阵C的每一个非0元素

    每行三个整数i, j, k表示C矩阵的一个非0元素:Cij = k

    样例输入
    2 2 4
    1 1 1
    2 2 1
    1 1 1
    1 2 2
    2 1 3
    2 2 4
    样例输出
    1 1 1
    1 2 2
    2 1 3
    2 2 4

    解析
    在这里插入图片描述

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		int N = sc.nextInt();
            int P = sc.nextInt();
            int Q = sc.nextInt();
            int[][] A = new int[P][3];
            int[][] B = new int[Q][3];
            for (int i = 0; i < P; i++) {
                for (int j = 0; j < 3; j++) A[i][j] = sc.nextInt();
            }
            for (int i = 0; i < Q; i++) {
                for (int j = 0; j < 3; j++) B[i][j] = sc.nextInt();
            }
    
            int[][] C = new int[N ][N];
            for (int i = 0; i < P; i++) {
                for (int j = 0; j < Q; j++) {
                    if (A[i][1] == B[j][0]) {//由图可以看出当A矩阵的列号等于B矩阵的行号时求和
                        C[A[i][0]-1][B[j][1]-1] += A[i][2] * B[j][2];
                    }
                }
            }
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    if (C[i][j] == 0) continue;
                    System.out.println((i+1)+ " " + (j+1) + " " + C[i][j]);
                }
            }
    	}
    }
    
    展开全文
  • 线性代数:矩阵及其运算

    千次阅读 2019-07-15 11:39:31
    总体结构图: 矩阵的定义: 由m*n个数,组成的m行n列的表格(注意,这里的表格,...再有,如果两个矩阵,他们的行数相等,列数相等,那么这两个矩阵叫做同型矩阵。 最后,如果两个矩阵是同型矩阵,且每一个元素...
  • Java实现矩阵相乘问题

    万次阅读 多人点赞 2019-07-15 20:50:24
    1.1实验题目 设M1和M2是两个n×n的矩阵,设计算法计算M1×M2 的乘积。 1.2实验目的 (1)提高应用蛮力法设计算法的技能; (2)深刻理解并掌握分治法的设计思想; (3)理解这样一个观点:用蛮力法设计的算法,...
  • 稀疏矩阵的存储和运算一 目的根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。通过课程设计,加深对《程序设计语言》和《软件技术基础》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和...
  • 题目:设计一个程序,实现一个能进行稀疏矩阵基本运算的计算器。按照教科书《数据结构(C语言版)》(严蔚敏等)5.3.2节中描述的方法,以十字链表表示稀疏矩阵。一、需求分析稀疏矩阵是指那些多数元素为零的矩阵。利用...
  • 矩阵连乘详解

    2019-05-14 22:26:34
    矩阵连乘详解 --crystal yi 既然这篇文章叫做矩阵连乘详解,那么我就不能辜负详解这两个字,只有把一个原来不懂的的人弄懂了,才叫详解。 言归正传,首先让我们复习一下矩阵连乘的有关知...
  • 1 题目描述2 思路分析3 解法4 小结1 题目描述请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法。2 思路分析根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数和另一个矩阵A的行数相等时才能定义。...
  • 题目稀疏矩阵运算器 班级14电子商务平台建设班 完成日期2015.11.2 学号20141103468 姓名 孙少辉 学号20141103421 姓名 杨德龙 学号20141103407 姓名 柴益新 一需求分析 稀疏矩阵是指那些多数元素为零的矩阵利用稀疏...
  • 十五、稀疏矩阵的乘法运算

    千次阅读 2020-10-30 18:51:40
    文章目录十五、稀疏矩阵的乘法运算题目描述解题思路上机代码 题目描述 数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。 本实验要求实现两个稀疏矩阵相乘积的算法**。其中稀疏矩阵非...
  • 本来准备昨天下午写的,但是因为去参加360众测靶场的考核耽搁了,靶场的题目还是挺基础的。继续学习吧。使用黑色墨水在白纸上签名就像由像素点构成的稀疏矩阵。如图4所示。图4手写体签名【问题】请将以下稀疏点阵...
  • 顺时针打印矩阵(编程题讲解)

    万次阅读 2020-02-17 19:16:37
    顺时针打印矩阵题目描述题目分析python代码    《剑指offer》 编程题讲解 题目描述    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11...
  • 十四、矩阵的快速转置算法

    千次阅读 2020-10-29 21:33:38
    文章目录十四、矩阵的快速转置算法题目描述解题思路上机代码 题目描述 数据压缩是提高传输、存储效率一种技术。教材第5章介绍了两种简单的压缩存储方法。本实验要求实现三元组顺序表表示下的矩阵快速转置算法。 输入...
  • C语言程序设计-n阶矩阵求逆系统

    千次阅读 2020-11-16 22:58:09
    第一部分:引言 《C语言程序设计》课程设计是计算机专业非常重要的实践性环节之一,是学生学完《C语言程序设计》课程后一...本报告主要实现了一个求方阵逆矩阵以及证明逆矩阵和原矩阵的乘积为单位矩阵的程序。本程序采
  • 目录广义特征向量协方差和协方差矩阵协方差随机变量的协方差样本的协方差协方差矩阵多维随机变量的协方差矩阵样本的协方差矩阵功率协方差约束 广义特征向量 如果f不等于0,且存在某个正整数m使得:则称f是A的相对于...
  • 矩阵乘法cache优化

    千次阅读 2015-05-05 17:03:24
    好文要转,太棒了~~~~~~~~~~~~~~~~~~~~~~~~~ 题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!...做OJ的朋友都知道快速幂,我就不罗嗦了,我说的主要是矩阵乘法实现层面的优化。
  • (1)laplacian matrix就是无向图中定义 L=D−AL=D-AL=D−A,其中D为邻接矩阵,A为度矩阵(是一个对角矩阵)。 (2)本文用的python计算拉普拉斯矩阵及其特征值、特征向量。 文章目录学习心得一、背景介绍二、Python...
  • 稀疏矩阵的乘法运算

    千次阅读 2020-10-28 15:42:14
    稀疏矩阵的乘法运算题目信息输入输出测试样例解答想法 题目信息 数据压缩是提高传输、存储效率一种技术。 本实验要求实现两个稀疏矩阵相乘积的算法。其中稀疏矩阵非零元素数量小于100. 输入 第1个稀疏矩阵的行数,列...
  • 压缩感知测量矩阵构造方法研究

    万次阅读 多人点赞 2017-08-03 10:23:11
    前言 这是我本科毕设的题目,现在毕业过了一个多月才想起来把毕设做的整理一下,写这个博客不为别的,只为纪念一下本科最后的时光吧。记得刚拿到这个题目时,满脑子都是黑人问号,压缩感知到底是个什么东东?也正是...
  • 【Python练习题 028】求一个3*3矩阵对角线元素之和-----------------------------------------------------这题解倒是解出来了,但总觉得代码太啰嗦。矩阵这东西,应该有个很现成的方法可以直接计算才对…… 啰嗦...
  • 图和树的存储方式:邻接矩阵和邻接表

    千次阅读 多人点赞 2020-02-17 02:28:17
    邻接矩阵和邻接表摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入邻接表 基础算法和数据结构合集: https://blog.csdn.net/GD_ONE/article/details/104061907 摘要 本文主要介绍邻接...
  • 邻接矩阵的优缺点 优点 判断是否邻接效率高 缺点 在稀疏的情况耗费空间 构造的过程耗费时间,为O(N^2) 在查找某节点的邻接对象时耗费时间,为O(N^2),且需要一个一个地判断 邻接链表的优缺点 优点 在查找某节点...
  • 矩阵快速幂的模板,需要自己根据实际题目更改矩阵大小和数据类型,以免WA和TLE。经过矩阵乘法上的稀疏矩阵优化和int64的乘法取模幂优化,效率应该比较高。视情况使用mult()函数或直接使用乘法。代码中每个函数有注释...
  • 题目描述:将n*n的矩阵顺时针旋转九十度,求新数组(用c++写的) 我的思路是开一个新数组,存翻转后的,但是下面这个代码的空间,时间效率明显都比我高,借鉴之。 大佬的思路如下: 先将矩阵按对角线翻转,之后再...
  • 旋转矩阵的数学原理

    千次阅读 2019-10-02 00:05:57
    旋转矩阵涉及到的是一种组合设计:覆盖设计。而覆盖设计,填装设计,斯坦纳系,t-设计都是离散数学中组合优化问题。它们解决的是如何组合集合中的元素以达到某种特定的要求。 为了使读者更容易明白这些问题,下面先...
  • 矩阵乘法C实现

    2021-01-20 19:42:10
    如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的: 结果矩阵中14这个值是通过2 × -2 加上 -6 × -3得到的。 编写一个函数,...
  • 利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相乘的运算。稀疏矩阵采用十字...
  • 最大子矩阵的和(N*N的矩阵)题目描述:给定一个n行n列的矩阵,其中 n 的取值范围为 0到100之间的整数,请找到此矩阵的一个子矩阵,并且此子矩阵的各个元素的和最大,输出这个最大的值。Example:0 -2 -7 09 2 -6 2-4 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,664
精华内容 5,465
关键字:

效率矩阵题目

友情链接: Downloader.zip