VS下IVF(Fortran)调用MKL函数库的使用配置及计算一般矩阵的特征值与特征向量说明

news/2024/7/7 10:04:06

这篇博文简要记录一下Fortran使用MKL函数库计算一般矩阵的特征值与特征向量:
一、设置vs(我用的是vs2013+ivf2013)
(1)点击项目>属性
在这里插入图片描述
(2)点击Fortran>Libraries>Use Intel Math Kernel Library>Parallel
在这里插入图片描述
(3)首先你得明确你的解决方案是win32还是x64的。如果解决方案是win32,打开工程属性->Fortran->Labraries->Use Intel Math Kernel Library设置为开启,然后打开工程属性->Linker->Input->Additional Dependencies中写入mkl_lapack95.lib 如果解决方案是x64,打开工程属性->Fortran->Labraries->Use Intel Math Kernel Library设置为开启,然后打开工程属性->Linker->Input->Additional Dependencies中写入mkl_lapack95_lp64.lib
在这里插入图片描述
二、实验代码测试

program testGeev
        use lapack95
        implicit none
        integer :: i, info
        integer, parameter :: n = 3
        real :: a(n,n), wr(n), wi(n), vr(n,n), vl(n,n)

        a = reshape([1, 1, 0, 0, 0, 2, 0, 0, -1],shape(a))
        a = transpose(a)
 
        call geev(a, wr, wi, vl, vr, info)
        
        write(*,*) '特征值为:'
        write(*,'(*(f10.4))') wr
 
        write(*,*) '特征向量为:'
        do i = 1, n
                write(*,'(*(f10.4))') vr(i,:)
        end do
        
        if (info == 0) then
                write(*,*) '特征值与特征向量计算成功!'
        else
                write(*,*) '特征值与特征向量计算失败!'
        end if
        
end program testGeev

代码中的wi与vl可不理会,但是传递参数时不能删掉,否则会出错,本次测试中,矩阵a如下

a = [1  1  0
     0  0  2
     0  0 -1]

计算结果如下:
在这里插入图片描述

(1)特征值为:

1.0000    0.0000   -1.0000

(2)特征向量为:

1.0000   -0.7071    0.4082
0.0000    0.7071   -0.8165
0.0000    0.0000    0.4082

特征值与特征向量计算成功!

下面同时给出matlab的计算结果:

A = [1 1 0; 0 0 2; 0 0 -1];
[V,D] = eig(A) 
V =
    1.0000   -0.7071    0.4082
         0    0.7071   -0.8165
         0         0    0.4082
D =
 
     1     0     0
     0     0     0
     0     0    -1

计算结果相同,其实肯定相同。因为matlab底层调用的仍是MKL。
注意:
参考博文:fortran使用MKL函数库中的geev计算一般矩阵的特征值与特征向量


http://www.niftyadmin.cn/n/1978322.html

相关文章

BGP学习笔记1

BGP学习笔记<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />一、 BGP协议基本概念AS:自治系统AN as is a collection of networks under a single technical administation.一个自治系统通常是一个有着单一管理技术的网络…

VS2017在Windows上的编译、安装与使用clapack(用于C/C++)库(亲测有效)

最近因为项目的需要用C语言进行编程&#xff0c;涉及到矩阵的相关计算&#xff0c;需要调用相关的库&#xff0c;百度了很多的网上教程都比较的模糊&#xff0c;还好配置成功了&#xff0c;现在对其进行整理&#xff0c;防止后继在需要配置,适用于C/C&#xff1a; 主要是参考这…

oracle 备份恢复 02手工备份

2019独角兽企业重金招聘Python工程师标准>>> 一、备份分类&#xff1a; 物理备份 手工备份&#xff0c;RMAN 逻辑备份 二、手工备份 归档模式&#xff1a;冷备&#xff0c;热备&#xff0c;完全恢复&#xff0c;不完全恢复 非归档模式&…

致谢参加虚拟化技术网络大会的朋友们

这是一份给所有“2009中国虚拟化技术网络大会”参与者的谢意。首先要感谢51CTO的忠实用户们&#xff0c;半年来你们对“2009中国虚拟化技术网络大会”活动的关注和积极参与&#xff0c;帮助51CTO收集了数千例反馈&#xff0c;从而得出了这些能够真实反映中国虚拟化技术及应用现…

Gamit解算GPS示例数据(具体每步操作步骤)

&#xff08;一&#xff09;、做好数据准备 1、准备数据文件 需要解算GPS的数据&#xff0c;事先需要做好数据的下载准备工作&#xff0c;在相应的网站下载好精密星历sp3文件、广播星历n文件、观测文件o文件、各种表文件&#xff0c;保存在电脑的桌面文件夹里。打开虚拟机&…

[MST]JZOJ 5888 GCD生成树

Description Input Output Sample Input 5 5 6 7 10 21 Sample Output 17 Data Constraint Hint 分析 随便搞一个最大生成树就好了 并查集优化&#xff0c;用个Rev数组记录编号 #include <iostream> #include <cstdio> using namespace std; const int N1e510; int…

vs2017使用intel mkl库的设置

安装包&#xff1a; 主要是配置&#xff1a; 新建一个c项目&#xff0c;依次配置&#xff1a; 方法一&#xff1a; VC目录->可执行目录&#xff1b;VC目录->包含目录&#xff1b;VC目录->库目录&#xff1b;链接器->附加依赖项。 具体的配置内容如图所示&#xff1…

多个koa中间件执行顺序

多个中间件执行顺序 多个中间件会形成一个栈结构&#xff08;middle stack&#xff09;&#xff0c;以"先进后出"&#xff08;first-in-last-out&#xff09;的顺序执行。 最外层的中间件首先执行。调用next函数&#xff0c;把执行权交给下一个中间件。 ...最内层的中…