矩阵算法:非对称方阵,如何求特征值特征向量?期望高人指点SVD奇异值分解算法。

yyunffu 2010-11-15 10:38:58
矩阵算法:非对称方阵,如何求特征值特征向量?期望高人指点SVD奇异值分解算法。
最近算法中遇到求解非对称方阵特征值特征向量问题,如果对称,可用雅克比法解决,非对称如何解决?有无开源代码可用?向各位高人请教。
多谢。
...全文
2310 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
DEDED01 2011-08-31
  • 打赏
  • 举报
回复
如何用MATLAB求非方阵特征值特征向量
DEDED01 2011-08-31
  • 打赏
  • 举报
回复
非对称方阵,如何用MATLAB求特征值特征向量?
yyunffu 2010-11-18
  • 打赏
  • 举报
回复
多谢各位,该问题暂时搁置。
yyunffu 2010-11-17
  • 打赏
  • 举报
回复
典型相关分析
典型相关分析(Canonical Correlation)是研究两组变量之间相关关系的一种多元统计方法。它能够揭示出两组变量之间的内在联系。
我们知道,在一元统计分析中,用相关系数来衡量两个随机变量之间的线性相关关系;用复相关系数研究一个随机变量和多个随机变量的线性相关关系。然而,这些统计方法在研究两组变量之间的相关关系时却无能为力。比如要研究生理指标与训练指标的关系,居民生活环境与健康状况的关系,人口统计变量(户主年龄、家庭年收入、户主受教育程度)与消费变量(每年去餐馆就餐的频率、每年出外看电影的频率)之间是否具有相关关系?阅读能力变量(阅读速度、阅读才能)与数学运算能力变量(数学运算速度、数学运算才能)是否相关?这些多变量间的相关性如何分析?
典型相关分析的目的是识别并量化两组变量之间的联系,将两组变量相关关系的分析,转化为一组变量的线性组合与另一组变量线性组合之间的相关关系分析。
目前,典型相关分析已被广泛应用于心理学、市场营销等领域,如用于研究个人性格与职业兴趣的关系,市场促销活动与消费者响应之间的关系等。
fire_woods 2010-11-17
  • 打赏
  • 举报
回复
没有听说过CCA, 只听说过PCA, 不过PCA的协方差矩阵是关于对角线对称的......
gbb21 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yyunffu 的回复:]

多谢回复。
我这里矩阵是方阵,但为非对称,求解其特征值与特征向量。
用matlab求解,特征值及特征向量均含有复数,请教这种一般形式(非对称)方阵,求解特征值,特征向量,是否必含有复数?
[/Quote]

It depends, since we have a^2 in the formula, it's possible to get complex number for eigenvalue / eigenvector
yyunffu 2010-11-16
  • 打赏
  • 举报
回复
多谢楼上,SVD代码我已经有了。
现在问题是CCA(典型相关分析)算法中用到求取特征值特征向量,估计我还没有理解透该算法过程,其中求解特征值特征向量部分,依照参考资料,结果并没有复数情况。

请教高人,有没有人写过或研究过该算法?能用于气象分析更佳。
fire_woods 2010-11-16
  • 打赏
  • 举报
回复
http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&client=aff-os-maxthon&hs=nic&affdom=csdn.net&q=SVD+c+%E4%BB%A3%E7%A0%81&aq=f&aqi=&aql=&oq=&gs_rfai=
yyunffu 2010-11-16
  • 打赏
  • 举报
回复
多谢回复。
请教高人,有没有人写过典型相关分析程序?或者什么地方有可参考源码?C++最佳。
fire_woods 2010-11-15
  • 打赏
  • 举报
回复
雅克比法是用来解决对角占优矩阵的奇异值分解的吧, 可以是不是对称貌似没关系.
yyunffu 2010-11-15
  • 打赏
  • 举报
回复
多谢回复。
我这里矩阵是方阵,但为非对称,求解其特征值与特征向量。
用matlab求解,特征值及特征向量均含有复数,请教这种一般形式(非对称)方阵,求解特征值,特征向量,是否必含有复数?
gbb21 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yyunffu 的回复:]

另请教:
哪位高手用C++实现过典型相关分析算法?有无开源库?请指点,问题中算法源于实现该分析算法过程中。
[/Quote]

matlab的源文件其实是可以看的~
gbb21 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gbb21 的回复:]

如果矩阵A是一个非方矩阵,那么A'A就是一个方阵。
其实通过简单推导我们可以得出
A'A v = (a^2) v

a 便是特征值,v是SVD中的一个向量。
我想很容易得到特征值多项式

A'A - (a^2)I = 0

求出特征值的平方a^2, 然后就有了特征值,然后就方便了~
[/Quote]
最后一个写错了,特征值多项式是det(A'A - (a^2)I)=0
gbb21 2010-11-15
  • 打赏
  • 举报
回复
如果矩阵A是一个非方矩阵,那么A'A就是一个方阵。
其实通过简单推导我们可以得出
A'A v = (a^2) v

a 便是特征值,v是SVD中的一个向量。
我想很容易得到特征值多项式

A'A - (a^2)I = 0

求出特征值的平方a^2, 然后就有了特征值,然后就方便了~
yyunffu 2010-11-15
  • 打赏
  • 举报
回复
另请教:
哪位高手用C++实现过典型相关分析算法?有无开源库?请指点,问题中算法源于实现该分析算法过程中。
yyunffu 2010-11-15
  • 打赏
  • 举报
回复
多谢两位回复!
我们是要用源码实现的,不能用matlab,matlab只能用作验证。

请教:实非对称方阵求特征值特征向量,是否必会含有复数?

哪位高手写过或者用到过该算法某些开源C++实现,能否指个路?多谢。
超级大笨狼 2010-11-15
  • 打赏
  • 举报
回复
用Matlab吧。

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧