当前位置: 首页 > 面试题库 >

对称正正半对称固定尺寸(N = 9)的密集线性系统的快速求解

丁鸿云
2023-03-14
问题内容

对于固定尺寸(N = 9)(矩阵是对称的,正半确定的)的密集线性系统的快速解决方案,您会建议使用哪种算法?

  • 高斯消去
  • LU分解
  • 胆固醇分解
  • 等等?

类型是32位和64位浮点。

这样的系统将解决数百万次,因此算法在维数方面应相当快(n = 9)。

赞赏所提出算法的 健壮 C ++实现的PS示例。

1)“解决百万次”是什么意思?具有一百万个不同右手项或一百万个不同矩阵的相同系数矩阵?

数百万种不同的矩阵。

2)正数_semi_definite表示矩阵可以是奇异的(对于机器精度而言)。您想如何处理此案?只是提出一个错误,还是尝试返回一些明智的答案?

引发错误是可以的。


问题答案:

矩阵是对称的,正次中定的, Cholesky分解
严格优于LU分解。(无论矩阵的大小如何,其速度都比LU快两倍左右。资料来源:Trefethen和Bau的“数值线性代数”)

实际上,它也是小型密集矩阵的标准(来源:我在计算数学专业获得博士学位)迭代方法的效率要比直接方法低,除非系统变得足够大(快速的经验法则没什么用,但这总是很好)拥有:在任何现代计算机上,任何小于100 * 100的矩阵绝对是需要直接方法而不是迭代方法的小矩阵)

现在,我不建议自己这样做。那里有大量经过全面测试的优秀库。但是,如果我不得不推荐您一个,那就是Eigen:

  • 无需安装(仅标头库,因此无需链接的库,仅#include <>)
  • 健壮高效(它们在主页上有很多基准测试,结果不错)
  • 易于使用且有据可查

顺便说一下,在此文档中,您可以在一个简洁的表格中找到其7个直接线性求解器的优缺点。看来您的情况是LDLT(Cholesky的一种变体)获胜



 类似资料:
  • 问题内容: 如何快速查找,识别和删除此数据帧中所有对称对的最后一个重复项? 对称对的一个示例是“(0,1)”等于“(1,0)”。后者应删除。 该算法必须快速,因此建议使用numpy。不允许转换为python对象。 问题答案: 您可以对值进行排序,然后: 选项2 :如果您有很多双,可能会很慢。在这种情况下,我们可以分配新值并按以下条件过滤:

  • 本文向大家介绍Android对称加密与非对称加密,包括了Android对称加密与非对称加密的使用技巧和注意事项,需要的朋友参考一下 凯撒密码 1. 介绍 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3 的时候,所有的字母

  • Java安全加密专题文章索引 Java安全加密:对称加密 Java安全加密:非对称加密 Java安全加密:消息摘要Message Digest Java安全加密:数字签名和数字证书 Java安全加密:Https编程 1. 凯撒密码 1.1 概述 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上

  • 问题内容: 这是我网址的一部分 用户输入城市名称,例如:我想获取其ID。对于id是。 下面,我发布了我的无效代码。 毕竟,我想将id传递给另一个URL文件并进行解析。我是否需要创建另一个Swift类并以某种方式将其与第一个连接? 问题答案: 构建[city:id]字典可以为您提供解决方案。我基于http://www.codeproject.com/Articles/248883/Objective

  • 主要内容:1.对称加密,2.非对称加密,3.混合加密,4.常见的摘要算法1.对称加密 AES,密钥长度有128/256/192。高级加密标准,是下一代的加密算法标准,速度快,安全级别高; DES:密钥为56, 数据加密标准,速度较快,适用于加密大量数据的场合。 3DES: 密钥为168.是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 IDES: 密钥为128 SM1: 密钥为128 SM4: 密钥为128 RC4, RC5, RC6 DESX 两边用

  • 我试图创建一个Android应用程序,它可以动态加密数据并将其写入存储。已经实现了没有加密的应用程序,在stackoverflow上查看了100个加密示例/帖子,但无法决定使用哪种方法。 一开始想到使用AES,就在谷歌上搜索它的安全性。每次输入16或32个字符(我希望安全性更好)的密码似乎并不方便。作为一种替代的非对称加密方式,人们想到了。用一个密钥加密,用另一个密钥解密,这样我就可以将用于加密的

  • Java安全加密专题文章索引 Java安全加密:对称加密 Java安全加密:非对称加密 Java安全加密:消息摘要Message Digest Java安全加密:数字签名和数字证书 Java安全加密:Https编程 1. 介绍 与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解

  • 问题内容: 我对(N,)维数组和(N,1)维数组之间的转换有疑问。例如,y是(2,)维。 但是下面将显示y2为(2,1)维。 在不复制的情况下将y2转换回y的最有效方法是什么? 谢谢汤姆 问题答案: 为此工作 还请注意,除非需要复制新形状(在这里不需要这样做),否则它不会复制数据: