知道一组数据,如何用matlab进行三次样条函数拟合? 5
2个回答
推荐于2017-10-02 · 知道合伙人数码行家
关注
展开全部
如下:
function fit_tulun
%多项式拟合方式
x=linspace(0,4*pi,6);
y_jingque=sin(x); %决定稀疏样本点数据
p_poly=polyfit(x,y_jingque,5);
x_poly_fit=linspace(0,4*pi,100);
y_poly_fit=polyval(p_poly,x_poly_fit);
%三次样条拟合方式
sp=csapi(x,y_jingque);
%求三次样条函数的导数.
s_diff=fnder(sp,1);
plot(x_poly_fit,y_poly_fit,'ko',x_poly_fit,y_poly_fit,'b:')
%plot(x_poly_fit,y_poly_fit,'b:')
hold on
fnplt(sp,'r')
fnplt(s_diff,'c')
x1=linspace(0,4*pi,200);
plot(x1,sin(x1),'m','linewidth',1.8)
legend('多项式拟合样本点','多项式拟合曲线','三次样条拟合曲线','三次样条导数曲线','正弦曲线精确图形').
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询