ILArray<double> CU = new double[256, 256];
ILArray<double> CV = new double[256, 256];
ILArray<double> S = ILMath.svd(matrixC, CU, CV, true, true);
在ILnumerics中计算SVD时,我没有得到S的正确值与从Matlab获得的结果相比。但是我得到了U和V的正确值。
为什么会这样?我在这方面做错了。请帮助。
谢谢和问候,
Subin Bajracharya
答案 0 :(得分:1)
SVDs结果并不是唯一的。为了判断正确性,考虑测试SVD输出与原始矩阵相乘的结果的等价,识别舍入误差。
请参阅:https://en.wikipedia.org/wiki/Singular_value_decomposition