Interpolation with minimized curvature

Interpolation with minimized curvature

Compilers M.it. Applie. Vol. 22, No. I, pp. 37-43, 1991 Printed in Great Britain. All rightl reserved INTERPOLATION 0097-4943/91 $3.00 + 0.00 Copyri...

342KB Sizes 0 Downloads 62 Views

Compilers M.it. Applie. Vol. 22, No. I, pp. 37-43, 1991 Printed in Great Britain. All rightl reserved

INTERPOLATION

0097-4943/91 $3.00 + 0.00 Copyright(~ 1991 Pca'gamon Prma pie

WITH MINIMIZED CURVATURE

A. C. R. N E W B E R Y Department of Computer Science, University of Kentucky, Lexington, KY 40506

TYLENE S. G A R R E T T Department of Computer Scicmce, "l~ransylvania University, Lexington, KY 40508

(Received Ociober 1990) A b s t r a c t - - T h e cubic ipline represents an attempt to produce an interpolsnt with minimal rootmean-square curvature. The attempt ;- generally succe~ful when slopes arc nearly constant, but when this condition is not met, the cubic spline behavior may be quite poor. We present a remedy for this. Sometimes one is willing to sacrifice smoothness for the ability to specify whe~ oae is willing for the interpolant to curve and where one desires the interpolant to be u linear a~ possible. We offer a tensioned version of our algorithm which allows varying degrees of t~tslon wltlfin an internodal interval, resulting in the ability to produce a curve with the desired characteristics.

1. I N T R O D U C T I O N A smooth interpolant is usually taken [1] as being one which (approximately) minimizes the arc

integral of squared curvature R-

Ii[

(i + y,2)5/2

]

dz.

(1)

Since this is a nonlinear problem, a popular alternative is to ignore variations in the d e n o m i n a t o r Z'.t

of (1), and to define the roughness

as f y'2dz. This gives rise to the natural cubic spline [2]. zi

O n l y in the event t h a t variations in y' are small can we expect the cubic spline to p e r f o r m wcll in terms of minimizing the roughness as defined in (1). If y' varies in [0, 1], then (1 + y,2)s/~ varies in [1,5.66]. This m a y be more variation than one can justifiably ignore. Salkauskas [3] addressed this problem by taking y' to be locally c o n s t a n t in each subinterval [zt, zk+ l] and using the secant slope to estimate it. lie split the integral (1) into n - 1 integrations over subintervals and derived a cubic chain algorithm on this basis. This turned out to be a C l interpolation. T h e present a u t h o r s [4] examined the possibility of producing C ~ quintic chains based on criteria other than (1) while preserving the attractive diagonal-dominant feature of the cubic spline algorithms. O u r present p u r p o s e is to p r o d u c e a C 2 quintic chain algorithm which does a best-possible j o b of minimizing the roughness as defined by (1). 2. T H E I N T E R P O L A T I N G

FUNCTION

Given n points zs,f~, i = 1 to n, we need to calculate the derivatives ~ and ~ ' at each point in order t h a t the resulting qumtic chain (which is a u t o m a t i c a l l y guaranteed to be in C ~) shall minimize the roughness as defined by (1). Letting h denote the length of the k th subinterval, and taking a false origin at the center of each such subinterval, we shall define the k th quintic in terms of six quintic basis functions pk(z), qk(z),,'~,(k),~,(z), ~l.(z), ?L.(z). T h e basis functions m u s t be chosen so t h a t in the k th interval

p~(-h/2)

= 1,

<#~,(-h/2) = l, ,'1

rl.(-h/2

) = 1,

K(-h/2)

= p~'(-h/2)

= p~(h/2)

= V~.(h/~) = p ~ ( h / 2 )

=

o,

q ~ C - h / 2 ) = q ' ; ( - h / ~ ) = qkCh/2) = q'k(h/2) = ~ ' ( h / ~ ) = O, ,'k(-h/2)

= " k' C - h / 2 )

(2)

= ,',~(h/2) = , ' ~ ( h / 2 ) = ,'k(h/~)" = O.

"rype~et by A.A4$-TF_,X 37

38

A . C . R . N£WaERY, T.S. GAAaagTT

The other three basis functions ~ , ~'~, Fk are defined as above except that - h replaces h. In relation to the false origin, the quintic in the U h interval is given by l I ~ II Q~(x) = fkpk(x) + fk+lpk(zr) -t- Ykqk(x) + yt~+lq~(x) + yaI I r ~l ~ ) + y~+lr(x).

Letting Wk(z) denote (1 +

yO)-s/~ in R =

(3)

the k th interval, the roughness in (1) is now given by

~ f z Zk'l"I Wk(z)Q'~'2(x)dx. k=l

(4)

x~

3. T H E A L G O R I T H M Our first strategy was one which we found to work well and efficiently on problems where the polygon slopes never exceeded 1. Although it sometimes failed on harder problems (where polygon slopes were not all < 1), we think it is worth stating:

Lobatto Method. All the integrals in (4) were approximated by the six-point Lobatto formula. If we temporarily ignore the dependence of Wk(x) on the unknowns Y'k,Y~' etc., we find that all partial derivatives OR /Oy~,OR/Oy~ ' " are then linear in the unknowns. Setting the partials equal to zero, we solve the linear system to calculate the unknowns. The system is block tridiagonal and symmetric with 2 x 2 blocks. It can be solved by a block version of the usual algorithm that is used for cubic splines. It is an exactly determined system without the two boundary conditions associated with cubic splines. Initially we do not know Wk(x), and we use the secant approximations like Salkauskas [3]. Ilowever, after one iteration we have estimates for y~,, y~' and hence a (generally) better estimate for Wk(x). On problems that we call intermediate, i.e., with secant slope never exceeding 1, we have always found that two iterations were enough for practical purposes, and they usually outperformed the natural cubic spline. Some results are given in Table 1.

Gradient Method. On harder problems we occasionally encountered some convergence failures. Initially we thought this might be due to inaccurate quadrature, but the problem remained, even when we used a very elaborate and reputable adaptive routine. We conclude that tile successivesubstitutions procedure for W(z) may fail if there is a high degree of variation in W(z), as may be the case if steep slopes are encountered. In these cases one can compute the gradient of R with respect to the 2n variables {y'~,y'~'}, and one can proceed along tile negative gradients until R is minimized. We did this, using tile IMSL routine QDAGS [5] with absolute tolerance of 0.01 for computing gradients. Our gradient algorithm was quite primitive, with little attempt at fine tuning. We were not trying to produce exportable software; we merely wanted to know how much the R value, as given by the natural spline would differ from the miuimized R value, and we wanted to know what effect the difference would have on the visual properties of tile curve. It needs to bc noted that our minimized R is minimized strictly in the domain of C ~ quintics. We have no knowledge of how other basis functions might behave. The RMS curvature values that we print in Table 1 were calculated by QDAGS with absolute tolerance of 0.001. 4. T E S T S AND R E S U L T S We studied four data sets of intermediate type, all with {x, } unit spaced: ( a ) (Spike) fl0 = 1; fi = 0 for i = 1,19. i ¢ 10. (b) (Ramp) f, = 0, i = 1.10; fi = 1 for i = 11,20. (e) (Sawtooth) f, = 0, 1,0, 1,0, 1,... for i = 1,20. (d) (2 Down - 2 Up) f, = 0,0, 1, 1,0,0, 1, 1 . . . . i = 1,20.

Interpolation with minimized curvature

39

In columns 1 through 4 of Table I we tabulate:

(i) R M S (ii)R M S

value aRer three gradient-method improvements. value after convergence to five significant figures using the gradient-method. (The iteration count went as high as 228 but we are not pursuing efficiency at this stage. Note, however, that most of the improvement came during the first three cycles.) (iii)R M S value after two equation solvings via Lobatto. (iv) R M S value for the cubic spline. Table I. Comparison of RMS Curvatua-e on Data Sets a--d. RMS CURVATURE DATA SET

a(Spike) b(~p)

c(Sawtooth) d(2 Down - 2 Up)

Gradient (3 imp.)

Gradient (convg)

Lol~tto (2 iter.)

Spline

0.65174 0.35232

0.62485

0.62944

0.66736

0.35056

0.35114

0.37092

2.36084

2.20335

2.$4821

2.40276

0.890721

0.89028

0.89215

0.92933

Cubic

The next two data sets tested feature unequally spaced {z, } and substantial variation in secant slopes. D a t a set (e) was chosen from Spgth [6], (p. 81) and features mean derivatives reaching a magnitude of 9.2. D a t a set (f) was chosen from Fritsch and Carlson [7]. Its largest mean derivative k~ 25. (e) {(0.5), (0.3,2.5), (1.5,1.5), (2.3,1.25), (2.5,2.5), (3,3.5), (5,3.75), (5.5,3.3), (5.75,1), (7,1), (8,0.75), (9,3.5), (10,3.75)} (f) {(0,I0),(8,I0),(9,10.5),(I 1,15), (12,50), (14,60), (15,85)} Table 2 displays the results from data sets (e) and (f). Column 1 shows RMS curvature using the gradient method (after 3 improvements); column 2 reports the gradient method after convergence; column 3 gives the results from the natural cubic spline. Table 2. Comparison of RMS Curvature on Data Sets e ~nd f. RMS CURVATURE DATA SET

Gradient (3 imp.)

Gradient (convg)

Cubic Spline

2.07729 0.18049

1.30218 0.15629

3.16674 2.30029

The gradient method produced curves which differed substantially from the natural cubic spline both visually and m terms of RMS curvature. While Table 2 reflects this, Figures Ia, lb, 2a, and 2b clearly show the visual improvement made by the C 2 quintic (gradient) method over the natural cubic splme. Our third test was imitated from Gregory [8]. The points in d a t a set (g) were on a unit semicircle with arguments at intervals of fifteen degrees. Our picture for the cubic spline is different from Gregory's because we chose the natural spline rather than one with terminal slopes of-50,+50. Figure 3a shows the results from the cubic spline method and Figure 3b shows the results from the C 2 gradient m e t h o d In addition to the RMS curvature we determined the maximum radial distance D from the curve to the unit semicircle. The maximum was determined on a mesh of 50 equispaced points in each interval. Again, the gradient method outperformed the cubic spline method, producing a smoother curve.

40

A.C.R. N£WBERY, T.S. G A R R r T T

s

!

4

F

3

i i

2

0

0

-I

!

i

&

i

2

4

6

e

lO

Figure la. Data Set (e) Using Natural Cubic Spline.

e

!

~

!

!

|

I

I

I

4

6

$

|

|

|

|

~

80

70

70

60

60

/

50 40

40

30

30

20

20

10'

10, I

l

i

I

I

l

l

2

4

6

8

10

12

14

Figure 2a. Data Set (f) Using Natural Cubic Spli.e.

|

!

!

!

J

00

2

0.6 I 0.4 I

0.2

O.2

1

1

1

4

6

8

10

12

14

Figm'e 2b. Data Set (f) Using Quintic/Gradient.

0.4

1

!

!

80

0.6

10

Figure lb. Data Set (e) Using Quintic/Gradient.

!

SlO

i

2

O,

0 -0.2 -0.4

-0.4

-0.6

-0.6

-0.8

-0.8

-1 -1.2

-1.2

-1.4

-1.4 l

A

A

|

A

A

l

~8

-1'6-1 *-0.g-0.~-0.4-0.2 0 0.2 0.4 O.B 0

Figure 3a. Data Set (g) Using Natural Cubic Splme. RMS=2.$4316; D=0.0268.

-16 , , l , "-1-0.&-.0.6-.0`4--0.:

A A 0 3 0,4 0 1

01

Figu,~:3b. D a b Set (g) Using Quintic/Gr~4ient. RMS=1.37082, D=0.00¢5

Interpolation with minimiz4~d oarvature

41

5. T E N S I O N Independently of this, the user may wish to impose certain side-conditions, so that we are looking at a constrained nonlinear optimization, rather than a p u r e o n e . One such situation o c c u r s in the definition o f a ship's hull. If one follows the waterline from the middle of the ship towards the bow, one encounters many points in an exact straight line. Then on approaching the bow, there is a sudden change from z e r o t o nonzero curvature. The spline reacts to this by bowing outward just before the turn, just as a truck driver will sweep to the left before making a right turn. This bowing is perfectly consistent with the objective of minimizing the meansquare curvature, but will not result in a good hull design. The user will wish to constrain the optimization in such a way that the bowing is flattened out, even if a price is paid in terms of increased curvature. This problem is commonly addressed by the use of tenswncd splines [9]. The use of quadrature in connection with C 2 quintic chains permits us to incorporate the concept of tension in a very simple and flexible manner. The ultimate tensioned interpolant is the polygon, which generally has infinite curvature at the data points and zero curvature elsewhere. We can model this by introducing penalty functions G~(z) _> 0 into (4) obtaining

n-1 /$1,4 t

=E k=l

Ck(z) Wt(z) Q;'2(z) dx.

(5)

,.,r,.

To create tension, one will pick Gk(x) so that it is relatively small at tile data points and relatively large in between. This indicates that we ate fairly tolerant of cornering (i.e.,curvature) near the data points, but we impose a penalty on cornering elsewhere. Our experiments with the penalty functions Gk (z) }lave been limited to three-point polygons where we specify G at each endpoint and at one other user-specified point in the interval. This permits us to apply differing penalties to the left and right part of a subinterval. This gives us more flexibility than the methods in [8,9], which impose a uniform tension throughout each individual subinterval. Additional flexibility could be programmed, but we doubt the need for it. As an illustration of using the penalty function, we reran the spike problem of data set (a), trying to suppress all ripples in subintervals not contiguous to the spike. The data set consisted of nineteen points on a straight line with just the middle point offset. Without applying tension, bowing naturally occurs in subinterval [8,9] (just to the left of the spike) and in subinterval [l 1,12] (just to the right of the spike.) Figure 4a shows the middle four subintervals of tile spil'e problem resulting from using the cubic spline method. Figure 4b shows tilesame problem when using the quintic/gradient method without applying any tension. Wishing to have no ripple in interval [8,9] and no ripple in interval [11,12], we set a high penalty, G = 20 (uniformly) in these intervals. In interval [9,10] we set G = 4, 0, 0 at the left, middle and right points, respectively. This means that for half a unit to tile left of tile spike there was no penalty for curving whatever. After that the penalty rose on a fairly steep ramp as one moved away from that abscissa. Similarly, on the right side of the spike, in interval [10,11] we set G - 0, 0, 4, mirroring tile penalty function to the left of the spike. Figure 4c shows we were very successful in getting what we wanted. The curve is straight (no cornering) until about the half-way point in the intervals contiguous to the spike. It does all of its cornering in this area close to the spike; the bowing problem has been eliminated. 6. CONCLUSION

W e have demonstrated that we can produce C 2 interpolants which mimmize the mean-square curvature among piecewise polynomials of degree up to five. Ill particular, we get less curvature than the natural cubic spline, and this reduction in curvature may produce a strong visual effect, with less bulging and overshooting. Our version of the tensioned spline offers greatly improved versatility insofar as we can apply varying degrees of tension within an internodal interval, rather than being restricted to a stepwise tension which can only vary when one changes intervals. Furthermore, our tension system is very user #friendly. O n the basis of very simple geometric intuition one can predict what changes in our teasion parameters will produce the desired effects on the quality of the curve.

42

A.C.R. N z w n n v , T.S. Gxm~-rr

2

.

!

|

t

!

.

!

w

1~

l.a

1

1

O~

0~

!

!

w

|

!

!

0

-0~ 9 •~

' 10

10.6

1'1

1 1~•

Figure 4a. "Spike" U,6ng the Cubic Spline.

12

-1

8

~

t

&

I

t.l$

lO

t

10.8,

t

11

I

11..6

Figure 4b. "Spike" Using the Untermioned Quintic/Gradlent.

2

1.6 1

0.5 0'

:

i

-0.S -I

S

Figure 4c. "Spike" Using the Tensioned Quintic/Gradient.

A n obvious demerit of the gradient method is its very high set-up cost. W e do not doubt that the set-up cost can be substantially reduced by means of improved optimization techniques, but even with all conceivable improvements, our set-up is likely to be a hundred times as expensive as the cubic spline. Offsetting this is the fact that there m a y be m a n y millions of evaluations for each set-up. O n the basis of evaluation costs our disadvantage is no worse than a factor of 5/3. With quality differences as evident as they are in the Figures I--4, we believe that our higher costs will prove to be widely acceptable. REFERENCES I. D.C. H~ndscomb, Metk0de o/Niraeric61 Appro:imatlo~, P e ~ a m o n Pray, New York, (1966). 2. T.N.E. Greville (editor), Theor/ lind Application, o/SpliT, e F ~ c 6 o l s , Acsdemic Pre~, New York, (1969). 3. K. Sa/Jmusku, C l spllnes for mterpo~t~on of rapidly varying data, Rock7 Mo1~t.i. Josr~cal o/ MirA., 239-250 (1974). 4. T.S. Garrett and A.C.R. Newbery, C ~ interpolation metl~ods, Conlremsss N~mersntilm OS, 147-154 (1969). 5. IMSL, Inc., IMSL MATII/LIBRARY, wet, ion 10.0. 6. H. Spith, Slwiilt¢ Altoritkm, Jor CIrvet ,tltd $vr/ace*, translated by W.D. Ho~kinJ and H.W. Sager, Utilitata Mathematics PubLilhinE, Inc., Winnipeg, (1974). 7. F.N. F~iww.h and R.F. Carbon, Monotone piecewise cubic interpolation, SIAM Jo1~al N~meric,I Anslysit 17, 23&-24G (1980).

Interpolation with minimized curvature

43

8. J.A. Gregory, Shape preserving epiine interpolation, NASA/UliuerJitl Sovttern Mieeim,ippi Con]erence o~ 'Comp*Jtatiom*l Geomef~ amd Contpufer Ai~ed De#iln' (1985). 9. D. Schweikert, An interpolation curve using • splJne in tension, Jouwt41 o~ Mathematic* *rid Ph~eicm 45, 312-317 (1966).