中易网

matlab 加权最小二乘法

答案:3  悬赏:10  
解决时间 2021-02-13 11:38
matlab 加权最小二乘法
最佳答案
参考代码%生成测试数据a0=1;a1=2;a2=3;x1=rand(10,10);x2=rand(10,10);Y=a0+a1*x1+a2*x2;%加入随机噪声Y=Y+0.1*randn(size(y));%拟合函数形式f=@(k,x)k(1)+k(2)*x(:,1)+k(3)*x(:,2);x=[x1(:)x2(:)];k=lsqcurvefit(f,[1111],x,Y(:))n=size(x,1);plot(1:n,Y(:),'bo',1:n,f(k,x),'r:.')运行结果k=1.03091.97822.9800分别对应a0~a2,可见与原始系数比较吻合。
全部回答
“/”是矩阵右除的符号,对应的函数是mrdivide。矩阵右除是通过左除实现的,也就是说,a/b = (b'\a')'。 “\”是矩阵左除的符号,对应的函数是mldivide。 x=a\b是线性方程组ax=b的解,而x=b/a是线性方程组xa=b的解(如果方程组欠定或超定,则解为最小二乘意义上的)。 以你举的例子来说,相当于求3x=1,4x=2,5x=3这样一个方程组的解,显然这个方程组属于超定的情况,无解,但可以求出最小二乘解x=0.52。 使用最小二乘拟合函数可以求出相同的解来: k=lsqcurvefit(inline('k*x','k','x'),0,[3 4 5],[1 2 3])
k=2; b=1; x=1:1:30; y=k*x+b+unifrnd(-1,1,1,length(x))*0.1; X=[ones(length(x),1),x']; Y=y'; w=ones(length(x),1)/length(x); w=w/sum(w); W=diag(w); B=(X'*W^(-1)*X)^(-1)*X'*W^(-1)*Y; Y2=X*B;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
socket接收的数据来不及处理问题
檀东邵村地址在哪,我要去那里办事
从上海虹桥站到上海南站怎么乘地铁用时最少?
SVN的用户访问权限设置
大连市职工医疗保险在山东住院能报销么?
我们家姓祁,女孩儿叫祁什么好呢?
卖水的人看到河会怎么想? 答案
福建烟草内招常识题考多少道?申论大概是写多
美保尔兽药店地址好找么,我有些事要过去
为什么GTA5地图上才几个玩家 难道就这么多吗
求画真人的技巧啊!
安徽省蚌阜市怀远县哪有培训英语的
生化危机3 卡洛斯 死了没
渔味记西大店在什么地方啊,我要过去处理事情
华山火车站到华山东门售票处 公交和出租车怎
推荐资讯
康奈尔笔记能够非常清晰地展示某段文章的结构
潇康纸业在什么地方啊,我要过去处理事情
冒险岛大海遇难者卡伊在哪?
问个物理题
发生了交通事故别人站,主要责任我站次要责任,
建行为什么扣我2次短信服务费、1次扣30总共扣
三和电子有限公司我想知道这个在什么地方
一喝伊利优酸乳就拉肚子??
我是广东梅州丰顺县的,在约二十年前我爸爸因
请问我的护照封面变成这样,能用吗?
水利水电工程资料应该从那入手,有没有相关指
熔点最低金属除了汞还有哪些熔点分别是多少度
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?