Fortran Coder

查看: 7065|回复: 1
打印 上一主题 下一主题

[数学库] 求助MKL库求解三对角矩阵

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
9 元
贡献
3 点
跳转到指定楼层
楼主
发表于 2018-5-9 15:23:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在调用库函数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


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1

帖子

0

主题

0

精华

新人

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

评分

参与人数 1F 币 +1 收起 理由
kyra + 1 4年过去了,还是借楼评个分

查看全部评分

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-25 21:37

Powered by Tencent X3.4

© 2013-2024 Tencent

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