Questions tagged «matrix»

矩阵是元素(eq数字,符号或表达式)的矩形阵列,排列成列和行。

5
有限元矩阵稀疏结构的计算
问题:有哪些方法可以准确有效地计算有限元矩阵的稀疏结构? 信息:我正在使用Poerson压力方程求解器,使用Galerkin方法和二次Lagrange基础(用C编写),并使用PETSc进行稀疏矩阵存储和KSP例程。为了有效地使用PETSc,我需要为全局刚度矩阵预先分配内存。 目前,我正在做一个模拟程序集,以估计每行非零的数量,如下所示(伪代码) int nnz[global_dim] for E=1 to NUM_ELTS for i=1 to 6 gi = global index of i if node gi is free for j=1 to 6 gj = global index of j if node gj is free nnz[i]++ 但是,这会高估nnz,因为某些节点之间的交互可能会在多个元素中发生。 我已经考虑过尝试跟踪发现的i,j交互,但是我不确定如何在不使用大量内存的情况下执行此操作。我还可以遍历节点,并找到以该节点为中心的基本功能的支持,但是随后我必须搜索每个节点的所有元素,这似乎效率很低。 我发现了这个最近的问题,其中包含一些有用的信息,特别是来自Stefano M的,他写了 我的建议是应用一些图论概念,以python或C语言实现它,即将矩阵中的元素视为图的边并计算邻接矩阵的稀疏结构。列表列表或键字典是常见的选择。 我正在寻找有关此的更多详细信息和资源。我承认我不太了解图论,而且我对所有可能有用的CS技巧都不熟悉(我从数学的角度出发)。 谢谢!

3
单浮点精度与双浮点精度
单精度浮点数占用一半的内存,在现代机器上(甚至在GPU上),使用它们进行运算的速度几乎是双精度浮点数的两倍。我发现许多FDTD代码专门使用单精度算术和存储。有什么经验可以解决使用单精度求解大型稀疏方程组的问题?我认为它必须在很大程度上取决于矩阵条件数。 此外,是否有任何有效的技术在必要时使用双精度,而在不需要双精度的情况下使用单精度。例如,我认为对于矩阵矢量乘法或矢量点积,将结果累加到双精度变量中(以避免抵消误差)可能是一个好主意,但是各个条目要彼此相乘可以使用单精度乘以 现代FPU是否无缝地允许从单精度(浮动)转换为双精度(双精度),反之亦然?还是这些昂贵的运营?

5
使用相同的,不同的重复求解
我正在使用MATLAB解决一个涉及解决,其中每个时间步随着时间变化。现在,我正在使用MATLAB的:bAx=bAx=b\mathbf{A} \mathbf{x}=\mathbf{b}bb\mathbf{b}mldivide x = A\b 我可以灵活地进行所需的预计算,因此我想知道是否有比更快和/或更准确的方法mldivide。通常在这里做什么?谢谢大家!

1
大稀疏整数矩阵的算法
我正在寻找一个对大型稀疏矩阵执行矩阵运算而又不牺牲数值稳定性的库。矩阵将是1000+×1000+,矩阵的值将在0到1000之间。我将执行索引演算算法,因此将串行生成(稀疏)矩阵的行向量。在开发每一行时,我将需要测试线性独立性。一旦我用所需数量的线性独立向量填充矩阵,便需要将矩阵转换为简化的行梯形形式。 现在的问题是,我的实现使用高斯消去法来确定线性独立性(一旦找到所有行向量,就确保行梯形形式)。但是,给定矩阵的密度和大小,这意味着每个新行中的条目随时间呈指数增长,因为必须找到前导条目的1cm才能执行抵消。寻找矩阵的简化形式进一步加剧了该问题。 所以我的问题是,是否有一种算法或更好的一种实现可以测试线性独立性并解决缩小的行梯形形式,同时保持条目尽可能小?线性独立性的有效测试尤为重要,因为在索引演算算法中,它最多执行。

3
关于奇异值分解算法的最新技术水平是什么?
我正在研究仅标头的矩阵库,以在尽可能简单的程序包中提供一定程度的线性代数功能,并且我试图调查当前的最新技术水平:计算a的SVD复矩阵。 我正在进行两阶段分解,即对角化,然后进行奇异值计算。现在,我正在使用Householder方法进行双角化(我相信LAPACK也使用该方法),而且我认为这与当前的方法一样好(除非有人知道算法)为了它..)。 ø( Ñ2)O(N2)\mathcal{O}(N^2) 奇异值的计算在我的清单上是下一个,对于执行此操作的通用算法,我有些不了解。我在这里读到,研究正在朝着一种逆迭代方法的方向发展,该方法可以保证正交性复杂性。我很想听听有关该消息或其他进展。ø( Ñ)O(N)\mathcal{O}(N)

1
加权SVD问题?
给定两个矩阵和B,我想找到向量x和y,使得 min ∑ i j(A i j − x i y j B i j)2。 以矩阵形式,我试图最小化的Frobenius范数甲- DIAG(X )⋅ 乙⋅ DIAG(Ý )= 甲- 乙∘ (X ÿ ⊤AAABBBxxxyyymin∑ij(Aij−xiyjBij)2.min∑ij(Aij−xiyjBij)2. \min \sum_{ij} (A_{ij} - x_i y_j B_{ij})^2. 。A−diag(x)⋅B⋅diag(y)=A−B∘(xy⊤)A−diag(x)⋅B⋅diag(y)=A−B∘(xy⊤)A - \mbox{diag}(x) \cdot B \cdot \mbox{diag}(y) = A - B \circ (x y^\top) 通常,我想以min ∑ i …

3
测试两个12x12矩阵是否具有相同的行列式
给我一个对称的,可逆的,正定的和密集的12×1212×1212 \times 12矩阵QQQ我需要测试其中,J是全1矩阵。det(Q)=det(12I−Q−J)(1)det(Q)=det(12I−Q−J)(1)\det(Q) = \det(12I-Q-J) \; \; (1)JJJ 我目前正在使用armadillo库执行此操作,但事实证明它太慢了。问题是我需要对一万亿个矩阵执行此操作,事实证明,计算这两个行列式是我程序的瓶颈。因此,我有两个问题 给定我的大小,是否可以使用任何技巧更快地计算行列式?在这种情况下,是否可以对12×1212×1212 \times12矩阵进行混乱的扩展? 还有其他有效的方法来检验是否相等(1)(1)(1) 编辑。回答评论。我需要计算所有连接的13阶非自补图GGG,以使G和\ overline {G}具有相同数量的生成树。动机可以在此mathoverflow帖子中找到。对于机器,我正在8核3.4GHh机器上并行运行它。131313GGGG¯¯¯¯G¯\overline{G} 编辑。通过制作一个专门用于计算12×1212×1212 \times 12 × 12矩阵行列式的C程序,我能够将预期运行时间减少50%。仍然欢迎提出建议。


3
解决李雅普诺夫方程的图书馆
以下矩阵方程 在Σ -对于给定的乙和Ç矩阵-出现在我的作为协方差矩阵的特征的工作。我了解到,该方程式在Lyapunov方程式中尤其是在连续时间控制理论中广为人知,并且有多种众所周知的算法可以利用线性方程式的特殊性质来求解该方程式。 乙Σ + Σ 乙Ť+ C= 0BΣ+ΣBT+C=0B\Sigma + \Sigma B^T + C = 0ΣΣ\Sigma -−-乙BBCCC−−- 通过谷歌搜索,我还了解到存在Matlab和Fortran实现。我发现了SLICOT和RECSY。由于许可问题,已经停止了对SLICOT源的访问。 我的大部分工作都是在R中实现的,由于无法找到求解器的R接口,我考虑自己编写一个。那么我的问题是,SLICOT是否是实现Lyapunov方程求解器的最佳可用Fortran(或C)库?我也对可以处理大型稀疏矩阵的实现感兴趣。 BBB

1
伸出的零空间
给出了系统其中甲∈ [R Ñ × Ñ,我读的是,在壳体的Jacobi迭代用作解算器,该方法将不收敛,如果b具有在零空间非零分量甲。因此,如果b具有一个跨越A的零空间的非零分量,那么雅可比方法将是一个非收敛的形式上的形式化说法?我想知道如何将其数学形式化,因为正交于零空间的部分解决方案确实会收敛。Ax=b,Ax=b,Ax=b,A∈Rn×nA∈Rn×nA\in\mathbb{R}^{n\times n}bbbAAAbbbAAA 因此,通过在每个迭代中投影的零空间,它会收敛(或?)。AAA ...... 我特别感兴趣的情况下 其中大号是与由向量所跨越的零空间的对称拉普拉斯矩阵1 ñ = [ 1 ... 1 ] Ť ∈ [R Ñ,和b具有零在组分L的零空间,J b = b ,其中J = I − 1Lx=b,Lx=b,Lx=b,LLL1n=[1…1]T∈Rn1n=[1…1]T∈Rn1_n=[1\dots 1]^T\in\mathbb{R}^nbbbLLLJb=b,Jb=b,Jb=b,是中心矩阵。这是否意味着每个Jacobi迭代将投影L的零空间,即每个迭代将居中?我要问的是,从那时起,就不需要从Jacobi迭代中投影L的零空间(或者换句话说,将迭代的中心)。J=I−1n1n1TnJ=I−1n1n1nTJ=I-\frac{1}{n}1_n1_n^TLLLLLL

4
寻找拉普拉斯矩阵的平方根
假设下面的矩阵给出 [ 0.500 - 0.333 - 0.167 - 0.500 0.667 - 0.167 - 0.500 - 0.333 0.833 ] 与它的转置甲Ť。该产品甲Ť甲= g ^产量 [ 0.750 - 0.334 - 0.417 - 0.334 0.667 - 0.333 - 0.417 - 0.333 0.750 ],AAA⎡⎣⎢0.500−0.500−0.500−0.3330.667−0.333−0.167−0.1670.833⎤⎦⎥[0.500−0.333−0.167−0.5000.667−0.167−0.500−0.3330.833] \left[\begin{array}{ccc} 0.500 & -0.333 & -0.167\\ -0.500 & 0.667 & -0.167\\ -0.500 …

2
哈密​​顿矩阵的矩阵指数
令为实,平方,密矩阵。G和Q是对称的。让A ,G ,QA,G,QA, G, QGGG问QQ H= [ A- Q− G− AŤ]H=[A−G−Q−AT]H = \begin{bmatrix} A & -G \\ -Q &-A^T \end{bmatrix} 是哈密顿矩阵 我想计算的矩阵指数。我需要完整的矩阵指数e t H,而不仅是矩阵向量积。是否有专门的算法或库可用来计算哈密顿矩阵的指数?HHHËŤ ^ hetHe^{tH}


4
是否有四对偶算术稀疏矩阵包?
我正在研究一些病态的大型稀疏线性方程组。我想使用双精度双精度算术或四进制双精度算术来解决它们。我知道有一个由Nakata Maho开发的名为MPACK的程序包,它可以在四对偶算术下执行数值线性代数计算。但是,它是为密集矩阵而不是稀疏矩阵设计的。您是否知道是否有四重对偶算术稀疏矩阵包?

1
与PETSc并行求解简单的Ax = b系统
我是PETSc软件包的新手。 我有一个矩阵市场格式的〜4000x4000矩阵A,我想让PETSc使用多个处理器来解决这个问题。 我知道如何在单个处理器上求解系统,但是我不知道如何在不同处理器之间分配矩阵和向量。 有一套简单的说明可以做到这一点吗?
10 petsc  matrix 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.