diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/asymptote/examples/spline.asy |
Initial commit
Diffstat (limited to 'graphics/asymptote/examples/spline.asy')
-rw-r--r-- | graphics/asymptote/examples/spline.asy | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/graphics/asymptote/examples/spline.asy b/graphics/asymptote/examples/spline.asy new file mode 100644 index 0000000000..9d79ef3a96 --- /dev/null +++ b/graphics/asymptote/examples/spline.asy @@ -0,0 +1,25 @@ +import graph; +import interpolate; + +size(15cm,15cm,IgnoreAspect); + +real a=1997, b=2002; +int n=5; +real[] xpt=a+sequence(n+1)*(b-a)/n; +real[] ypt={31,36,26,22,21,24}; +horner h=diffdiv(xpt,ypt); +fhorner L=fhorner(h); + +scale(false,true); + +pen p=linewidth(1); + +draw(graph(L,a,b),dashed+black+p,"Lagrange interpolation"); +draw(graph(xpt,ypt,Hermite(natural)),red+p,"natural spline"); +draw(graph(xpt,ypt,Hermite(monotonic)),blue+p,"monotone spline"); +xaxis("$x$",BottomTop,LeftTicks(Step=1,step=0.25)); +yaxis("$y$",LeftRight,RightTicks(Step=5)); + +dot(pairs(xpt,ypt),4bp+gray(0.3)); + +attach(legend(),point(10S),30S); |