静待花开 发表于 2024-6-16 05:08:53

BLAS库里有能求解一般方程(如四对角)的库函数吗?

BLAS库里有能求解一般方程的函数吗?
有一个Sgtsv()函数可以求解三对角的线性方程组,但没有找到有没有函数可以求解一般的方程组呢?比如,四对角,或五对角呢?
请教大家。

li913 发表于 2024-6-17 08:34:10

! MKL库函数求解线性方程组
! 依赖 mkl_lapack95.lib
program test
use lapack95
integer,parameter::n=3
integer i
real(4)::a(n,n), b(n)
integer ipiv(n)
a=reshape(,)
b(:)=
call getrf(a,ipiv,i)   !LU分解
call getrs(a,ipiv, b)!a,b均被覆盖
print*,b !1,2,3
pause
end program

静待花开 发表于 2024-6-18 18:46:11

li913 发表于 2024-6-17 08:34
! MKL库函数求解线性方程组
! 依赖 mkl_lapack95.lib
program test


非常感谢,看到你这个代码,我想起来有用 getrf() 和 getri() 求逆矩阵的做法。还不知道可以把getrf()与getrs()结合求解普通线性方程组。
感谢!
在新查到的资料,我看到用sgetrs()完成求解的。

静待花开 发表于 2024-6-18 18:47:18

li913 发表于 2024-6-17 08:34
! MKL库函数求解线性方程组
! 依赖 mkl_lapack95.lib
program test


您了解过,求解大规模的线性方程组,用什么函数吗?

li913 发表于 2024-6-19 09:49:02

静待花开 发表于 2024-6-18 18:46
非常感谢,看到你这个代码,我想起来有用 getrf() 和 getri() 求逆矩阵的做法。还不知道可以把getrf()与g ...

sgetrs 是 getrs 的单精度版本。

li913 发表于 2024-6-19 09:49:37

静待花开 发表于 2024-6-18 18:47
您了解过,求解大规模的线性方程组,用什么函数吗?

稀疏矩阵用 pardiso

静待花开 发表于 2024-6-21 17:06:10

li913 发表于 2024-6-19 09:49
稀疏矩阵用 pardiso

我想解的是就是稀疏矩阵,四对角的,想着用lapack,cublas,这些。我查了您说的这个pardiso库,我学习下,以前没有了解过。

静待花开 发表于 2024-6-21 17:07:36

li913 发表于 2024-6-19 09:49
sgetrs 是 getrs 的单精度版本。

是的,想用它来解四对角线性方程组, 不知道有没有直接法快
页: [1]
查看完整版本: BLAS库里有能求解一般方程(如四对角)的库函数吗?