Fortran Coder

查看: 65|回复: 1

[求助] 关于mkl中lapack的线性代数问题

[复制链接]

3

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
30 点
发表于 2019-5-9 03:03:16 | 显示全部楼层 |阅读模式
想解决的是一个Ax=b的问题,第一次使用mkl,选用的函数是SYSV(不确定是否选择正确)。A(Vollmatrix)是一个2400x2400的对称稀疏矩阵,x则是待验证向量Results,右侧Right hand site为RHS。下面是自己试着编的代码,想先试着输出x,然后再跟Results比较。在红色行触发断点,错误0警告0。因为对函数不太了解,输入参数也不知道是否正确,想请教大神帮看一眼,万分感谢。

  Program kontrolle

  use f95_precision
  use lapack95

  Implicit None

  Integer :: n , nrhs , info
  Integer,allocatable :: ipiv(:)
  Real,allocatable :: A(:,:) , B(:,:)
  n = 2400
  nrhs = 1
  Allocate( A(n,n) , B(n,nrhs) , ipiv(n) )

  Open(12,File="Vollmatix.txt")
  Open(13,File="RHS.txt")

  Read(12,*) A(:,:)
  Read(13,*) B(:,:)

  Call SYSV( A(:,:) , B(:,:) , 'L' , ipiv , info )
  Write(*,*) B(:,:)
  Write(*,*) 'IPIV=', ipiv
  Write(*,*) 'INFO=', info

  End Program kontrolle

RHS.txt

32.81 KB, 下载次数: 0

右手侧b

Results.txt

5.81 KB, 下载次数: 0

x

Vollmatrix.zip

169.98 KB, 下载次数: 0

矩阵A

回复

使用道具 举报

340

帖子

1

主题

0

精华

宗师

F 币
1818 元
贡献
1198 点
发表于 2019-5-9 10:04:48 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
! MKL库函数求解线性方程组
include 'lapack.f90'
program test 
use lapack95
integer,parameter::n=3
integer i
real(4)::a(n,n),b(n)
integer ipiv(n)
a=reshape([1,0,1,2,1,0,3,3,0],[n,n])
b(:)=[14,11,1]
call sgetrf(n,n,a,n,ipiv,i) !LU分解
call sgetrs( 'N', n, n, a, n, ipiv, b,n, i )
print*,b !1,2,3
pause
end program 
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-5-25 15:52

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表