gpt4 book ai didi

julia - 在 julia 中有效地求解特定的线性系统

转载 作者:行者123 更新时间:2023-12-04 06:24:52 25 4
gpt4 key购买 nike

我广泛使用 julia 的线性方程求解器 res = X\b .由于参数变化,我必须在我的程序中使用它数百万次。这工作正常,因为我使用的是小尺寸(最多 30 )。现在我想分析更大的系统,最大到 1000 ,线性求解器不再有效。

我认为可以有一个解决办法。但是我必须说,有时我的 X 矩阵是密集的,有时是稀疏的,所以我需要一些对这两种情况都可以正常工作的东西。
b vector 是一个全为零的向量,除了一个条目总是 1 (实际上它总是最后一个条目)。而且,我不需要所有 res向量,只是它的第一个条目。

最佳答案

通常当人们谈论加速线性求解器时 res = X \ b , 适用于多个 b s。但是由于您的 b没有改变,而你只是不断改变 X ,这些技巧都不适用。

从数学角度来看,加速这一过程的唯一方法似乎是确保 Julia 为 X \ b 选择最快的求解器。 ,即,如果您知道 X是正定的,使用 Cholesky 等。Matlab’s flowcharts关于它如何选择求解器用于 X \ b , 用于密集和稀疏 X , 可用——很可能 Julia 也实现了与这些流程图类似的东西,但同样,也许你可以找到一些方法来简化或缩短它。

所有与编程相关的加速(多线程——虽然每个单独的求解器可能已经是多线程的,但当每个求解器使用的线程少于内核数时,并行运行多个求解器可能是值得的; @simd 如果您愿意深入研究求解器本身;OpenCL/CUDA 库;等等)然后可以应用。

关于julia - 在 julia 中有效地求解特定的线性系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38486697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com