作者profyang (prof)
看板C_and_CPP
标题[问题] 科学计算函式库GSL中eigen问题请教
时间Sat Jul 22 16:35:51 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
Win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
MinGW
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
GNU Scientific Library(GSL)
问题(Question):
主要是最近Matlab用腻了,想换换比较有深度(?)的,就回来用用C++
虽然以前C++学得很烂,但基本的回圈之类的不太可能忘
而我主要会需要用到程式的地方其实就如标题所说:科学计算,所以也够用了
只要有个科学计算的函式库应该可以很快上手?
所以看到有GSL这种东西当然就很高兴地想给他下载
但是看到他的Documentation就卡住了
https://www.gnu.org/software/gsl/doc/html/index.html
我有一个一定要用到的功能就是解eigen value & eigen vector
但是doc上面:
Eigensystems
Real Symmetric Matrices
Complex Hermitian Matrices
Real Nonsymmetric Matrices
Real Generalized Symmetric-Definite Eigensystems
Complex Generalized Hermitian-Definite Eigensystems
Real Generalized Nonsymmetric Eigensystems
Sorting Eigenvalues and Eigenvectors
Examples
References and Further Reading
似乎是说他提供解Eigensystems只有上面几种特殊矩阵
但我的矩阵不会是以上几种有这麽好性质的特殊矩阵
查了wiki似乎也是说对於任意矩阵求eigen没有什麽好的加速演算法
等於只能硬是去解他的eigen polynomial的root (det(A-xI)=0的根)
但是我找了半天好像也没找到GSL有可以自动帮我列出eigen polynomial的系数的...
也就是我得自己写个程式把任意矩阵的eigen polynomial的系数算出来吗...?
不知道有没有大大有遇过类似情形的?还是是我哪里搞错了请指证!谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.178.25
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1500712557.A.EA3.html
1F:推 sunev: Real Nonsymmetric Matrices ? 07/22 16:50
2F:→ profyang: 很不幸的我的矩阵是complex... 07/22 18:05
※ 编辑: profyang (114.37.178.25), 07/22/2017 18:22:25
3F:→ freeunixer: 直接用 python 吧,计算模组就是仿 matlab 的. 07/22 18:48
是阿,我现在正在考虑python和C++混用
因为有时也需要档案IO,这部分python应该不够快,Matlab就更慢了,应该还是C++最快
另外我自己找到了,GSL果然没有我要的任意complex matrix的eigen问题
http://lists.nongnu.org/archive/html/help-gsl/2014-02/msg00008.html
居然要我去用LAPACK...但LAPCK又只有线代的部分...要你何用啊!!= =
※ 编辑: profyang (114.37.178.25), 07/22/2017 19:02:03
4F:推 longlongint: 解 eigen value 当然要用 EIGEN 啊(误 07/22 19:45
感谢这位大大 这个不错
查了一下居然说是速度可以跟intel的Math Kernel Library(MKL)比的
虽说现在MKL开放免费下载
不过前面忘了讲我是不太想用MKL就是了
一来以後用的电脑的CPU未必一定是intel
二来...恩...intel有劣迹...阿不是 据说之前MKL会对非intel核心"最劣化"
我怕我没有他的compiler(compiler要钱...)的话它也给我搞个最劣化...
※ 编辑: profyang (114.37.178.25), 07/22/2017 22:09:26
6F:推 soheadsome: 用python吧 一堆用gpu最佳化的函式库都有人帮你包好 07/23 08:55
7F:→ longlongint: 推个python C语言是拿来写别的语言的编译器用的(误 07/23 12:45
8F:推 gozule: C++封装blas和lpack的函式库Armadillo也可试试,很好上手 07/26 19:12
10F:推 Neisseria: 先用 Python 或 MATLAB 试模型会比较简单 07/26 21:51
11F:→ Neisseria: 忘记原 po 先前就是用 MATLAB,歹势,请忽略小弟留言 07/26 21:52
12F:→ Killercat: intel那个被告翻了 现在不敢再这样搞了 07/26 23:37
13F:→ Killercat: 而且主要影响是TBL比较多 而非MKL 07/26 23:37
14F:→ Killercat: 抱歉 是TBB XD 不是TBL 07/26 23:38