Plotting asymptotic limits, interpolation

5 次查看(过去 30 天)
Hi, I'm plotting the following set of data
x = [0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0];
y = [1.7764 1.4849 1.3076 1.1857 1.0957 1.0257 0.9698 0.9235 0.8845];
cs = spline(x,y);
xx = linspace(0.6,1,401);
yy = ppval(cs,xx);
plot(x,y,'o',xx,yy,'-');
axis([0.6 1 0.8 1.8])
xlabel('n')
ylabel('$-H(\eta_{\infty})$','interpreter','latex')
legend('data','spline')
However, I know that for x=0.5 the data set tends asymptotically towards the y-axis. Is there a way I can add this into the plot whilst preserving the 'shape' of the interpolating spline? I've tried approximating this by adding in the point x=0.5 with say y=100, however the curve is not longer smooth.
Any help would be great.
Thanks.

回答(1 个)

José-Luis
José-Luis 2013-2-21
Let Matlab decide how to make your plot look smooth:
myFun = @(x) ppval(cs,x)
fplot(myFun,[0.5 1])
  2 个评论
pxg882
pxg882 2013-2-21
This does produce a smooth plot but it doesn't encapsulate the asymptotic behaviour of the function as x tends towards 0.5. Is there a way to force Matlab into taking behaviour into account?
José-Luis
José-Luis 2013-2-21
编辑:José-Luis 2013-2-21
What makes you think it is asymptotic? A cubic function never evaluates to infinity. Every piece in the spline is a cubic function. You would need to define the function you are thinking of for the [0.5 0.6] interval.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by