Fortran Coder

标题: 求助MKL库求解三对角矩阵 [打印本页]

作者: HaolinJiang.CEM    时间: 2018-5-9 15:23
标题: 求助MKL库求解三对角矩阵
我在调用库函数DDTTRSB求解三对角矩阵的时候(满足对角占优),发现求解结果不对,可能是我对该函数的参数理解错误(尤其DL,D,DU的形式),求帮忙解答下,谢谢。
代码如下:
[Fortran] 纯文本查看 复制代码

PROGRAM MAIN
    IMPLICIT NONE
    INTEGER num
    PARAMETER (num = 5)
    INTEGER INFO
    REAL(8) A(1:3*num-2)
    REAL(8) B(1:num,1)   
    A(1) = 2.0000; A(2) = 1.0000;
    A(3) = 0.3571; A(4) = 2.0000; A(5) = 0.6429;
                   A(6) = 0.6000; A(7) = 2.0000; A( 8) = 0.4000;
                                  A(9) = 0.4286; A(10) = 2.0000; A(11) = 0.5714
                                                 A(12) = 1.0000; A(13) = 2.0000
    B(1,1) = 5.5200; B(2,1) = 4.3144; B(3,1) = 3.2661; B(4,1) = 2.4287; B(5,1) = 2.1150
    INFO = -1
    CALL DDTTRSB('T', num, 1, A(3:13:3), A(1:13:3), A(2:13:3), B, num, INFO)
    WRITE(*, *) INFO
END PROGRAM MAIN



作者: silenus    时间: 2022-5-25 17:06
4年过去了,楼主应该已经解决了,不过还是借楼回答一下,以帮助后来者
包括ddttrsb在内的解方程组的函数,其输入的DL,D,DU并不是原始矩阵,而是A进行LU分解后的结果。
应该先调用ddttrfb进行LU分解,将其输出的结果作为ddttrsb的输入




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2