![](https://csdnimg.cn/release/download_crawler_static/86200435/bg1.jpg)
第四讲 数据分析方法
第一节、数据拟合
问题:给定一批数据点(输入变量与输出变量的数据),需确定满足特定要求的曲线或
曲面。如果输入变量和输出变量都只有一个,则属于一元函数的拟合和插值;而若输入变量
有多个,则为多元函数的拟合和插值(有点回归分析的意思)
解决方案:
(1) 若要求所求曲线(面)通过所给所有数据点,就是插值问题;
(2) 若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就
是数据拟合,又称曲线拟合或曲面拟合。
注意:插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,
二者的数学方法上是完全不同的。而面对一个实际问题,究竟应该用插值还是拟合,有时
容易确定,有时则并不明显。
例 1:下面数据是某次实验所得,希望得到 X 和 f之间的关系?
x 1 2 4 7 9 12 13 15 17
f 1.5 3.9 6.6 11.7 15.6 18.8 19.6 20.6 21.1
曲线拟合问题最常用的解法——最小二乘法的基本思路
第一步:确定拟合的函数类型
),,,;(
21 m
aaaxfy "
=
,其 中 为待定系数。
(函数类型的确定可以根据内在的规律确定,如果无现成的规则,则可以通过散点图,联系
曲线的形状进行分析)
m
aaa ,,,
21
"
第二步:确定 的最小二乘准则:要求 个已知点 与曲线
的距离 的平方和 最小 。
m
aaa ,,,
21
"
n
),(
ii
yx
)(xfy =
i
d
∑
=
−
n
i
ii
xfy
1
2
))((
用 MATLAB 作拟合
1.多项式拟合。作多项式 拟合,可利用
m
mm
axaxay +++=
−
"
1
10
a=polyfit(x,y,m)
—
其中 x,y 为给出的数据,m 为多项式的次数。
多项式在 x 处的值 y 可用以下命令计算:
y=polyval(a,x)
2.用 MATLAB 作非线性最小二乘拟合
Matlab 的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit 和 lsqnonlin。两个命令
都要先建立 M-文件 fun.m,在其中定义函数 f(x)。
(1)x = lsqcurvefit (‘fun’,x0,xdata,ydata);
(2)x =lsqcurvefit (‘fun’,x0,xdata,ydata,options);
(3)x = lsqcurvefit (‘fun’,x0,xdata,ydata,options,’grad’);
(4)[x, options] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
(5)[x, options,funval] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
1
评论0