intel MKL库矩阵相乘 精度问题

时间:2022-02-09 04:18:33
我用两个4096*4096的矩阵相乘 其中一个秩为14 一个74 乘完后秩超过100 我猜想是精度问题  怎么解决这个问题呢? 谢谢 
用的intel mkl库 
CMatrix64类的 product方法 
得到的矩阵 其特征值改变很平滑 没有阶跃

5 个解决方案

#1


矩阵相乘比较稳定,应该没有精度问题。 楼主能够把问题描述详细点么?
1) 计算的类型是double 的还是single 的。 
2)如何计算矩阵的秩的?

如果能够把代码贴出来,会对理解这个问题有很大的帮助。

#2


难道说楼主的矩阵奇异????

正常的不应该出这类问题啊

#3


我刚刚能发现 MKL库 CMatrix类 SloveEigen_byTerm等一系列函数 是对对称矩阵的 
求得的是奇异值 等价于 A*A'的特征值开根号及其特征向量
A*A'秩应该不变 所以还是有我说的问题

1 float 和 double我都试过 都有这个问题
2 利用SloveEigen_byTerm 第一个CVector参数 getSize得到的大小

一个新问题,怎样利用MKL 求解非对称矩阵的特征向量 谢谢

#4


"CMatrix类", "SloveEigen_byTerm" 都不是MKL 的函数,楼上同学是不是在调用其他代码。。。。

怎样利用MKL 求解非对称矩阵的特征向量:  可以看MKL 手册中, LAPACK一章中:“Nonsymmetric Eigenvalue Problems ”
http://www.intel.com/software/products/mkl/docs/mklman.htm

#5


好的 多谢了^^

#1


矩阵相乘比较稳定,应该没有精度问题。 楼主能够把问题描述详细点么?
1) 计算的类型是double 的还是single 的。 
2)如何计算矩阵的秩的?

如果能够把代码贴出来,会对理解这个问题有很大的帮助。

#2


难道说楼主的矩阵奇异????

正常的不应该出这类问题啊

#3


我刚刚能发现 MKL库 CMatrix类 SloveEigen_byTerm等一系列函数 是对对称矩阵的 
求得的是奇异值 等价于 A*A'的特征值开根号及其特征向量
A*A'秩应该不变 所以还是有我说的问题

1 float 和 double我都试过 都有这个问题
2 利用SloveEigen_byTerm 第一个CVector参数 getSize得到的大小

一个新问题,怎样利用MKL 求解非对称矩阵的特征向量 谢谢

#4


"CMatrix类", "SloveEigen_byTerm" 都不是MKL 的函数,楼上同学是不是在调用其他代码。。。。

怎样利用MKL 求解非对称矩阵的特征向量:  可以看MKL 手册中, LAPACK一章中:“Nonsymmetric Eigenvalue Problems ”
http://www.intel.com/software/products/mkl/docs/mklman.htm

#5


好的 多谢了^^