平滑翼型数据

时间:2013-12-07 19:30:13

标签: matlab

这些是翼型形状的一些数据点:

x=[1 0.8518 0.7040 0.5536 0.3988 0.2454 0.0937 0.0199 0.0015 0 0.0169 0.0812 0.2054 0.3525 0.4979 0.6457 0.7974 0.9497];
y=[0 0.0355 0.0819 0.1206 0.1347 0.1200 0.0777 0.0363 0.0162 0 -0.0197 -0.0428 -0.0645 -0.0749 -0.0701 -0.0506 -0.0249 -0.0026];

我不允许使用任何曲线拟合工具箱。我用什么方法绘制更平滑的翼型形状。我应该使用polyfit还是interp1?

1 个答案:

答案 0 :(得分:1)

是的,interp1应该完成这项工作,但您需要将数据分成两部分,正面y和负面y,以及相应的x值。

这是使用三次插值的示例。查看doc for interp1了解更多详情:

ypos = y(y>=0);    % y only when positive
xpos = x(y>=0);    % corresponding values of x
yneg = y(y<0);     % y only when strictly negative
xneg = x(y<0);     % corresponding values of x
xi=linspace(0,max(x),100);                      % values of x for interpolation (100 values linearly spaced between 0 and the max of x
yposi = interp1(xpos,ypos,xi,'cubic','extrap'); % interpolated values of y (when positive) using cubic interpolation and extrapolation
ynegi = interp1(xneg,yneg,xi,'cubic','extrap'); % interpolated values of y (when strictly negative) using cubic interpolation and extrapolation
plot(x,y,'ro',xi,yposi,'b-',xi,ynegi,'b-')      % plot interpolated data on top of original data