以下是关于matlab中直线的最小二乘拟合,是矩阵除法的编程,求大神解释,谢谢!!(y=kx+b)

function[k,b]=linefit(x,y)n=length(x);x=reshape(x,n,1);y=reshape(y,n,1);A=[x,ones(n,1... function[k,b]=linefit(x,y)
n=length(x);
x=reshape(x,n,1);
y=reshape(y,n,1);
A=[x,ones(n,1)];
bb=y;
B=A'*A;
bb=A'*bb;
yy=B\bb;
k=yy(1);
b=yy(2);
展开
 我来答
WM_THU
2013-08-15 · TA获得超过7163个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3868万
展开全部
最小二乘估计的一般公式:已知Y = Hx;其中Y是测量数据,H是观测矩阵,x是待定参数。H应该是一个行数多于列数的矩阵。则,
X = (H.'*H)\H.'*Y
是x的最小二乘估计。
现在,要估计的参数就是[k; b]。每一次观测都可以表示为y = [x 1]*[k; b]. 将数据纵向排列起来,由此可以构造出Y和观测矩阵H。
更多追问追答
追问
最小二乘法求参数我理解,就是下面这些语句不是很理解,能帮忙解释一下吗?
bb=y;
B=A'*A;
bb=A'*bb;
yy=B\bb;
k=yy(1);
b=yy(2);
追答
就是这个式子X = (H.'*H)\H.'*Y 只是变量名起的不一样 只要做等式代入就可以把上面几行代码变成这一句了。请问您具体那里看不懂?
X向量的长度是2,从向量中取元素这个操作就是用()实现的。matlab中计数是从1开始的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式