Φυσικές (συναρτήσεις) splines: spline

### 1.24.27 Φυσικές (συναρτήσεις) `splines``:` `spline`

#### Ορισμός

Έστω σn μια υποδιαίρεση του πραγματικού διαστήματος [a,b] :

a=x0, x1, ..., xn=b

Η s είναι μια συνάρτηση `spline` βαθμού l, εάν η s είναι μια απεικόνιση του [a,b] στο ℝ τέτοια ώστε :

- Η s έχει συνεχείς παραγώγους τάξης μέχρι l−1,
- σε κάθε διάστημα της υποδιαίρεσης, το s είναι ένα πολυώνυμο βαθμού μικρότερου ή ίσου με l.

#### Θεώρημα

Το σύνολο των συναρτήσεων `spline` βαθμού l στο σn είναι ένας διανυσματικός υπόχωρος του ℝ διάστασης n+l.

Απόδειξη
Στο [a,x1], το s είναι ένα πολυώνυμο A βαθμού μικρότερου ή ίσου με l, και επομένως στο [a,x1], s=A(x)=a0+a1x+...alxl που σημαίνει ότι το A είναι ένας γραμμικός συνδυασμός των 1,x,...xl.
Στο [x1,x2], το s είναι ένα πολυώνυμο B βαθμού μικρότερου ή ίσου με l, γι’ αυτό και στο [x1,x2], s=B(x)=b0+b1x+...blxl.
Η συνάρτηση s έχει συνεχείς παραγώγους τάξης μέχρι και l−1, γι ’αυτό :

∀ 0 ≤ j ≤ l−1, B(j)(x1)−A(j)(x1)=0

και επομένως B(x)−A(x)=α1(x−x1)l ή B(x)=A(x)+α1(x−x1)l.
Ορίστε την συνάρτηση :

`q`1(x) = | ⎧ ⎨ ⎩ |
0 | στο | [a,x1]
(x−x1)l | στο | [x1,b]

Επομένως :

s|[a,x2]=a0+a1x+...alxl+α1q1(x)

Στο [x2,x3], το s είναι ένα πολυώνυμο C βαθμού μικρότερου ή ίσου με l, γι’ αυτό στο [x2,x3], s=C(x)=c0+c1x+...clxl.
Η συνάρτηση s έχει συνεχείς παραγώγους τάξης μέχρι και l−1, γι’ αυτό :

∀ 0 ≤ j ≤ l−1, C(j)(x2)−B(j)(x2)=0

και επομένως C(x)−B(x)=α2(x−x2)l or C(x)=B(x)+α2(x−x2)l.
Ορίστε τη συνάρτηση:

`q`2(x) = | ⎧ ⎨ ⎩ |
0 | στο | [a,x2]
(x−x2)l | στο | [x2,b]

Επομένως : s|[a,x3]=a0+a1x+...alxl+α1q1(x)+α2q2(x)
Και ούτω καθεξής , οι συναρτήσεις ορίζονται από :

∀ 1 ≤ j ≤ n−1, `q`j(x) = | ⎧ ⎨ ⎩ |
0 | στο | [a,xj]
(x−xj)l | στο | [xj,b]

Επομένως,

s|[a,b]=a0+a1x+...alxl+α1q1(x)+....+αn−1qn−1(x)

και το s είναι ένας γραμμικός συνδυασμός από n+l ανεξάρτητες συναρτήσεις 1,x,..xl,q1,..qn−1.

#### Παρεμβολή με συναρτήσεις `spline`

Αν θέλουμε να παρεμβάλουμε μια συνάρτηση f στο σn από μια συνάρτηση `spline` s βαθμού l, τότε το s πρέπει να επαληθεύει τις συνθήκες s(xk)=yk=f(xk) για όλα τα 0≥ k≥ n. Γι’ αυτό υπάρχουν n+1 συνθήκες, και l−1 βαθμοί ελευθερίας. Μπορούμε επομένως να προσθέσουμε l−1 συνθήκες, οι οποίες είναι στις παραγώγους της s στα a και b.

Η Ερμιτιανή παρεμβολή, η φυσική παρεμβολή και η περιοδική παρεμβολή είναι 3 είδη παρεμβολής που παίρνουμε συγκεκριμενοποιώντας 3 είδη περιορισμών. Η μοναδικότητα της λύσης του προβλήματος της παρεμβολής μπορεί να αποδειχθεί για το κάθε είδος περιορισμών.

Αν το l είναι περιττό (l=2m−1), υπάρχουν 2m−2 βαθμοί ελευθερίας. Οι περιορισμοί ορίζονται από :

- Ερμιτιανή Παρεμβολή

  ∀ 1≤ j≤ m−1, s(j)(a)=f(j)(a), s(j)(b)=f(j)(b)

- Φυσική παρεμβολή

  ∀ m ≤ j ≤ 2m−2, s(j)(a)=s(j)(b)=0

- Περιοδική παρεμβολή

  ∀ 1≤ j≤ 2m−2, s(j)(a)=s(j)(b)

Αν το l είναι ζυγός (l=2m), υπάρχουν 2m−1 βαθμοί ελευθερίας. Οι περιορισμοί ορίζονται από :

- Ερμιτιανή Παρεμβολή

  ∀ 1≤ j≤ m−1, s(j)(a)=f(j)(a), s(j)(b)=f(j)(b)

  και

  s(m)(a)=f(m)(a)

- Φυσική παρεμβολή

  ∀ m ≤ j ≤ 2m−2, s(j)(a)=s(j)(b)=0

  και

  s(2m−1)(a)=0

- Περιοδική παρεμβολή

  ∀ 1≤ j≤ 2m−1, s(j)(a)=s(j)(b)

Μια φυσική `spline` είναι μια συνάρτηση `spline` η οποία επαληθεύει τους περιορισμούς της φυσικής παρεμβολής.

`spline` παίρνει ως ορίσματα μια λίστα τετμημένων (σε αύξουσα σειρά), μια λίστα τεταγμένων, το όνομα μιας μεταβλητής, και ένα βαθμό.
`spline` επιστρέφει την φυσική συνάρτηση `spline` (με συγκεκριμενοποιημένα τον βαθμό και τα σημεία από τα οποία διέρχεται) σαν μια λίστα πολυωνύμων, με κάθε πολυώνυμο έκγυρο σε ένα διάστημα.

Παραδείγματα:

1. Μια φυσική `spline` βαθμού 3, που διέρχεται από τα σημεία x0=0,y0=1, x1=1,y1=3 και x2=2, y2=0, Είσοδος :
   `spline([0,1,2],[1,3,0],x,3)`
   Έξοδος είναι μια λίστα 2 πολυωνυμικών παραστάσεων του x :

   [ −5*x3/4+13*x/4+1, 5*(x−1)3/4−15*(x−1)2/4+(x−1)/−2+3 ]

   που ορίζονται αντίστοιχα στα διαστήματα [0,1] και [1,2].
2. Μια φυσική `spline` βαθμού 4, που διέρχεται από τα σημεία x0=0,y0=1, x1=1,y1=3, x2=2, y2=0 και x3=3, y3=−1, Είσοδος :
   `spline([0,1,2,3],[1,3,0,-1],x,4)`
   Έξοδος είναι μια λίστα 3 πολυωνυμικών συναρτήσεων του x :

   [(−62*x4+304*x)/121+1,

   (201*(x−1)4−248*(x−1)3−372*(x−1)2+56*(x−1))/121+3,

   (−139*(x−2)4+556*(x−2)3+90*(x−2)2+−628*(x−2))/121]

   που ορίζονται αντίστοιχα στα διαστήματα [0,1], [1,2] και [2,3].
3. Η φυσική παρεμβολή `spline` του cos στο [0,π/2,3π/2], Είσοδος :
   `spline([0,pi/2,3*pi/2],cos([0,pi/2,3*pi/2]),x,3)`
   Έξοδος :

   [((3*π3+(−7*π2)*x+4*x3)*1/3)/(π3),

   ((15*π3+(−46*π2)*x+36*x2−8*x3)*1/12)/(π3)]