A*x=y当A不可逆如何解x
求伪逆有五种方法,左右同时乘以A’,’chol()分解,qr() 分解,svd()分解和pinv()求伪逆,下面来比较一下哪个最优秀。
如果A是个355行3列的矩阵,经过计算,五个方式计算结果相同,对模型的拟合都是没有影响的。
如果A是个355行12列的矩阵(更高维),那么根据我对数据的拟合,结果如下:
深蓝线是数据,绿色的线是两边同时×A’,浅蓝色的线是pinv分解拟合出的模型,红线是qr拟合出的模型,黄线是svd分解拟合出的模型。这么浅显的看的话在高维下svd和两边同时×A’胜出,那么他们究竟谁更胜一筹,我们看一下第一范式,第二范式和Inf范式检验的结果:
%两边同时×A’
LINorm: 4310.269307,
degree:12
L2Norm: 304.254326,
degree:12
LinfNorm: 53.894558,
degree:12
%pinv
LINorm_pinv: 280971.201240,
degree:12
L2Norm_pinv: 17769.498396,
degree:12
LinfNorm_pinv: 1418.760946,
degree:12
%qr
LINorm_qr: 15143.093210,
degree:12
L2Norm_qr: 1598.
求伪逆的五种方法比较
最新推荐文章于 2024-09-17 20:34:02 发布
本文对比了在高维数据情况下,求解矩阵伪逆的五种方法:左右同时乘以A',chol分解,qr分解,svd分解和pinv函数。通过数据拟合和范式检验,发现SVD分解在高维下表现最佳,而在低维情况下,使用两边同时乘以A'可能会导致奇异矩阵警告。
摘要由CSDN通过智能技术生成