Spline

En spline er i matematikk en funksjon definert stykkevis av polynom.
Innen data, databasert design og datagrafikk refererer spline til en delvis parametrisk polynomfunksjon. Innen disse feltene er spline en populær måte å representere kurver på, på grunn av dens enkle konstruksjon, som likevel gir mulighet å gjennomføre komplekse en design ved hjelp av kurvetilpassing.
Terminologien spline kommer fra utstyr brukt av skipsbyggere og tegnere for å tegne glatte og jevne former. Utstyret var et langt stivt bånd festet på forskjellige punkter for å gi en ønsket form.
Typer spline:

B-spline
Bezier-kurve
Bezier-spline
Hermite-spline
Kubisk spline
Naturlig spline
Periodisk spline


== Definisjon ==


=== Spline ===
Spline er en funksjon:

  
    
      
        S
        (
        t
        )
        :
        [
        a
        ,
        b
        ]
        →
        
          R
        
      
    
    {\displaystyle S(t):[a,b]\rightarrow \mathbb {R} }
  består stykkevis av polynomer:

  
    
      
        
          P
          
            i
          
        
        (
        t
        )
        :
        [
        
          t
          
            i
          
        
        ,
        
          t
          
            i
            +
            1
          
        
        )
        →
        
          R
        
      
    
    {\displaystyle P_{i}(t):[t_{i},t_{i+1})\rightarrow \mathbb {R} }
  hvor

  
    
      
        a
        =
        
          t
          
            0
          
        
        <
        
          t
          
            1
          
        
        <
        .
        .
        .
        <
        
          t
          
            k
            −
            2
          
        
        <
        
          t
          
            k
            −
            1
          
        
        =
        b
        

        
      
    
    {\displaystyle a=t_{0}<t_{1}<...<t_{k-2}<t_{k-1}=b\mathbb {} }
  og vi får splinefunksjonen

  
    
      
        S
        (
        t
        )
        =
        
          
            {
            
              
                
                  
                    P
                    
                      0
                    
                  
                  (
                  t
                  )
                  
                
                
                  ,
                  
                  
                    t
                    
                      0
                    
                  
                  ≤
                  t
                  <
                  
                    t
                    
                      1
                    
                  
                
              
              
                
                  
                    P
                    
                      1
                    
                  
                  (
                  t
                  )
                  
                
                
                  ,
                  
                  
                    t
                    
                      1
                    
                  
                  ≤
                  t
                  <
                  
                    t
                    
                      2
                    
                  
                
              
              
                
                  
                  .
                  .
                  .
                
                
                  ,
                  
                  .
                  .
                  .
                
              
              
                
                  
                    P
                    
                      k
                      −
                      2
                    
                  
                  (
                  t
                  )
                  
                
                
                  ,
                  
                  
                    t
                    
                      k
                      −
                      2
                    
                  
                  ≤
                  t
                  <
                  
                    t
                    
                      k
                      −
                      1
                    
                  
                
              
            
            
          
        
      
    
    {\displaystyle S(t)={\begin{cases}P_{0}(t)\quad &,\quad t_{0}\leq t<t_{1}\\P_{1}(t)\quad &,\quad t_{1}\leq t<t_{2}\\\quad ...&,\quad ...\\P_{k-2}(t)\quad &,\quad t_{k-2}\leq t<t_{k-1}\end{cases}}}
  


=== Skjøter ===
Alle de 
  
    
      
        k
      
    
    {\displaystyle k}
   skjøtene 
  
    
      
        
          t
          
            i
          
        
      
    
    {\displaystyle t_{i}}
   (også kalt knutene) samles i en skjøtevektor

  
    
      
        
          
            
              t
              →
            
          
        
        =
        (
        
          t
          
            0
          
        
        ,
        
          t
          
            1
          
        
        ,
        .
        .
        .
        ,
        
          t
          
            k
            −
            1
          
        
        )
      
    
    {\displaystyle {\vec {t}}=(t_{0},t_{1},...,t_{k-1})}
  Hvis avstanden mellom skjøtene er spredd jevnt i intervallet 
  
    
      
        [
        a
        ,
        b
        ]
      
    
    {\displaystyle [a,b]}
  , sier vi at splinen er uniform, ellers ikke-uniform.


=== Splinens grad ===
Hvis alle polynomene 
  
    
      
        
          P
          
            i
          
        
      
    
    {\displaystyle P_{i}}
   har grad n, sier vi at splinen er av grad 
  
    
      
        ≤
        n
      
    
    {\displaystyle \leq n}
  


=== Glatthet ===
  
    
      
        
          C
          
            
              r
              
                i
              
            
          
        
      
    
    {\displaystyle C^{r_{i}}}
   og glatthetsvektor
Hvis 
  
    
      
        S
        (
        t
        )
        ∈
        
          C
          
            
              r
              
                i
              
            
          
        
      
    
    {\displaystyle S(t)\in C^{r_{i}}}
   befinner seg i nabolaget til 
  
    
      
        
          t
          
            i
          
        
      
    
    {\displaystyle t_{i}}
  , sies splinen å være av glatthet (minst) 
  
    
      
        
          C
          
            
              r
              
                i
              
            
          
        
      
    
    {\displaystyle C^{r_{i}}}
   ved 
  
    
      
        
          t
          
            i
          
        
      
    
    {\displaystyle t_{i}}
  . Dette betyr at de to delene 
  
    
      
        {
        
          P
          
            i
            −
            1
          
        
        ,
        
          P
          
            1
          
        
        }
      
    
    {\displaystyle \{P_{i-1},P_{1}\}}
   deler felles deriverte fra orden null (funksjonsverdi) og opp til orden 
  
    
      
        
          r
          
            i
          
        
      
    
    {\displaystyle r_{i}}
  .
Vektoren

  
    
      
        
          
            
              r
              →
            
          
        
        =
        (
        
          r
          
            1
          
        
        ,
        
          r
          
            2
          
        
        ,
        .
        .
        .
        ,
        
          r
          
            k
            −
            2
          
        
        )
      
    
    {\displaystyle {\vec {r}}=(r_{1},r_{2},...,r_{k-2})}
  er slik at splinen har glatthet 
  
    
      
        
          C
          
            
              r
              
                i
              
            
          
        
      
    
    {\displaystyle C^{r_{i}}}
   ved 
  
    
      
        
          t
          
            i
          
        
      
    
    {\displaystyle t_{i}}
   for 
  
    
      
        0
        <
        i
        <
        k
        −
        1
      
    
    {\displaystyle 0<i<k-1}
  , og kalles splinens glatthetsvektor.


== Eksempler ==
Anta at intervallet [a,b] er [0,3], og delintervallene
er [0,1), [1,2), og [2,3]. Anta at de stykkvise polynomene er av
grad 2, og stykkene [0,1) og [1,2) må møtes i verdi og 1.derivert. (her må
de altså møtes ved t=1). Stykkene [1,2) og [2,3) møtes i verdi t=2 .
Dette definere en type spline 
  
    
      
        S
        (
        t
        )
      
    
    {\displaystyle S(t)}
   hvor

  
    
      
        S
        (
        t
        )
        =
        
          
            {
            
              
                
                  
                    P
                    
                      0
                    
                  
                  (
                  t
                  )
                  =
                  −
                  1
                  +
                  4
                  t
                  −
                  
                    t
                    
                      2
                    
                  
                
                
                  
                    
                       , 
                    
                  
                  0
                  ≤
                  t
                  <
                  1
                
              
              
                
                  
                    P
                    
                      1
                    
                  
                  (
                  t
                  )
                  =
                  2
                  t
                
                
                  
                    
                       , 
                    
                  
                  1
                  ≤
                  t
                  <
                  2
                
              
              
                
                  
                    P
                    
                      2
                    
                  
                  (
                  t
                  )
                  =
                  2
                  −
                  t
                  +
                  
                    t
                    
                      2
                    
                  
                
                
                  
                    
                       , 
                    
                  
                  2
                  ≤
                  t
                  ≤
                  3
                
              
            
            
          
        
      
    
    {\displaystyle S(t)={\begin{cases}P_{0}(t)=-1+4t-t^{2}&{\mbox{ , }}0\leq t<1\\P_{1}(t)=2t&{\mbox{ , }}1\leq t<2\\P_{2}(t)=2-t+t^{2}&{\mbox{ , }}2\leq t\leq 3\end{cases}}}
  vil være medlem av den typen, og

  
    
      
        S
        (
        t
        )
        =
        
          
            {
            
              
                
                  
                    P
                    
                      0
                    
                  
                  (
                  t
                  )
                  =
                  −
                  2
                  −
                  2
                  
                    t
                    
                      2
                    
                  
                
                
                  
                    
                       , 
                    
                  
                  0
                  ≤
                  t
                  <
                  1
                
              
              
                
                  
                    P
                    
                      1
                    
                  
                  (
                  t
                  )
                  =
                  1
                  −
                  6
                  t
                  +
                  
                    t
                    
                      2
                    
                  
                
                
                  
                    
                       , 
                    
                  
                  1
                  ≤
                  t
                  <
                  2
                
              
              
                
                  
                    P
                    
                      2
                    
                  
                  (
                  t
                  )
                  =
                  −
                  1
                  +
                  t
                  −
                  2
                  
                    t
                    
                      2
                    
                  
                
                
                  
                    
                       , 
                    
                  
                  2
                  ≤
                  t
                  ≤
                  3
                
              
            
            
          
        
      
    
    {\displaystyle S(t)={\begin{cases}P_{0}(t)=-2-2t^{2}&{\mbox{ , }}0\leq t<1\\P_{1}(t)=1-6t+t^{2}&{\mbox{ , }}1\leq t<2\\P_{2}(t)=-1+t-2t^{2}&{\mbox{ , }}2\leq t\leq 3\end{cases}}}
  vil også være medlem av typen.
(Polynomet 
  
    
      
        2
        t
      
    
    {\displaystyle 2t}
   er fortsatt av andre grad fordi det kan skrives 
  
    
      
        0
        +
        2
        t
        +
        0
        
          t
          
            2
          
        
      
    
    {\displaystyle 0+2t+0t^{2}}
  )
Skjøtvektoren til denne typen av spline er her

  
    
      
        
          
            
              t
              →
            
          
        
        =
        (
        0
        ,
        1
        ,
        2
        ,
        3
        )
      
    
    {\displaystyle {\vec {t}}=(0,1,2,3)}
  Den enkleste splinen har grad 0, og den er en stegfunksjon.
Den nest enkleste splinen har grad 1, og er også kalt en lineær spline. 
En vanlig brukt spline er den naturlige kubiske spline som har grad 3 og kontinuitet 

  
    
      
        
          C
          
            2
          
        
      
    
    {\displaystyle C^{2}}
  .
Naturlig betyr i denne sammenhengen at splinen velges slik at den andrederiverte av splinepolynomene er null på endepunktene av interpoleringens intervall

  
    
      
        
          S
          ″
        
        (
        a
        )
        
        =
        
          S
          ″
        
        (
        b
        )
        =
        0
      
    
    {\displaystyle S''(a)\,=S''(b)=0}
  .Dette tvinger splinen til å være en rett linje utenfor intervallet og at kurven alle steder er glatt.


== Eksterne lenker ==
40 år med algoritmen du ikke vet om, men som alle bruker