
(6)[x, options,funval, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
(7)x=lsqnonlin(‘fun’,x0);
(8)x= lsqnonlin (‘fun’,x0,options);
(9)x= lsqnonlin (‘fun’,x0,options,‘grad’);
(10)[x,options]= lsqnonlin (‘fun’,x0,…);
(11)[x,options,funval]= lsqnonlin (‘fun’,x0,…);
在使用 lsqcurvefit 与 lsqnonlin 命令时,共同的问题是要先知道函数的类型,而拟合其实是决
定函数中的待定系数。
第二节 插值
插值的基本问题:给出 个数对,(
n
, ( )), 1,2, ,
ii
PfP i n
" ,求 点 处对应的函数值P
()
P
。
一、一维插值
已知 个节点 ,求任意点 处的函数值 。常用的插值方法
有拉格朗日多项式插值、牛顿插值、分段线性插值、Hermite 插值和三次样条插值。
1+n
niyx
ii
,,1,0),,( "=
*
x
*
y
9 分段线性插值:将各数据点用折线连接起来
9 多项式插值:求一个多项式通过所有数据点,可以假设出多项式的系数,最后通过
求解方程得到每个系数(拉格朗日插值,用 次多项式描述
n 1
n
个点)
9 样条插值:分段多项式的光滑连接(三次样条插值)
9 牛顿插值:利用节点之间的各阶差商和差分构造多项式
9 Hermite 插值:对插值函数,不仅要求它在节点处与函数同值,而且要求它与函数有
相同的一阶、二阶甚至更高阶的导数值
(1)MATLAB 命令:y=interp1(x0,y0,x,'method')
method 指定插值的方法,默认为线性插值。其值可为:
'nearest' 最近项插值
'linear' 线性插值
'spline' 立方样条插值
'cubic' 立方插值。
所有的插值方法要求 x0 是单调的。
当 x0 为等距时可以用快速插值法,使用快速插值法的格式为'*nearest'、'*linear'、'*spline'、
'*cubic'。
(2)三次样条插值在 Matlab 中的实现
在 Matlab 中数据点称之为断点。如果三次样条插值没有边界条件,最常用的方法,就
是采用非扭结(not-a-knot)条件。这个条件强迫第 1 个和第 2 个三次多项式的三阶导数相
等。对最后一个和倒数第 2 个三次多项式也做同样地处理。
Matlab 中三次样条插值也有现成的函数:
y=interp1(x0,y0,x,'spline');
y=spline(x0,y0,x);
pp=csape(x0,y0,conds),
pp=csape(x0,y0,conds,valconds),y=ppval(pp,x)。
其中 x0,y0 是已知数据点,x 是插值点,y 是插值点的函数值。
对于三次样条插值,我们提倡使用函数 csape,csape 的返回值是 pp 形式,要求插值点
2
评论1
最新资源