Visual studio 2015 +Windows10 配置ARPACK,用ARPACK求解特征值特征向量

参考资料:

[1]http://www.cnblogs.com/hellraider/archive/2012/09/29/2707231.html#

[2]https://blog.csdn.net/yunfeiyang62/article/details/45949701

首先感谢参考资料中的博主,特供的方法,很实用,由于本人想用ARPACK求解前k个特征值,特征向量问题,如果只想知道LAPACK的,可以看参考资料[1]中的相应部分,下面谈谈具体怎么搞:

1、下载

ARPACK库:下载arpack.tar.Z和对应的patch.tar.gz,ARPACK自带BLAS和LAPACK,没有依赖问题

MinGW:下载一个installer,我下的是mingw-get-setup.exe

2、安装MIinGW

执行MinGW安装程序选择目录,我的安装目录是C:\MinGW\,安装完毕后,会有如下界面:


至少勾gcc,gfortran编译器和MSYS

装完后别忘附加环境变量PATH :C:\MinGW\bin

win10添加环境变量方法:点击打开链接

3、解压并改动ARPACK源码

先把arpack96.tar.gz解压,比如我的ARPACK目录是E:\ARPACK\

将patch.tar.gz解压至ARPACK目录并覆盖

然后ARPACK中有三个文件需要修改,不改动会导致现代gfortran编译不过。

第一个是ARPACK\UTIL\second.f,里面的ETIME遍不过。整个子过程可以替换成:

SUBROUTINE SECOND( T )
     REAL      T
     CALL CPU_TIME(T)
     RETURN
END

这里当时我在修改时候出现一个问题:我在将second.f替换后,之后在编译的时候,出现错误:

error-non-numeric-character-in-label-at-1

这个错误由于自己不清楚Fortran的代码结构,Fortran的代码必须从第七列或者更后开始,参考

将结构变成如下形式就可以了


第二个是ARPACK\BLAS\dnrm2.f,里面的ASSIGN遍不过。不过我们可以在netlib上找到BLAS里最新版本的dnrm2.f下载并直接覆盖之。

第三个是ARPACK\BLAS\snrm2.f,问题同上,找到最新版本的snrm2.f覆盖

4、改动ARPACK\ARmake.inc

里面需要改动的有3处:

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值