Splain: erinevus redaktsioonide vahel

Allikas: testwiki
Mine navigeerimisribale Mine otsikasti
imported>InternetArchiveBot
Lisatud 1 allikale arhiivilink ja märgitud 0 mittetöötavaks.) #IABot (v2.0.9.5
 
(Erinevus puudub)

Viimane redaktsioon: 13. november 2023, kell 17:24

Ü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

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]

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

Sissejuhatus

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

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

S:[a,b].

Kuna S on tükiti määratletud, valime k lõiku vahemikus [a,b]:

[ti,ti+1],i=0,...,k1
[a,b]=[t0,t1][t1,t2]...[tk1,tk1][tk1,tk]
a=t0t1...tk1tk=b

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

Pi:[ti,ti+1].

i-ndas lõigus vahemikus [a,b] on S määratletud Pi abil,

S(t)=P0(t),t0tt1,
S(t)=P1(t),t1tt2,
...
S(t)=Pk1(t),tk1ttk.

Antud k+1 punkti tj(0jk) nimetatakse sõlmedeks. Vektorit t=(t0,...,tk) nimetatakse splaini sõlme vektoriks. Kui sõlmed on ühtlaselt jaotatud vahemikus [a,b] siis splaini nimetatakse ühtlaseks, vastasel juhul nimetatakse splaini ebaühtlaseks.[3]

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

Kui 1ik1:SCτi kehtib k1 punkti ti naabruses, siis on splain sile (vähemalt) Cτi kohal ti. See tähendab, et kohal ti jagavad Pi1 ja Pi ühist tuletisväärtust astmest 0 (funktsiooni väärtusest) kuni astmeni ri (teisisõnu, kahe kõrvuti asetseva polünoomi tükki ühendavad kõige rohkem nri sileduse kaotust).

Vektorit r=(r1,...,rk1) kus splainil on siledus Cτi kohal  ti,i=1,...,k1 nimetatakse splaini sileduse vektoriks.[1]

Näited

Oletame, et intervall [a,b] on [0,3] ja alamintervallid on[0,1],[1,2],[2,3]. Oletame, et polünoomi tükid peavad olema astmega 2 ja tükid vahemikus [0,1] ja [1,2] peavad ühinema väärtuse ja esimese tuletisega (t=1 korral) samal ajal kui tükid vahemikus [1,2] ja [2,3] ühinevad lihtsalt väärtusega (t=2 korral). See määrab splaini S(t) tüübi, mille kohaselt

S(t)=P0(t)=1+4tt2 , 0t<1
S(t)=P1(t)=2t , 1t<2
S(t)=P2(t)=2t+t2 , 2t3

oleks selle tüübi liige ja ka

S(t)=P0(t)=22t2 , 0t<1
S(t)=P1(t)=16t+t2 , 1t<2
S(t)=P2(t)=1+t2t2 , 2t3

oleks selle tüübi liige. (Märkus: kuigi polünoomi tükk 2t 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 (0,1,2,2,3).

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

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

S(a)=S(b)=0.

Algoritm kuupsplainide arvutamiseks

Kuupsplainid on kujul Sj(x)=aj+bj(xxj)+cj(xxj)2+dj(xxj)3. Arvestades koordinaatide komplektiC=[(x0,y0),(x1,y1),....,(xn,yn)] soovime leida hulga n splainiga Si(x)   i=0,,n1.

Need peavad rahuldama:

  • Si(xi)=yi=Si1(xi),i=1,,n1.
  • S'i(xi)=S'i1(xi),i=1,,n1.
  • S'i(xi)=S'i1(xi),i=1,,n1.
  • S'0(x0)=S'n1(xn)=0.

Defineerime ühe kuupsplaini S 5-ennikuna (a,b,c,d,xt) kus a,b,c ja d vastavad varem näidatud kujule ja xt on võrdne parameetriga xj.

Algoritm kuupsplaini arvutamiseks: Sisend: koordinaatide hulk C, kus |C|=n+1 Väljund: splainide hulk, mis koosneb n-ist 5-ennikust

  1. Loo uus massiiv a suurusega n+1 ja iga i=0,,n korral seadista ai=yi
  2. Loo uued massiivid b ja d mõlemad suurusega n.
  3. Loo uus massiiv h suurusega n ja iga i=0,,n1 seadista hi=xi+1xi
  4. Loo uus massiiv αsuurusega n ja iga i=0,,n1 seadista αi=3hi(ai+1ai)3hi1(aiai1).
  5. Loo uued massiivid nc,l,μ ja z kõik suurusega n+1.
  6. Seadista l0=1,μ0=z0=0
  7. Iga i=1,,n1
    1. li=2(xi+1xi1)hi1μi1.
    2.  μi=hili.
    3. zi=αihi1zi1li.
  8. Seadista ln=1;zn=cn=0.
  9.  j=n1,n2,,0
    1. cj=zjμjcj+1
    2. bj=aj+1ajhjhj(cj+1+2cj)3
    3. dj=cj+1cj3hj
  10. Loo uus splainide komplekt ja nimeta see valjund_komplekt. Paiguta sinna n splaini S.
  11. Iga i=0,,n1
    1. Si,a=ai
    2. Si,b=bi
    3. Si,c=ci
    4. Si,d=di
    5. Si,x=xi
  12. Väljund valjund_komplekt

Viited

Mall:Viited

Välislingid

Teooria

Exceli funktsioon

Võrguteenuste pakkujad

Arvutikood

  1. 1,0 1,1 1,2 Viitamistõrge: Vigane <ref>-silt. Viide nimega :0 on ilma tekstita.
  2. Viitamistõrge: Vigane <ref>-silt. Viide nimega 0Zxms on ilma tekstita.
  3. Viitamistõrge: Vigane <ref>-silt. Viide nimega o4F55 on ilma tekstita.
  4. Viitamistõrge: Vigane <ref>-silt. Viide nimega iFS2c on ilma tekstita.
  5. Viitamistõrge: Vigane <ref>-silt. Viide nimega zJ2PX on ilma tekstita.