插值方法晚上做一个曲线拟合,结果才开始用最小二乘法拟合时,拟合出来的东西太难看了
于是尝试用其他方法
经过一番按图索骥,终于发现做曲线拟合的话,采用插值法是比较理想的方法
尤其是样条插值,插完后线条十分光滑
方法付后, 最关键的问题是求解时要积分,放这里想要的时候就可以直接过来拿,不用死去搜索啦
呵呵插值方法的Matlab 实现一维数据插值MATLAB中用函数 interp1 来拟合 一维 数据 ,语法是 YI = INTERP1(X,Y,XI,方法 ) 其中( X, Y) 是已给的数据点,XI 是插值点,其中方法主要有'linear' -线性插值,默认'pchip' -逐段三次 Hermite 插值'spline' -逐段三次样条函数插值其中最后一种插值的曲线比较平滑例:x=0:
12:1; x1=0:
02:1;% (其中 x=0:
12:1 表示显示的插值点,x1=0:
02:1 表示插值的步长)y=(x
^2-3*x+5)
*exp(-5*x)
*sin(x); plot(x,y,'o'); hold on; y1=interp1(x,y,x1,'spline'); plot(x1,y1,':') 如果要根据 样本点求函数的定积分,而函数又是比较光滑的,则可以用样条函数进行插值后再积分,在MATLAB中可以编写如下程序:function y=quadspln(x0,y0,a,b) f=inline('interp1(x0,y0,x,''spline'')','x','x0','y0'); y=quadl(f,a,b,1e-8,[]