Splain on sile, ühesuguse struktuuriga tükiti polünomiaalne funktsioon, mis liitepunktides rahuldab teatud sileduse tingimusi. Interpolatsiooniprobleemides eelistatakse tihtipeale splain-interpolatsiooni polünomiaalsele interpolatsioonile, kuna see annab sarnaseid tulemusi, isegi kui kasutada madala astme polünoome.[1]

Üksikud sõlmed 1/3 ja 2/3 juures loovad kolm kuuppolünoom-splaini pidevusega C2. Kolmekordne sõlm intervalli mõlemas otsas tagab, et kõver interpoleerib lõpp-punkte

Mõiste "splain" pärineb painduvatest spiraalsetest seadmetest, mida laevaehitajad jajoonestajad kasutavad siledate kujundite saamiseks.[2]

Sissejuhatus muuda

Mõistet "splain" kasutatakse viitamiseks laiale funktsioonide klassile, mis tegeleb andmete interpoleerimise ja/või silumisega. Andmed võivad olla kas ühe- või mitmemõõtmelised. Splainidega lähendamine on tükiti interpoleerimine ühe ja sama astme polünoomiga.[1]

Splain-funktsioonid on olemuselt piiratud mõõtmed, mis on peamine põhjus nende kasulikkuseks arvutustes ja esitustes. Ülejäänud artiklis on keskendutud täielikult ühemõõtmelistele, polünoomsetele splainidele ja kasutatud terminit "splain" selles piiratud tähenduses.

Definitsioon muuda

Lihtsaim splain on tükiti polünomiaalne funktsioon, kus igal polünoomil on üks muutuja. Splain   võtab väärtused vahemikust   ja määrab need   reaalarvude hulka:

 

Kuna   on tükiti määratletud, valime   lõiku vahemikus  :

 
 
 

Kõik need lõigud on seotud polünoomiga  ,

 .

 -ndas lõigus vahemikus   on   määratletud   abil,

 
 
 
 

Antud   punkti   nimetatakse sõlmedeks. Vektorit   nimetatakse splaini sõlme vektoriks. Kui sõlmed on ühtlaselt jaotatud vahemikus   siis splaini nimetatakse ühtlaseks, vastasel juhul nimetatakse splaini ebaühtlaseks.[3]

Kui  -nda polünoomi tükkidel   on iga aste vähemalt  , siis splain on astmega   (või  ).

Kui   kehtib   punkti   naabruses, siis on splain sile (vähemalt)   kohal  . See tähendab, et kohal   jagavad   ja   ühist tuletisväärtust astmest   (funktsiooni väärtusest) kuni astmeni   (teisisõnu, kahe kõrvuti asetseva polünoomi tükki ühendavad kõige rohkem   sileduse kaotust).

Vektorit   kus splainil on siledus   kohal    nimetatakse splaini sileduse vektoriks.[1]

Näited muuda

Oletame, et intervall   on   ja alamintervallid on . Oletame, et polünoomi tükid peavad olema astmega   ja tükid vahemikus   ja   peavad ühinema väärtuse ja esimese tuletisega (  korral) samal ajal kui tükid vahemikus   ja   ühinevad lihtsalt väärtusega (  korral). See määrab splaini   tüübi, mille kohaselt

 
 
 

oleks selle tüübi liige ja ka

 
 
 

oleks selle tüübi liige. (Märkus: kuigi polünoomi tükk   ei ole ruutpolünoom, siis tulemust kutsutakse ikka ruutsplainiks. See näitab, et splaini astmeks on polünoom-osade maksimaalne aste.) Sellist tüüpi splaini pikendatud sõlme vektor oleks  .

Kõige lihtsam splain on astmega  . Seda nimetatakse ka astmeliseks funktsiooniks. Järgmine kõige lihtsam splain on astmega  . Seda kutsutakse ka lineaarsplainiks.[4] Kinnine lineaarsplain (st esimene ja viimane sõlm langevad kokku) on lihtsalt hulknurk.

Tavaline splain on naturaalne  . astme kuupsplain.[5] Sõna "naturaalne" tähendab, et splaini polünoomi teine tuletis on interpoleerimise intervalli lõpp-punktides võrdne nulliga:

 

Algoritm kuupsplainide arvutamiseks muuda

Kuupsplainid on kujul  . Arvestades koordinaatide komplekti  soovime leida hulga   splainiga      

Need peavad rahuldama:

  •  
  •  
  •  
  •  .

Defineerime ühe kuupsplaini   5-ennikuna   kus   ja   vastavad varem näidatud kujule ja   on võrdne parameetriga  

Algoritm kuupsplaini arvutamiseks: Sisend: koordinaatide hulk  , kus   Väljund: splainide hulk, mis koosneb  -ist 5-ennikust

  1. Loo uus massiiv   suurusega   ja iga   korral seadista  
  2. Loo uued massiivid   ja   mõlemad suurusega  .
  3. Loo uus massiiv   suurusega   ja iga   seadista  
  4. Loo uus massiiv  suurusega   ja iga   seadista  .
  5. Loo uued massiivid   ja   kõik suurusega  .
  6. Seadista  
  7. Iga  
    1.  .
    2.   .
    3.  .
  8. Seadista  
  9.   
    1.  
    2.  
    3.  
  10. Loo uus splainide komplekt ja nimeta see valjund_komplekt. Paiguta sinna   splaini  .
  11. Iga  
    1.  
    2.  
    3.  
    4.  
    5.  
  12. Väljund valjund_komplekt

Viited muuda

  1. 1,0 1,1 1,2 Schoenberg, Isaac J. (1946). "Contributions to the Problem of Approximation of Equidistant Data by Analytic Functions: Part A.—On the Problem of Smoothing or Graduation. A First Class of Analytic Approximation Formulae" (PDF). Quarterly of Applied Mathematics. 4 (2): 45–99.
  2. Wegman, Edward J., and Ian W. Wright (1983). "Splines in statistics". Journal of the American Statistical Association. 78 (382): 351–365.{{cite journal}}: CS1 hooldus: mitu nime: autorite loend (link)
  3. Marek Kolk (2012). "Splain-Kollokatsioonimeetod" (PDF). Tartu Ülikool.
  4. Tõnu Tõnso. "Splainid" (PDF). Tallinna Ülikool.
  5. Helle Trossmann (2004). "Ruut- ja kuupsplainidega interpoleerimine" (PDF). Tartu Ülikool. Originaali (PDF) arhiivikoopia seisuga 18. aprill 2018.

Välislingid muuda

Teooria

Exceli funktsioon

Võrguteenuste pakkujad

Arvutikood