gpt4 book ai didi

c++ - 单值分解实现 C++

转载 作者:IT老高 更新时间:2023-10-28 12:59:34 27 4
gpt4 key购买 nike

谁能推荐一个稳定且正确的 C++ 单值分解 (SVD) 实现?最好是独立实现(不想为一种方法添加大型库)。

我使用 OpenCV... 但 openCV SVD 为单个矩阵返回不同的分解(!)。我知道,存在不止一种简单矩阵的分解......但为什么 openCV 会那样做呢?随机基础?还是什么?

这种不稳定性在某些情况下会导致我的计算出现错误,我不明白为什么。 但是,结果由 mathlab 或 wolframalpha 返回 - 总是 给出正确的计算 ....

最佳答案

试试 redsvd (BSD 许可证)。它实现了干净且非常高效modern algorithms for SVD ,包括部分(截断)SVD。

Redsvd 建立在漂亮的 C++ 模板库 eigen3 之上。 .由于您提到安装是一个问题,您会喜欢听到 eigen3 不需要安装。它只是模板(C++ 头文件)。

此外,不存在“单个矩阵的多个分解”。 SVD 分解始终存在并且是唯一的,直到翻转对应的 U/V vector 的符号。

关于c++ - 单值分解实现 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3856072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com