学习交流

当前位置 /首页/母婴教育/学习交流/列表

在matlab下,学会对数据求解最小二乘曲线拟合

matlab作为一个常用的数学工具,可以帮助我们解决很多实用的问题,类试如数学建模之类的,进行数据拟合。以下用polyfit()函数对以下数据求解最小二乘曲线拟合。

在matlab下,学会对数据求解最小二乘曲线拟合

操作方法

(01)运行matlab软件,就不赘述了。直接进行编写程序。输入x=[1 4 5 8 10 16 17 18 20 23 24 26 27 28]y=[0.5 0.9 1.3 0.7 2.0 2.5 1.7 1.4 1.5 1.8 2.2 2.5 3.0 4.3]

在matlab下,学会对数据求解最小二乘曲线拟合 第2张
在matlab下,学会对数据求解最小二乘曲线拟合 第3张

(02)输入a=polyfit(x,y,1);x1=1:0.5:28;y1=a(1)*x1+a(2);plot(x,y,'*',x1,y1,'r')显示如下(该图是线性回归拟合图),反应了函数整体上升时的趋势,但具体细节部分并么有反映出来。

在matlab下,学会对数据求解最小二乘曲线拟合 第4张

(03)下面对曲线进行二次拟合,其程序代码如下b=polyfit(x,y,2);x2=1:0.5:28;y2=b(1)*x2.^2+b(2)*x2+b(3)按下enter键后出现如下所示在输入plot(x,y,'*',x2,y2,'r')后按下enter后,如第二图所示(二次拟合图)

在matlab下,学会对数据求解最小二乘曲线拟合 第5张
在matlab下,学会对数据求解最小二乘曲线拟合 第6张

(04)对比两次的拟合图,会发现二次拟合出来的结果比一次拟合结果更加准确,但仍未反映出数据的真实情况。在对曲线进行高次拟合。输入c=polyfit(x,y,5);x3=1:0.5:28;y3=c(1)*x3.^5+c(2)*x3.^4+c(3)*x3.^3+c(4)*x3.^2+c(5)*x3+c(6)按enter键有如下y3的取值

在matlab下,学会对数据求解最小二乘曲线拟合 第7张

(05)输入plot(x,y,'*',x3,y3,'-r')按enter键有如下图像。这个图像是对曲线进行的5次拟合的结果,基本上反映出了数据的真实变化情况。需要注意的是不可以对数据进行太高次数的拟合,次数太高就会出现警告。

在matlab下,学会对数据求解最小二乘曲线拟合 第8张

特别提示

编程序需要认真,要不然就会出错