p*****e 发帖数: 310 | 1 【 以下文字转载自 Computation 讨论区 】
发信人: pinacle (大石头), 信区: Computation
标 题: lapack如何求解XA=B
发信站: BBS 未名空间站 (Fri Jun 12 07:33:51 2009, 美东)
我用lapack的dgetrf把A进行LU分解,也发现用blas的dtrsm可以进行右边求解,但是发
现dgetrf里的iPiv,即pivoting得信息没法在dtrsm里体现出来。而lapack中的dgetrs没
用右边求解的功能。
我现在只好先用A的LU分解,用dgetri得到逆然后B*A^(-1),这样效率太低了。
另外的方法是用dtrsm求解完以后在对解进行列变换,即X*(PLU)=B => X*P = Y, 可是
发现lapack只提供dlaswp来进行行变换。
另外我还想到因为X*P=Y => P'X'=Y', 这样可以用行变换得到X转置再转置回来,但是这
也太麻烦了,而且还得知道inv(P'),效率如何也不清楚。
不知道有没有好办法? |
|
p*****e 发帖数: 310 | 2 我用lapack的dgetrf把A进行LU分解,也发现用blas的dtrsm可以进行右边求解,但是发
现dgetrf里的iPiv,即pivoting得信息没法在dtrsm里体现出来。而lapack中的dgetrs没
用右边求解的功能。
我现在只好先用A的LU分解,用dgetri得到逆然后B*A^(-1),这样效率太低了。
另外的方法是用dtrsm求解完以后在对解进行列变换,即X*(PLU)=B => X*P = Y, 可是
发现lapack只提供dlaswp来进行行变换。
另外我还想到因为X*P=Y => P'X'=Y', 这样可以用行变换得到X转置再转置回来,但是这
也太麻烦了,而且还得知道inv(P'),效率如何也不清楚。
不知道有没有好办法? |
|
z*****a 发帖数: 3809 | 3 dgetrs can be used to solve both AX=B and A'X=B when given the factorization
of A computed by dgetrf, you just need to pass the right flag.
非A |
|