Fortran Coder

查看: 811|回复: 4
打印 上一主题 下一主题

[数学库] FORTRAN 出现没有为 mkl_avx2.2.dll 加载的符号文件,请大神指导

[复制链接]

22

帖子

11

主题

0

精华

入门

F 币
97 元
贡献
54 点
跳转到指定楼层
楼主
发表于 2024-8-1 16:37:06 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
  
[Fortran] 纯文本查看 复制代码
PROGRAM Generalizedeigenvalue
  use lapack95
  IMPLICIT NONE
  INTEGER,PARAMETER::N=3!矩阵维数
  INTEGER,PARAMETER::LDA=N
  INTEGER,PARAMETER::LDB=N
  INTEGER,PARAMETER::LDVL=N
  INTEGER,PARAMETER::LDVR=N
  INTEGER,PARAMETER::LWORK=8*n+16
  INTEGER::INFO,J
  REAL*8::A(LDA,N),B(LDA,N)!系数矩阵
  REAL*8::ALPHAR(N),ALPHAI(N),BETA(N)!特征值和对应的广义特征向量
  REAL*8::VL(LDVL,N),VR(LDVR,N)!左右特征向量
  REAL*8::WORK(LWORK,LWORK)
  !初始化系数矩阵
  A=RESHAPE((/1.D0,2.D0,3.D0,4.D0,5.D0,6.D0,7.D0,8.D0,9.D0/),SHAPE(A))
  B=RESHAPE((/2.D0,2.D0,2.D0,2.D0,2.D0,2.D0,2.D0,2.D0,2.D0/),SHAPE(B))
  A = transpose(A)
  B = transpose(B)
  !调用DGGEV函数
  CALL DGGEV('N','V',N,A,LDA,B,LDB,ALPHAR,ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO)

  !输出结果
  IF(INFO==0.d0)then
    WRITE(*,*)'广义特征值问题的解:'
    DO J=1,N
      IF(ALPHAI(J)==0.D0)THEN
        WRITE(*,'(2(A,1X),F8.4)')'特征值',J,':',ALPHAR(J)
      ELSE
        WRITE(*,'(4(A,1X),2(F8.4,1X))')'特征值',J,':',ALPHAR(J),'+',ALPHAI(J),'i'
      END IF
        WRITE(*,*) '左特征向量:'
        WRITE(*,'(A)') '  '
        WRITE(*,'(3(F8.4,1X))') VL(:,J)
        WRITE(*,*) '右特征向量:'
        WRITE(*,'(A)') '  '
        WRITE(*,'(3(F8.4,1X))') VR(:,J)
    END DO
  ELSE
    WRITE(*,*)'求解广义特征值问题时出错,错误代码为',INFO
  END IF
  END PROGRAM GeneralizedEigenvalue




微信截图_20240801163459.png (123.52 KB, 下载次数: 24)

微信截图_20240801163459.png

微信截图_20240801164104.png (127.37 KB, 下载次数: 33)

微信截图_20240801164104.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

22

帖子

11

主题

0

精华

入门

F 币
97 元
贡献
54 点
5#
 楼主| 发表于 2024-8-2 11:11:00 | 只看该作者
好的,谢谢您的指导,问题已解决,非常感谢

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2024-8-2 08:47:31 | 只看该作者
huhelong 发表于 2024-8-1 20:29
谢谢您的指导,我按照您的建议修改后确实解决了之前的问题,现在是运行后提示LWORK参数输入不对,能看看 ...

我没有修改其他内容。

22

帖子

11

主题

0

精华

入门

F 币
97 元
贡献
54 点
板凳
 楼主| 发表于 2024-8-1 20:29:13 | 只看该作者
fcode 发表于 2024-8-1 18:15
应该是你的 MKL 安装或配置的问题。在我电脑上能够顺利通过 MKL 计算,但后面的输出部分出了错。

[mw_shl_ ...

谢谢您的指导,我按照您的建议修改后确实解决了之前的问题,现在是运行后提示LWORK参数输入不对,能看看您关于LWORK 和WOEK这两个参数的定义吗?

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2024-8-1 18:15:00 | 只看该作者
应该是你的 MKL 安装或配置的问题。在我电脑上能够顺利通过 MKL 计算,但后面的输出部分出了错。

[Fortran] 纯文本查看 复制代码
IF(INFO==0.d0)then
    WRITE(*,*)'广义特征值问题的解:'
    DO J=1,N
      IF(ALPHAI(J)==0.D0)THEN
        WRITE(*,'("特征值",1X,g0,":",F8.4)') J , ALPHAR(J)
      ELSE
        WRITE(*,'("特征值",1X,g0,":",F8.4,"+",f8.4,"i",1X)') J , ALPHAR(J) , ALPHAI(J)
      END IF
        WRITE(*,*) '左特征向量:'
        WRITE(*,'(A)') '  '
        WRITE(*,'(*(es13.6,1X))') VL(:,J)
        WRITE(*,*) '右特征向量:'
        WRITE(*,'(A)') '  '
        WRITE(*,'(*(es13.6,1X))') VR(:,J)
    END DO
  ELSE


改成这样,就能正常输出了。

广义特征值问题的解:
特征值 1: -1.2247
左特征向量:

-9.255963E+61 -9.255963E+61 -9.255963E+61
右特征向量:

-5.780346E-16 -1.000000E+00  1.000000E+00
特征值 2:  4.2426
左特征向量:

-9.255963E+61 -9.255963E+61 -9.255963E+61
右特征向量:

-1.022124E-15 -1.000000E+00  1.000000E+00
特征值 3: -0.0000
左特征向量:

-9.255963E+61 -9.255963E+61 -9.255963E+61
右特征向量:

5.000000E-01 -1.000000E+00  5.000000E-01
请按任意键继续. . .
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 02:35

Powered by Tencent X3.4

© 2013-2024 Tencent

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