用加权最小二乘法拟合曲线matlab?

用加权最小二乘法拟合曲线matlab?,第1张

如何用matlab求加权最小二乘法拟合曲线?

第一步,根据给出的xi、yi、wi分别赋值给x、y、w列变量

第二步,将xi与wi乘积赋值给X变量,即

X=w.*x

第三步,创建多项式系数矩阵,即

X1=[X.^4 X.^3 X.^2 X ones(size(x))]

第四步,使用regress函数求出拟合系数,即

[p,bint,r,rint,stats] = regress(y,X1)

第五步,显示拟合系数和相关系数

p1=p(1),p2=p(2),p3=p(3),p4=p(4),p5=p(5)

R^2=stats(1)

第六步,计算拟合值,即

Y=p(1)*X.^4+p(2)*X.^3+p(3)*X.^2+p(4)*X+p(5)

第七步,使用plot函数,绘制拟合曲线

用polyfit()语句可以,

polyfit(x,y,拟合次数n)

x,y是你的数据,n是你要进行几次拟合,填1的话为一次也就是最小二乘法拟合

你可以这样写

x=[0.250.50.7511.522.533.544.55678910111213141516]

y=[3068758282776868585150413835282518151210774]

p=polyfit(x,y,1)

plot(x,y,'b',x,polyval(p,x),'r') %如果作图的话,蓝线为原数据,红线为拟合数据。

先画散点图大致确定曲线类型。然后用polyfit,polyval函数(这两个是多项式拟合的),比如指数型,取对数就可以用。函数用法百度下就好。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7840068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存