欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据拟合

程序员文章站 2024-03-24 23:02:10
...

使用MATLAB进行简单的数据拟合

1.使用MATLAB工具箱进行数据拟合
Matlab曲线拟合工具箱
运用Matlab拟合工具箱的命令为cftool
举例使用x=0:2*pi/100:2*pi-2*pi/100100个数据点作为自变量,y=sin(x)产生因变量,利用Linear Fitting进行拟合,结果如下:
数据拟合

2.使用函数进行拟合
polyfit(x,y,N)
这是一个运用多项式拟合的函数,使用该函数拟合出来的矩阵则是N阶多项式的系数矩阵,矩阵的维数和N有关。
具体而言,yy=polyfit(x,y,N)中第一个参数传递的是拟合数据的自变量,第二个参数是因变量,第三个参数是拟合多项式的阶数,我们可以给定不同的N,运用不同的多项式进行拟合。举个栗子:

x=0:2*pi/100:2*pi-2*pi/100;
y=sin(x);
yy=polyfit(x,y,5)
plot(x,yy(1)*x.^5+yy(2)*x.^4+yy(3)*x.^3+yy(4)*x.^2+yy(5)*x+yy(6))

数据拟合
其中,我们要如何判断阶数N呢,可以 写一个简单的误差判断程序:

for i=1:10
    yy=polyfit(x,y,i);
    Y=polyval(yy,x);
    if sum((Y-y).^2)<0.01
        c=i  
        break;
    end
end

这是一种利用多项式进行拟合的方法。
polyfit函数只适合于形如y = a[k]*x^k + a[k-1]*x^(k-1) + … + a[1]*x + a[0]的完全的一元多项式的数据拟合。