24小时热门版块排行榜    

查看: 443  |  回复: 2

haiqing1987

铜虫 (初入文坛)

[交流] 【求助】IMSL调用出错,求解!(已解决) 已有2人参与

先上子程序:
SUBROUTINE VIBSOL(NQ1max,NQ1,RQ1,TMS,eigenvaluor,Vpot,eigenvalue)
    use imsl
    IMPLICIT REAL*8 (A-H,O-Z)
    DIMENSION  RQ1(NQ1),HAR(NQ1,NQ1),Vpot(NQ1),eigenvalue(NQ1),
    $WK1(1),WK2(1),eigenvaluor(NQ1,NQ1)

    RL=RQ1(NQ1)-RQ1(1)+2.D0*(RQ1(2)-RQ1(1))
    NDVR=NQ1+1
    DO  I=1,NQ1
       HAR(I,I)=Vpot(I)+DVRKE1(I,NDVR,RL,TMS)
    DO  J=1,I-1
       HAR(J,I)=DVRKE2(I,J,NDVR,RL,TMS)
    HAR(I,J)=HAR(J,I)
    enddo
    enddo
    eigenvalue=eig(HAR,v=eigenvaluor)
    RETURN
    END
   
运行时提示堆栈出错,程序崩溃。调试时发现崩在了 EIG函数上,提示如截图。第一次用IMSL库,懂的不多。请教高手,代码哪里有问题? 谢谢!
附截图:



[ Last edited by haiqing1987 on 2010-12-28 at 19:47 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3):谢谢参与应助! 2010-12-19 19:29:09
引用回帖:
Originally posted by haiqing1987 at 2010-12-17 11:31:06:
先上子程序:
SUBROUTINE VIBSOL(NQ1max,NQ1,RQ1,TMS,eigenvaluor,Vpot,eigenvalue)
    use imsl
    IMPLICIT REAL*8 (A-H,O-Z)
    DIMENSION  RQ1(NQ1),HAR(NQ1,NQ1),Vpot(NQ1),eigenvalue(NQ1),
    $ ...

你这没有问题呀,你搞错了吧?
你的意图不就是构建一个矩阵,调用库函数将之对角化吗?
求出本征值与本征矢嘛?

这是我简单的测试结果,用IMSL库还有另外一个库的测试结果,用你的程序:



下面是简单的测试代码

可以参考,从你的程序意图,好使构建hermian算符的矩阵,应该是实对称的吧。





[ Last edited by maomao1210 on 2010-12-18 at 14:10 ]
2楼2010-12-17 19:56:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haiqing1987

铜虫 (初入文坛)

谢谢!

引用回帖:
Originally posted by maomao1210 at 2010-12-17 19:56:49:



你这没有问题呀,你搞错了吧?
你的意图不就是构建一个矩阵,调用库函数将之对角化吗?
求出本征值与本征矢嘛?

这是我简单的测试结果,用IMSL库还有另外一个库的测试结果,用你的程序:


[img]ht ...

嗯。我的本意就是构造实对阵的矩阵,然后求它的本证值和本征矢。 我估计是我的实对阵的矩阵HAR 有问题。 谢谢你的回帖,相当详细啊。 一开始我也用的是RS函数,呵呵。你说RS和EIG 这两种方式哪个更好啊?

[ Last edited by haiqing1987 on 2010-12-18 at 22:23 ]
3楼2010-12-18 22:21:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 haiqing1987 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见