潇野
幼苗
共回答了20个问题采纳率:80% 举报
X奇异C有无穷多解.找基础解系
对不起,最小二乘都快忘光了,线性代数还行.希望下面的东西能帮到你(你试试看):
对A进行QR分解(A=QR),其中Q是nxk正交矩阵(Orthonormal Matrix),R是kxk上三角矩阵(Upper Triangular Matrix),然后min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b||,用MATLAB命令x=R(Q'*b)可解得x.
最小二乘法的Matlab实现
① 一次函数 使用polyfit(x,y,1)
②多项式函数 使用 polyfit(x,y,n),n为次数
拟合曲线
x=[0.5,1.0,1.5,2.0,2.5,3.0],y=[1.75,2.45,3.81,4.80,7.00,8.60].
MATLAB程序如下:x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) x1=0.5:0.05:3.0; y1=polyval(p,x1); plot(x,y,'*r',x1,y1,'-b') 计算结果为:p =0.5614 0.8287 1.1560
即所得多项式为y=0.5614x^2+0.08287x+1.15560
③非线性函数 使用 lsqcurvefit(fun,x0,x,y)
1年前
追问
2
guoke6
举报
感谢这位大侠的热心回答!! 我还想问下: 我对QA分解不是很了解,你上面的公式min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b|,然后得到x=R(Q'*b),那就是认为min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b|=0??,然后根据x求Ax,其与b是近似相等吧??
举报
潇野
我明白了。。。 不好意思,我复制的时候也没有多注意,以上的内容帮不了你 不过还是解释一下。那个不是等于0,而是范数的最小值。因为最小二乘法是由于方程无法求精确解所以才采用近似,使得x的值代入后能更接近于b。 你的情况里最根本的问题是,这个方程根本就用不着最小二乘法= =|||,最小二乘法是在方程组系数的秩大于增广矩阵从而无解时才采用近似的。而在这里,原方程组AX=b中未知量的个数1110大于方程的个数100,所以本身就是有解的(无穷多解)。出现奇异的原因是:原方程组的秩最多为100,所以A'A的秩会小于100,故而是奇异矩阵。 最后再提醒一下,使用最小二乘法一定要是原方程组无解(所以至少未知量的个数要大于方程组的个数)时才行,这时的A'AX=A'b是原方程组的正规方程,一定是有解的,不会出现系数矩阵奇异的情况!而这也正是你预测的数据与Y一摸一样的原因。。。