Konstruktion af Splines Svend Daugaard Pedersen 29 maj 2011 Indhold 1 Hvad er en spline? 1 2 Matematisk behandling af en spline 1 3 Den naturlige spline 2 4 Andre splines 4 5 Tilpasset spline 4 6 Afslutning 6
1 HVAD ER EN SPLINE? 1 1 Hvad er en spline? En elastisk bjælke fasholdt frit drejeligt i et sæt af punkter P 0,P 1,,P n vil forme en bestemt kurve, der kaldes en spline (se figuren nedenfor) P 0 P 1 P 2 P 3 Ifølge elasticitetsteorien vil kurven mellem hvert par af fastholdelsespunkter være graf for et tredjegradspolynomium (forudsat at bøjningen af bjælken ikke er alt for voldsom en forudsætning vi dog vil se bort fra i det følgende) En spline er altså graf for en stykkevis polynomiel funktion bestående af tredjegradspolynomier Det er klart, at en spline må være kontinuert og differentiabel, og da bjælken fastholdes frit drejeligt, kan der ikke overføres ydre momenter i fastholdelsespunkterne Derfor må to tredjegradspolynomier på hver side af et punkt have samme anden afledede Funktionen er altså to gange differentiabel 2 Matematisk behandling af en spline Givet et sæt af n + 1 punkter (x 0,y 0 ),(x 1,y 1 ),,(x n,y n ) Gennem disse punkter ønsker vi at bestemme en to gange differentiabel, stykkevis polynomiel funktion bestående af n tredjegradspolynomier p i (x) = a 3,i (x x i ) 3 + a 2,i (x x i ) 2 + a 1,i (x x i ) + a 0,i, x [x i ;x i+1 ] hvor i = 0,1,,n 1 Funktionen skal gå gennem de n + 1 punkter og være to gange differentiabel Det giver 4n 2 ligninger til bestemmelse af de 4n koefficienter De sidste to ligninger fås ved at stille supplerende krav til funktionen i endepunkterne x 0 og x n
3 DEN NATURLIGE SPLINE 2 De 4n ligninger bliver nu: p 0 (x 0 ) = y 0 supplerende krav i x 0 p 0 (x 1 ) = y 1 p 0(x 1 ) = p 1(x 1 ) p 1 (x 1 ) = y 1 0(x 1 ) = 1(x 1 ) p 1 (x 2 ) = y 2 p 1(x 2 ) = p 2(x 2 ) n 2(x ) = p (x n ) = y n (x ) supplerende krav i x n De 4n ligninger kan skrives på matrixform: C A = D Y, hvor C er en 4n 4n-matrix, A er polynomiumskofficienterne skrevet som en søjlematrix med 4n elementer, Y er en søjlematrix bestående af y-værdierne y 0,y 1,,y n samt to tal bestemt af de supplerende krav i endepunkterne Endelig er D en 4n (n + 3)-matrix, som omformer Y til de 4n højresider i ligningssystemet (se afsnit 3) Koefficienterne til tredjegradspolynomierne, kan nu bestemmes ved udregningen A = C 1 D Y 3 Den naturlige spline Hvis bjælken kan dreje frit i endepunkterne, fås det, der kaldes den naturlige spline Fri drejelighed i endepunkterne betyder, at der ikke er ydre momenter Derfor må de anden afledede i endepunkterne være nul For den naturlige spline bliver de supplerende krav:
3 DEN NATURLIGE SPLINE 3 0(x 0 ) = 0 (x n ) = 0 Vi kan nu opskrive ligningssystemets matricer (h i = x i+1 x i ): C = 1 0 0 0 0 0 2 0 1 h 0 h 2 0 h 3 0 0 0 0 0 0 1 2h 0 3h 2 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 2 6h 0 0 0 2 0 1 h 1 h 2 1 h 3 1 0 0 0 0 0 1 2h 1 3h 2 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 2 6h 1 0 0 2 0 1 h h 2 h 3 0 0 0 0 0 1 2h 3h 2 0 1 0 0 0 0 0 0 1 0 0 0 0 0 2 6h 0 0 2 0 1 h h 2 h 3 0 0 2 6h, A = a 0,0 a 1,0 a 2,0 a 3,0 a 0,1 a 1,1 a 2,1 a 3,1 a 0, a 1, a 2, a 3, 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0, D = 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 og Y = y 0 y 1 y 2 y y n 0 0
4 ANDRE SPLINES 4 4 Andre splines Andre supplerende krav til splinen i endepunkterne giver en ændring af anden og sidste række i C og andre værdier for de sidste elementer i Y Hvis vi feks kræver bestemte hældninger i endepunkterne, dvs vi kender de første afledede, bliver anden og sidste række ændret til ( ) ( 0 1 0 0 0 og 0 0 1 2h 3h 2 ) og de to sidste tal i Y bliver hældningskoefficienterne 5 Tilpasset spline Der er givet et sæt af måledata (α 0,β 0 ),(α 1,β 1 ),,(α N 1,β N 1 ) Vil ønsker at bestemme en glat kurve mellem disse punkter (se figuren nedenfor) Vi vælger at lade den søgte kurve være en spline gennem punkterne (x 0,y 0 ),(x 1,y 1 ),,(x n,y n ), n < N hvor x erne er valgt ækvidistant placeret mellem α 0 og α N 1 og y-erne er tilpasset, så summen af kvadratafstandene mellem målepunkterne og splinen er mindst mulig (mindste kvadraters metode)
5 TILPASSET SPLINE 5 Matricerne, der forbinder koefficienterne A og y-værdierne Y, er de samme som i afsnit 3 på side 2 Dog er de sidste to værdier i Y ikke nødvendigvis nul Koefficienterne kan derfor som i afsnit 2 på side 1 skrives: A = C 1 D Y C 1 D, som er en 4n (n + 3)-matrix, deles op i n matricer B j, hvor B j består af j te til ( j + 3) te række i C 1 D (formelt set danner vi et sæt af projektionsmatricer L j, således at B j = L j C 1 D) Herved bliver B j Y koefficienterne til det j te splinepolynomium P j (x) Hvis vi indfører X j (x) = (1,(x x j ),(x x j ) 2,(x x j ) 3 ), kan vi nu skrive: P j (x) = X j (x) (B j Y ) = (X j (x) B j ) Y For hvert delinterval I j = [x j ;x j+1 ] bestemmer vi summen af kvadraterne på afvigelsen til måleværdierne β k : S j = (P j (α k ) β k ) 2 og vi danner summen S af alle disse S = (P j (α k ) β k ) 2 = ((X j (α k ) B j ) Y β k ) 2 Vi bestemmer nu stationært punkt for S ved at sætte de partielle afledede af S til nul: S = y i 2 (X j (α k ) B j ) i ((X j (α k ) B j ) Y β k ) = 0 hvor (X j (α k ) B j ) i er det i te element i rækkematricen X j (α k ) B j Ligningen kan omskrives til ( (X j (α k ) B j ) i X j (α k ) B j ) Y = (X j (α k ) B j ) i β k
6 AFSLUTNING 6 Der er én ligning for hver værdi af i, dvs vi har et ligningssystem Dette ligningssystem kan skrives på matrix-form: ( ) hvor (X j (α k ) B j ) T X j (α k ) B j (X j (α k ) B j ) T er den transponerede af rækkematricen (X j (α k ) B j ) Y = β k (X j (α k ) B j ) T Løsningen til ligningssystemet er: ( ) 1 Y = (X j (α k ) B j ) T X j (α k ) B j β k (X j (α k ) B j ) T En sidste omskrivning opnår vi ved at udnytte, at (X j (α k ) B j ) T = B T j X j (α k ) T Det giver Y = ( ( B T j X j (α k ) T X j (α k ) ) ) 1 B j B T j β k X j (α k ) T Omskrivningen giver en betragtelig regnemæssig gevinst 6 Afslutning Dette skrift er en "håndværksmæssig" beskrivelse af, hvorledes man kan konstruere splines i forskellige situationer Der er ikke ført noget bevis for, at de angivne metoder fungerer Det er specielt matrixinverteringerne, der kan skabe problemer Der findes beviser for eksistens af de splines, der er beskrevet i afsnit 3 på side 2 og afsnit 4 på side 4 (se feks http://mathfullertonedu/mathews/n2003/splines/cubicsplinesproofpdf) Jeg har ikke fundet bevis for, at metoden beskrevet i afsnit 5 på side 4 altid fungerer