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

作者:小橘猫 | 创建时间: 2023-05-19
matlab作为一个常用的数学工具,可以帮助我们解决很多实用的问题,类试如数学建模之类的,进行数据拟合。以下用polyfit()函数对以下数据求解最小二乘曲线拟合。...
在matlab下,学会对数据求解最小二乘曲线拟合

操作方法

运行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]

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

下面对曲线进行二次拟合,其程序代码如下 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后,如第二图所示(二次拟合图)

对比两次的拟合图,会发现二次拟合出来的结果比一次拟合结果更加准确,但仍未反映出数据的真实情况。在对曲线进行高次拟合。 输入 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的取值

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

温馨提示

编程序需要认真,要不然就会出错
点击展开全文

更多推荐