Matrix 拉帕克:具有多个右手边的三角方程组
我有一个奇异的三角形Matrix 拉帕克:具有多个右手边的三角方程组,matrix,linear-algebra,lapack,Matrix,Linear Algebra,Lapack,我有一个奇异的三角形nxn矩阵,比如说L(对于下三角形),我想解一个类似的系统 LX=B 其中B和X是nxk矩阵(即:我想求解一个具有多个右手边的三角形线性系统)。此外,我有我的三角矩阵存储在压缩格式;i、 e.我只存储下三角部分。我正在使用BLAS和LAPACK,但我已经意识到没有具体的方法来解决我的问题。尽管有许多功能可以解决类似问题: :采用压缩格式的三角形矩阵,并对单个右侧进行求解 :采用密集格式的三角形矩阵,并对多个右侧进行求解 我真正需要的是两者的结合。我希望有一个函数可以接受压缩
nxn
矩阵,比如说L
(对于下三角形),我想解一个类似的系统
LX=B
其中B
和X
是nxk
矩阵(即:我想求解一个具有多个右手边的三角形线性系统)。此外,我有我的三角矩阵存储在压缩格式;i、 e.我只存储下三角部分。我正在使用BLAS和LAPACK,但我已经意识到没有具体的方法来解决我的问题。尽管有许多功能可以解决类似问题:
:采用压缩格式的三角形矩阵,并对单个右侧进行求解
:采用密集格式的三角形矩阵,并对多个右侧进行求解
我真正需要的是两者的结合。我希望有一个函数可以接受压缩三角形格式,如stpsv(),也可以接受多个右侧格式,如strsm()。但似乎没有现成的功能
因此,我的问题是:
for
循环中为B
中的每一列调用stpsv(),要么我从L
创建一个密集矩阵,这样我就有了所有这些无用的零,然后我调用strsm()。什么会更好?此外,也许我错过了一个更聪明的方法来做这一切压缩存储意味着2个例程。另外,BLAS3函数在求解线性系统时更有效,但在最优分块算法中有效。若你们调用BLAS2函数,那个么你们基本上回到矢量版本,所以它并没有太多意义 请注意,BLAS2版本也不执行调节检查。因此,它们直接针对BLAS2性能进行优化,因为带有单个RHS的三角矩阵是直接向后替换
对于多个RH,您可以通过,例如,转换矩阵,然后使用。压缩存储2个例程。另外,BLAS3函数在求解线性系统时更有效,但在最优分块算法中有效。若你们调用BLAS2函数,那个么你们基本上回到矢量版本,所以它并没有太多意义 请注意,BLAS2版本也不执行调节检查。因此,它们直接针对BLAS2性能进行优化,因为带有单个RHS的三角矩阵是直接向后替换
对于多个RH,您可以通过,比如,转换矩阵,然后使用。是的,有一个函数用于求解Ax=B,对于压缩三角形矩阵a和多个右手尺寸B。它来自LAPACK。此外,还有其他用于三角压缩矩阵的例程,它们的名称中都有
tp
然而,看看下面的例子,这个函数在一个循环中从BLAS调用,每个右侧调用一次。这正是你的建议 是的,对于压缩三角矩阵a和多重右手尺寸B,有一个函数可以解Ax=B。它来自拉巴克。此外,还有其他用于三角压缩矩阵的例程,它们的名称中都有
tp
然而,看看下面的例子,这个函数在一个循环中从BLAS调用,每个右侧调用一次。这正是你的建议