过冷水诚挚邀请你加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载,群号:927550334
一直以来过冷水都有给大家分享图像拟合的知识、从泰勒级数说傅里叶级数、Matlab多项式拟合初探,本期过冷水给大家讲讲统计回归做拟合。
对平面上n个点:(x1,y1)、(x2,y2)、......(xn,yn),在平面上寻找一条直线y=a0 b0,使得散点到与散点相对应的在直线上的点之间的纵坐标的误差的平方和最小,用微积分可得;
参考的程序案例:
x=[0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.2 0.21 0.23];
y=[42 43.5 45 45.5 45 47.5 49 53 50 55 55 60];
n=length(x);
xb=mean(x);yb=mean(y);
x2b=sum(x.^2)/n;
xyb=x*y'/n;
b=(xb*yb-xyb)/(xb^2-x2b);
a=yb-b*xb;
y1=a b.*x;
plot(x,y,'*',x,y1);
legend('y=a bx','(x,y)')
figure1 = figure;
axes1 = axes('Parent',figure1);
hold(axes1,'on');
plot1 = plot([x' x'],[y',y1']);
set(plot1(1),'DisplayName','$y=a bx$','MarkerFaceColor',[0 0.447058826684952 0.74117648601532],'MarkerSize',8,'Marker','*','LineWidth',25,'LineStyle','none');
set(plot1(2),'DisplayName','$(x,y)$','LineWidth',2);
ylabel('$y$','FontSize',16,'Interpreter','latex');
xlabel('$x$','FontSize',16,'Interpreter','latex');
title('统计回归');
box(axes1,'on');
hold(axes1,'off');
legend1 = legend(axes1,'show');
set(legend1,'Position',[0.165946844693115 0.810000000000001 0.151583475042277 0.085555555555558],'Interpreter','latex','FontSize',14);
本期想要和大家分享的就这么多,既然可以得到线性回归的参数,自然非线性的回归参数自然可以得到,在下次的非线性回归的推文中我们不见不散。
过冷水发表于仿真秀 平台原创文章,未经授权禁止私自转载,如需转载请需要和作者沟通表明授权声明,未授权文章皆视为侵权行为,必将追责。如果您希望加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载均可加群:927550334。
精品回顾
过冷水和你分享 matlab读取存储各种文件的方法 文末有独家金曲分享