Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "數值方法 2008, Applied Mathematics NDHU 1 Spline interpolation."— Presentation transcript:

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

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

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]step function [5] 數值方法 2008, Applied Mathematics NDHU 3

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

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

6 Spline approximation  Matlab Spline 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 6

7 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)

8 數值方法 2008, Applied Mathematics NDHU 8

9 Example II: Two input arguments 數值方法 2008, Applied Mathematics NDHU 9 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 Polynomial output

10 數值方法 2008, Applied Mathematics NDHU 10

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

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

13 數值方法 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')

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

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 15

16 數值方法 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 )

17 數值方法 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.

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

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

20 數值方法 2008, Applied Mathematics NDHU 20 L=length(x_in) n=length(x) for j=1:L for k=1:n if x(k) >= x_in(j) break end EXIT function y_out=my_spline1(x,y,x_in) 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));

21 Procedure: my_spline1 Function y_out=my_spline(x,y,x_in) L=length(x_in); for j=1:N A. Find i 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 21

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

23 Linear spline 數值方法 2008, Applied Mathematics NDHU 23 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) my_spline1.m

24 數值方法 2008, Applied Mathematics NDHU 24

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

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

27 數值方法 2008, Applied Mathematics NDHU 27 Quadratic splines  Quadratic spline interpolation  Determine all f i

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

29 Smoothness criteria  The slopes of f i and f i+1 are identical at point P i 數值方法 2008, Applied Mathematics NDHU 29

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

31 Fitting criteria  P i denotes point (x i y i )  f i passes points P i and P i+1 數值方法 2008, Applied Mathematics NDHU 31

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

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

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

35 數值方法 2008, Applied Mathematics NDHU 35

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

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

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

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 z i+1 by eq(1) for j=1:L A. Find j 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 39

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

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

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

43 Smoothness criteria I  The slopes of f i and f i+1 are identical at point P i 數值方法 2008, Applied Mathematics NDHU 43

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

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

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 46

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 47


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

Similar presentations


Ads by Google