采用最小二乘法对一对数据进行数据拟合,新手可能采用command 窗口输入代码的形式,再次我特别希望各位朋友能更快捷一下。

       不要总说自己是新手,不会,都是借口,在此我希望大家几十秒钟搞定的事,不要浪费时间写代码了。

       首先用大家常用的写代码的方式:

     

序号	x               y       z 1	426.6279	0.066	2.897867 2	465.325	0.123	1.621569 3	504.0792	0.102	2.429227 4	419.1864	0.057	3.50554 5	464.2019	0.103	1.153921 6	383.0993	0.057	2.297169 7	416.3144	0.049	3.058917 8	464.2762	0.088	1.369858 9	453.0949	0.09	3.028741 10	376.9057	0.049	4.047241 11	409.0494	0.045	4.838143 12	449.4363	0.079	4.120973 13	372.1432	0.041	3.604795 14	389.0911	0.085	2.048922 15	446.7059	0.057	3.372603 16	347.5848	0.03	4.643016 17	379.3764	0.041	4.74171 18	453.6719	0.082	1.841441 19	388.1694	0.051	2.293532 20	444.9446	0.076	3.541803 21	437.4085	0.056	3.984765 22	408.9602	0.078	2.291967 23	393.7606	0.059	2.910391 24	443.1192	0.063	3.080523 25	514.1963	0.153	1.314749 26	377.8119	0.041	3.967584 27	421.5248	0.063	3.005718 28	421.5248	0.063	3.005718 29	421.5248	0.063	3.005718 30	421.5248	0.063	3.005718 31	421.5248	0.063	3.005718 32	421.5248	0.063	3.005718 33	421.5248	0.063	3.005718 34	421.5248	0.063	3.005718 35	421.5248	0.063	3.005718 36	421.5248	0.063	3.005718 37	416.1229	0.111	1.281646 38	369.019	0.04	2.861201 39	362.2008	0.036	3.060995 40	417.1425	0.038	3.69532


现在要对其求x与y 的关系:

clear all >> p=polyfit(x,y,2); >> x1=300:10:600; >> y1=polyval(p,x1); >> plot(x,y,'*r',x1,y1,'-b') >> plot(x,'DisplayName','x','YDataSource','x');figure(gcf)



  下面重点介绍下一个方法:

   在命令行输入:  cftool 弹出下面的窗口:

 

在X data 选择x变量,Y data选择y变量,线性拟合选择2次,出现下面的窗口:



也可以选择其他的函数拟合,一般常用的是高斯拟合:



得到的不仅仅是想要的函数表达式,还有Goodness of fit:
  SSE: 0.008294
  R-square: 0.666
  Adjusted R-square: 0.6169
  RMSE: 0.01562

可以用来分析拟合数据函数的好坏。