根据官方用户指南,sgelsd 用于解决最小二乘问题
min_x || b - Ax ||_2
并允许矩阵 A 是矩形且秩亏的。并且根据sgelsd源码中的接口描述,b作为输入输出参数。当 sgelsd 完成时, b 存储解决方案。所以 b 占用 m*sizeof(float) 个字节。而解决方案 x 需要 n*sizeof(float) 个字节(假设 A 是 am*n 矩阵,b 是 am*1 向量)。
但是,当 n>m 时,b 的内存太小,无法存储解 x。如何处理这种情况?我没有从 sgelsd 源代码的注释中得到它。我可以只为 b 分配 n*sizeof(float) 字节并使用第一个 m*sizeof(float) 来存储 b 向量吗?
谢谢。