MATLAB 曲线拟合基本概念认识 下载本文

内容发布更新时间 : 2024/6/16 9:43:31星期一 下面是文章的全部内容请认真阅读。

参数拟合---最小二乘法;

曲线拟合:

参数拟合---插值法

曲线拟合包括两个步骤:

1、 数据预处理:平滑法、排除法和区间排除法 2、 曲线的拟合 曲线拟合的方法:(1)以函数形是使用命令对数据进行拟合;(2)用图形窗口进行操作进行拟合。 多项式拟合函数: (1) polyfit函数

p=polyfit(x,y,n),用最小二乘法原理对数据进行拟合,并降序排列列向量。

p(x)?p1xn?p2xn?1?????pnx?pn?1

返回系数顺序为:p1,p2,…,pn?1.

[p,s]= polyfit(x,y,n) 返回多项式系数以及矩阵s, 误差估计s中有R、df、normr,

normr是norm of the residuals,即残差的范数,用来恒量你的拟合好不好,这个量越小拟合的效果越好

[p,s,mu]= polyfit(x,y,n),其中mu=[u1,u2],u1=mean(x)返回均值,u2=std(x)返回标

准偏差;对数据进行预处理:X=(x-u1)/u2。

(2) polyval函数 对多项式拟合效果进行评价

y=polyval(p,x),返回n阶多项式在x处的值。

y=polyval(p,x,[],mu),用x(x-u1)/u2代替x, 其中mu=[u1,u2],u1=mean(x)返回均值,u2=std(x)返回标准偏差,通过这样的处理数据使数据合理化。 [y,delta]=polyval(p,x,s) [y,delta]=polyval(p,x,mu)

产生置信区间y+delta,如果误差服从标准正态分布则误差落在y+delta区间内的概率至少有50%。

poly2str(p,x)是将拟合后的多项式系数(双精度数组)转换为字符形式的函数。

非参数拟合

非参数拟合方法有:插值法interpolants、平滑样条内插法smoothing spline。

x=xlsread('oillack.xls','sheet1','a1:a73')

-----------------------------------------------------------------------------------------------------------------

matlab软件中center and scale x data是什么意思?

这句话的意思是将x data原始数据进行中心化与比例化处理。类似于线性插值技术。matlab在曲线拟合工具箱中加入这个选项是为了当X data与ydata拟合不好时,选择这个选项有利于得到更好的拟合效果。matlab通过正则化预测数据(Xdatal)的中心与比例,以有助于预测。具体实现过程如下:

x 是预测数据, μ 是 x的均值, σ 是x的标准差 .把xdata数据转换成z, 转换后的数据中心 为0, 标准差为 1.

经过centering and scaling后,求出的多项式系数是y与z的函数关系,与y与x关系不同。但是模型形式与残差范数没有变化。具体如何实现过程见matlab给出的比较代码:

load census x = cdate; y = pop;

z = (x-mean(x))/std(x); % Compute

href=\ei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y4mHNWnhRLm1bYnWRkn1nL0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtYnWRsnjnkrj0YnWf4n1TYrHc\ target=\ class=\ghlight\ plot(x,y,'ro') % Plot data hold on

zfit = linspace(z(1),z(end),100);

pz = polyfit(z,y,3); % Compute conditioned fit yfit = polyval(pz,zfit);

xfit = linspace(x(1),x(end),100);

plot(xfit,yfit,'b-') % Plot conditioned fit vs. x data

好处是能得到更加精确的拟合结果。

可也有缺点,得不到y与x的直接函数关系式,只能间接通过z得到。