gpt4 book ai didi

c++ - Alglib:在最小二乘意义上求解 A * x = b

转载 作者:行者123 更新时间:2023-11-28 07:36:53 24 4
gpt4 key购买 nike

我有一个有点复杂的算法,需要将二次曲面拟合到一组点。此二次曲面由其参数化 (u, v, f(u,v)) 给出,其中 f(u,v) = au^2+bv^2+cuv+du+ ev+f。需要找到 f(u,v) 函数的系数,因为我有一组恰好 6 个该函数应该遵守的约束。问题是这组约束虽然会产生类似 A*x = b 的问题,但并不能完全保证唯一的解决方案。

因此,简而言之,我想使用 alglib 的工具以某种方式确定 A 的伪逆或直接找到最适合 x vector 的.

除了计算 SVD 之外,这个库中是否有更直接的算法可以解决最小二乘意义上的系统(同样,除了 SVD 或使用朴素的 inv(transpose(A) *A)*transpose(A)*b A 不是方阵的一般最小二乘问题的公式?

最佳答案

通过一些仔细的文档浏览找到了答案:

rmatrixsolvels( A, noRows, noCols, b, singularValueThreshold, info, solverReport, x)

文档指出奇异值阈值是一个钳位阈值,如果该值低于它,则将 SVD 分解 S 矩阵中的任何奇异值设置为 0。因此它应该是一个介于 0 和 1 之间的标量。

希望它也能帮助其他人。

关于c++ - Alglib:在最小二乘意义上求解 A * x = b,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16624604/

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