1 / 47

Spline interpolation

Spline interpolation. Spline A flexible piece of wood, hard rubber, or metal used in drawing curves Spline (mathematics) - Wikipedia, the free encyclopedia.

serge
Download Presentation

Spline interpolation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spline interpolation 數值方法2008, Applied Mathematics NDHU

  2. Spline • A flexible piece of wood, hard rubber, or metal used in drawing curves • Spline (mathematics) - Wikipedia, the free encyclopedia 數值方法2008, Applied Mathematics NDHU

  3. Before computers were used, numerical calculations were done by hand. Functions such as the step function were used but polynomials were generally preferred. With the advent of computers, splines first replaced polynomials in interpolation, and then served in construction of smooth and flexible shapes in computer graphics.[5] 數值方法2008, Applied Mathematics NDHU

  4. Control Polygon 數值方法2008, Applied Mathematics NDHU

  5. Spline • Spline Pictures 數值方法2008, Applied Mathematics NDHU

  6. Spline approximation • MatlabSpline toolbox • Input • paired data (x,y) • x_in : a set of horizontal coordinates • Output: • y_out, spline Interpolation at x_in 數值方法2008, Applied Mathematics NDHU

  7. Example I: three input arguments Input: x = 0:10; y = sin(x); x_in = 0:.25:10; Output: y_out = spline(x,y,x_in); Figure: plot(x,y,'o',x_in,y_out) 數值方法2008, Applied Mathematics NDHU

  8. 數值方法2008, Applied Mathematics NDHU

  9. Example II: Two input arguments Polynomial output x = -4:4; y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0]; cs = spline(x,y); xx = linspace(-4,4,101); plot(x,y,'o'); plot(xx,ppval(cs,xx),'-‘); INPUT OUTPUT FIGURE 數值方法2008, Applied Mathematics NDHU

  10. 數值方法2008, Applied Mathematics NDHU

  11. Example III • 2 D splines 數值方法2008, Applied Mathematics NDHU

  12. 2-D spline demo_2d_spline.m 數值方法2008, Applied Mathematics NDHU

  13. Polygon figure;hold on points = [0 0; 1 0; 1 1; 0 2; -1 1; -1 0; 0 -1; 0 -2].'; plot(points(1,:),points(2,:),'k'), axis([-2 2 -2.1 2.2]), grid off title('Control polygon') 數值方法2008, Applied Mathematics NDHU

  14. 2D spline >> plot(points(1,:),points(2,:),'ok') >> fnplt( cscvn(points), 'g',1.5 ) 數值方法2008, Applied Mathematics NDHU

  15. CSCVN `Natural' or periodic interpolating cubic spline curve • CS = CSCVN(POINTS) • returns a parametric `natural' cubic spline that interpolates to • the given points POINTS(:,i) at parameter values t(i) , • i=1,2,..., with t(i) chosen by Eugene Lee's centripetal scheme, • i.e., as accumulated square root of chord-length. • When first and last point coincide and there are no double points, • then a parametric *periodic* cubic spline is constructed instead. • However, double points result in corners. 數值方法2008, Applied Mathematics NDHU

  16. For example, x1=[1 0 -1 0 1];x2=[0 1 0 -1 0]; plot( x1,x2, ' ok ');hold on curve = cscvn([x1;x2]) ; fnplt( curve ) 數值方法2008, Applied Mathematics NDHU

  17. shows a (circular) curve through the four vertices of the standard diamond (because of the periodic boundary conditions enforced), while x1=[1 0 -1 -1 0 1];x2=[0 1 0 0 -1 0]; plot( x1,x2, ' ok ');hold on curve = cscvn([x1;x2]) ; fnplt( curve ) shows a corner at the double point as well as at the curve endpoint. 數值方法2008, Applied Mathematics NDHU

  18. Spline • A spline is composed of a set of piecewise polynomials • Linear spline • Quadratic spline • Cubic spline 數值方法2008, Applied Mathematics NDHU

  19. Spline approximation • Linear spline • First order piecewise polynomials • Quadratic spline • Second order piecewise polynomials • Cubic spline • Cubic piecewise polynomials 數值方法2008, Applied Mathematics NDHU

  20. L=length(x_in) n=length(x) function y_out=my_spline1(x,y,x_in) for j=1:L EXIT for k=1:n if x(k) >= x_in(j) break end i=k-1; a=(y(i+1)-y(i))/(x(i+1)-x(i)); y_out(j)=y(i)+a*(x_in(j)-x(i)); 數值方法2008, Applied Mathematics NDHU

  21. Procedure: my_spline1 Function y_out=my_spline(x,y,x_in) L=length(x_in); for j=1:N A. Findi that satisfies x(i) <= xx(i) <x(i+1) B. Set g to the slop of a line that connects (x(i),y(i)) and (x(i+1),y(i+1)). C. y_out(j) = y(i)+g*(x_in(j)-x(i)) 數值方法2008, Applied Mathematics NDHU

  22. Line interpolating (x(i+1),y(i+1)) (x_in(j),y_out(j)=?) (x(i),y(i)) 數值方法2008, Applied Mathematics NDHU

  23. Linear spline my_spline1.m x = 0:10; y = sin(x); x_in = 0:.25:10; y_out = my_spline1(x,y,x_in); plot(x,y,'o',x_in,y_out) 數值方法2008, Applied Mathematics NDHU

  24. 數值方法2008, Applied Mathematics NDHU

  25. Quadratic Spline 數值方法2008, Applied Mathematics NDHU

  26. Quadratic spline 數值方法2008, Applied Mathematics NDHU

  27. Quadratic splines Quadratic spline interpolation Determine all fi 數值方法2008, Applied Mathematics NDHU

  28. quadratic polynomial 數值方法2008, Applied Mathematics NDHU

  29. Smoothness criteria • The slopes of fi and fi+1 are identical at point Pi 數值方法2008, Applied Mathematics NDHU

  30. Smoothness Criteria Checking Check 數值方法2008, Applied Mathematics NDHU

  31. Fitting criteria • Pi denotes point (xi yi) • fi passes points Pi and Pi+1 數值方法2008, Applied Mathematics NDHU

  32. Fitting Criteria Checking - I Check 數值方法2008, Applied Mathematics NDHU

  33. Fitting Criteria Checking - II Check 數值方法2008, Applied Mathematics NDHU

  34. Recurrence relations 數值方法2008, Applied Mathematics NDHU

  35. 數值方法2008, Applied Mathematics NDHU

  36. Equations for Implementation 數值方法2008, Applied Mathematics NDHU

  37. Re-indexing 數值方法2008, Applied Mathematics NDHU

  38. L=length(x_in) K=length(x) n=K-1; z(1)=0 function y_out=my_spline1(x,y,x_in) for j=1:L EXIT for i=1:n for k=1:K a=(y(i+1)-y(i))/(x(i+1)-x(i)) z(i+1)=2*a-z(i) if x(k) >= x_in(j) break end i=k-1 a=(z(i+1)-z(i))/(x(i+1)-x(i));b=z(i);c=y(i) y_out(j)=a*(x_in(j)-x(i))^2+b*(x_in(j)-x(i)) +c; 數值方法2008, Applied Mathematics NDHU

  39. Procedure: my_spline2 Function y_out=my_spline2(x,y,x_in) n=length(x)-1;L=length(x_in); for i=1:n Determine zi+1 by eq(1) for j=1:L A. Findj that satisfies x(i) <= x_in(i) <x(i+1) B. substitute x_in(j) to eq(2) C. Set y_out(j) to the result of step B 數值方法2008, Applied Mathematics NDHU

  40. Cubic spline 數值方法2008, Applied Mathematics NDHU

  41. Criteria of cubic spline • Fitting criteria • First order smoothness criteria • Second order smoothness criteria 數值方法2008, Applied Mathematics NDHU

  42. Fitting criteria 數值方法2008, Applied Mathematics NDHU

  43. Smoothness criteria I • The slopes of fi and fi+1 are identical at point Pi 數值方法2008, Applied Mathematics NDHU

  44. Smoothness criteria II The curvatures of fi and fi+1 are identical at point Pi Pi 數值方法2008, Applied Mathematics NDHU

  45. Exercise 6 due to 10/29 • Problem 3 of Ex 5 數值方法2008, Applied Mathematics NDHU

  46. Problem 2 • Draw a flow chart to illustrate linear spline interpolation • Implement the flow chart by matlab codes • Give examples to test your matlab codes 數值方法2008, Applied Mathematics NDHU

  47. Problem 3 • Draw a flow chart to illustrate quadratic spline interpolation • Implement the flow chart by matlab codes • Give examples to test your matlab codes 數值方法2008, Applied Mathematics NDHU

More Related