首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C中奇异值分解(SVD)

C中奇异值分解(SVD)
EN

Stack Overflow用户
提问于 2015-02-16 11:05:58
回答 1查看 2K关注 0票数 1

我在C中做五点基本矩阵估计,在这里我需要实现SVD。我在c http://www.public.iastate.edu/~dicook/JSS/paper/code/svd.c中找到了一个在mxn矩阵上工作的开源实现,问题是我要分解的矩阵是( 5x9 )矩阵,因此是n>m。我需要正确的正交变换矩阵v,其中svd(A)=u_d_v‘确保( m>n )我尝试做了SVD (转置(A))= u2 *d2*v2,我发现了u=v2,但是v不同于u2,我需要v.如何在C中对5x9矩阵成功地实现SVD?

EN

回答 1

Stack Overflow用户

发布于 2019-12-31 17:38:06

晚会晚了,但作为今后的参考,我们可以从WilliamH.Press等人在第2.6章第67页SVD算法中的“C中的数值规则”一书中获得一个SVD实现。引用这本书

这是构造任意矩阵奇异值分解的算法。

所以我假设要分解的矩阵可以是平方的,m < n或者n < m

警告:当在C中搜索SVD实现时,检查所做的假设是什么,w.r.t输入矩阵。有的假设矩阵是正方形的,有的则没有,等等.

或者,您可以在LAPACK中使用SVD。Stephen提供了一个关于如何使用dgesdd执行SVD的代码示例。(链接here)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28539984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档