作者DJWS (...)
看板Prob_Solve
标题Re: [问题] 解最小平方法的问题 Ax~b
时间Mon Dec 25 13:09:07 2017
※ 引述《j0958322080 (Tidus)》之铭言:
: 我想要去FIT一条四次方的曲线,其中 x 的值为50000左右,
: 依照理论我会用到x^4,这样整个矩阵A*A^T的最大值与最小值会差到40次方,
: 我自己写了一个程式用 LU 分解去计算反矩阵,求得的反矩阵跟 EXCEL 的结果完全一样,
: 可是我发现那两个矩阵(A*A^T)和(A*A^T)^-1在 EXCEL 里面乘起来不是单位矩阵,
: 而且有些非对角线元素甚至达到10^8,这样的结果不知道是否会与我想要的解差很多??
: 因为目前只有想到用反矩阵解,不知道有没有什麽比较好的演算法可以解的比较精确??
先讲结论:我也不知道
稍微帮忙整理一下资讯
1. 我看过的大学课程资料,通通没有提过这件事。
2. 这网页的reference列了很多书,我没有全部读过,所以可能最近几天翻一翻吧。
http://mathworld.wolfram.com/LeastSquaresFitting.html
3. 如果这些书都没有答案,那答案可能藏在论文、专利、专案里面。
这种情况嘛,除非去找专家,要不然光靠自己应该是找不到答案。
可能要去专业讨论区发问吧,例如这种的:
https://math.stackexchange.com/questions/tagged/numerical-methods
4. 解least square的方法(资料量从少到多,速度从慢到快,精确度从高到低)
(1) 公式解(Normal Equation/QR/SVD)
(2) 梯度下降法/递推法(Levenberg-Marquardt Algorithm/Conjugate Gradient)
主要是针对正定矩阵进行加速
(3) 随机取样(RANSAC/Iterative Closest Point)
随便抓5点,然後做多项式内插。
然後重复这个步骤很多次,从中找到最好的那个多项式。
实际应用几乎都是(2)(3),所以很难找到(1)的讨论。尤其又是四次多项式...
5. 说到FIT四次方曲线,有一个非常接近的东西叫做 bezier curve fitting
因为贝兹曲线很有名,所以资料应该满多的,我猜可以往这方面去找。
6. 说到多项式内插,谷歌一下就有讨论精确度的论文了,还满好找的:
http://www.sciencedirect.com/science/article/pii/S0024379505004520
我也想知道答案是什麽。如果你找到答案了,希望可以CC给我,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.8.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1514178553.A.7FC.html
1F:推 j0958322080: 我觉得这误差应该跟计算太多次有关系,目前在想是否 12/25 15:07
2F:→ j0958322080: 可以利用什麽数学定理来减少计算量。不过梯度下降法 12/25 15:08
3F:→ j0958322080: 我之前以为只是要得到最小误差的理论推导而已,之後 12/25 15:09
4F:→ j0958322080: 会试试看这个演算法和QR分解,感谢 12/25 15:09
5F:推 j0958322080: 我刚刚看了一下,最好的方法是把A做QR分解,整个问题 12/25 15:20
6F:→ j0958322080: 就只剩下 Qx = Rb,剩下解线性方城组就好 12/25 15:20