-
Notifications
You must be signed in to change notification settings - Fork 0
/
5.tex
159 lines (109 loc) · 5.44 KB
/
5.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
\chapter{Splines}
\section{Decomposizione di un intervallo}
Sia $[a, b]$ un'intervallo chiuso e limitato, chiamo decomposizione di $[a, b]$ un insieme finito di punti:
\begin{align}
\Delta = \{x_0, x_1, \dots, x_n\}
\end{align}
\section{Ricerca binaria}
Dato che le spline interpolano gli intervalli, è necessario trovare l'intervallo in cui si trova il punto da interpolare. Per fare ciò si utilizza la ricerca binaria, che permette di trovare l'intervallo in cui si trova il punto da interpolare in $O(\log n)$.
\subsection{Passi dell'Algoritmo}
\begin{enumerate}
\item \textbf{Inizializzazione}: Assicurarsi che l'insieme sia ordinato in modo ascendente.
\item \textbf{Definire l'intervallo}: Impostare un intervallo di ricerca iniziale che copra l'intero insieme. Solitamente, l'intervallo è definito da due indici: \textit{inizio} e \textit{fine}. All'inizio, \textit{inizio} sarà 0 (indice del primo elemento) e \textit{fine} sarà la lunghezza dell'insieme meno uno (indice dell'ultimo elemento).
\item \textbf{Calcolare il punto medio}: Calcolare l'indice del punto medio dell'intervallo come \textit{medio = (inizio + fine) / 2}.
\item \textbf{Confronto}: Confrontare l'elemento nel punto medio con l'elemento cercato.
\item \textbf{Trova l'elemento}: Se l'elemento nel punto medio è uguale all'elemento cercato, la ricerca è terminata, e l'elemento è stato trovato.
\item \textbf{Riduzione dell'intervallo}: Se l'elemento nel punto medio è maggiore dell'elemento cercato, impostare \textit{fine = medio - 1} per restringere l'intervallo alla metà inferiore. Altrimenti, se l'elemento nel punto medio è minore dell'elemento cercato, impostare \textit{inizio = medio + 1} per restringere l'intervallo alla metà superiore.
\item \textbf{Ripeti}: Ripetere i passaggi dal 3 al 6 fino a quando l'elemento viene trovato o finché \textit{inizio} diventa maggiore di \textit{fine}, nel qual caso l'elemento non è presente nell'insieme.
\end{enumerate}
\section{Errore della spline}
L'errore della spline è definito come:
\begin{align}
r(x) &= f(x) - S(x), \quad x \neq x_i \\
&= | f(x) - S(x) | = \frac{1}{(n+1)!} | f^{(n+1)}(\xi) | \omega(x) \\
&= \frac{1}{(n+1)!} | f^{(n+1)}(\xi) | \prod_{i=0}^n (x - x_i)
\end{align}
\section{Spline cubica}
Sia $[a, b]$ un intervallo chiuso e limitato, sia $f$ una funzione definita su $[a, b]$ e sia $\Delta = \{x_0, x_1, \dots, x_n\}$ una decomposizione di $[a, b]$. Una spline cubica è una funzione $S$ definita su $[a, b]$ tale che:
\begin{align}
S_{3, \Delta}(x) = \begin{cases}
S_{3, \Delta}^1(x) = a^1_0 + a^1_1(x - x_0) + a^1_2(x - x_0)^2 + a^1_3(x - x_0)^3 & x \in [x_0, x_1] \\
S_{3, \Delta}^2(x) = a^2_0 + a^2_1(x - x_1) + a^2_2(x - x_1)^2 + a^2_3(x - x_1)^3 & x \in [x_1, x_2] \\
\dotfill \\
S_{3, \Delta}^n(x) = a^n_0 + a^n_1(x - x_{n-1}) + a^n_2(x - x_{n-1})^2 + a^n_3(x - x_{n-1})^3 & x \in [x_{n-1}, x_{n}]
\end{cases}
\end{align}
Le incognite sono $a^i_0, a^i_1, a^i_2, a^i_3$ per $i = 1, \dots, n$.
I vincoli sono:
\begin{itemize}
\item $3(n-1)$ per imporre $C^2([a, b])$
\item $n+1$ per imporre le interpolazioni ai nodi
\end{itemize}
Ne deriva che vincoli e incognite sono $4n - 2$.
\section{Momenti delle spline}
I momenti delle spline sono definiti come:
\begin{align}
M_i = [S_{3, \Delta}^i(x_i)]''_{x=x_i}
\end{align}
\subsection{Spline conoscento i momenti}
Se conosco i momenti della spline, posso rappresentare le spline nel seguente modo:
\begin{align}
S_{3, \Delta}^i(x) = \frac{(x - x_{i-1})^3}{6h_i} M_i + \frac{(x_i -x)^3}{6h_i} M_{i-1} + A_i(x- x_{i-1}) + B_i
\end{align}
Dove:
\begin{align}
B_i = y_{i-1} - \frac{h_i^2}{6} M_{i-1} \\
A_i = \frac{y_i - y_{i-1}}{h_i} - \frac{h_i}{6}(M_- - M_{i-1})
\end{align}
Derivando varie volte si ottiene:
\begin{align}
[S_{3, \Delta}^i(x)]' &= \frac{(x - x_{i-1})^2}{2h_i} M_i - \frac{(x_i -x)^2}{2h_i} M_{i-1} + A_i \\
[S_{3, \Delta}^i(x)]'' &= \frac{(x - x_{i-1})}{h_i} M_i + \frac{(x_i -x)}{h_i} M_{i-1} \\
[S_{3, \Delta}^i(x)]''' &= \frac{1}{h_i} M_i - \frac{1}{h_i} M_{i-1}
\end{align}
In tutto questo $h_i = x_i - x_{i-1}$.
\subsection{Convertire momenti in coefficienti}
\begin{align}
a_0^i &= y_{i-1} \\
a_1^i &= \frac{y_i - y_{i-1}}{h_i} - \frac{h_i}{6}(2M_{i-1} + M_i) \\
a_2^i &= \frac{M_{i-1}}{2} \\
a_3^i &= \frac{M_i - M_{i-1}}{6h_i}
\end{align}
\subsection{Rappresentazione con i momenti}
\begin{align}
\alpha_i &= \frac{h_i}{h_i + h_{i+1}} \\
\beta_i &= \frac{h_{i+1}}{h_i + h_{i+1}} \\
d_i &= \frac{6}{h_i + h_{i+1}} \left( \frac{y_{i+1} - y_i}{h_{i+1}} - \frac{y_i - y_{i-1}}{h_i} \right)
\end{align}
E la rappresentazione diventa:
\begin{align}
\alpha_i M_{i-1} + 2 M_i + \beta_i M_{i+1} = d_i, \quad i = 1, \dots, n-1
\end{align}
\section{Spline cubica naturale}
Una spline per essere naturale deve avere i momenti $M_0 = M_n = 0$.
Quindi i vincoli diventano:
\begin{align}
\begin{cases}
2 M_1 + \beta_1 M_2 = d_1 \\
\alpha_2 M_1 + 2 M_2 + \beta_2 M_3 = d_2 \\
\dotfill \\
\alpha_{n-1} M_{n-2} + 2 M_{n-1} = d_{n-1}
\end{cases}
\end{align}
La matrice associata è:
\begin{itemize}
\item triangolare
\item $\alpha_i + \beta_i = 1$
\end{itemize}
\section{Spline cubica vincolata}
Le condizioni per avere una spline cubica vincolata sono:
\begin{align}
[S_{3, \Delta}^i(x)]'_{x=x_0} = y_0' \\
[S_{3, \Delta}^i(x)]'_{x=x_n} = y_n'
\end{align}
La matrice associata è:
\begin{itemize}
\item tridiagonale
\item triangolar dominante
\item irreducibile
\end{itemize}