1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-26 09:54:19 +00:00

Altri progressi

This commit is contained in:
Steffo 2020-08-25 16:54:42 +02:00
parent 7f421fc71a
commit ad96023477
4 changed files with 152 additions and 10 deletions

View file

@ -166,12 +166,14 @@ export default function (props) {
<li>Il grado del polinomio di interpolazione</li>
</ul>
</Panel>
</Section>
<Section>
<Panel title={"Fenomeno di Runge"}>
<p>
Fenomeno che si verifica cercando di interpolare la funzione di Runge (<ILatex>{r`\frac{1}{1 + 25x^2}`}</ILatex>).
Fenomeno che si verifica cercando di interpolare la <i>funzione di Runge</i> (<ILatex>{r`\frac{1}{1 + 25x^2}`}</ILatex>).
</p>
<p>
Scegliendo <b>nodi equispaziati</b>, l'errore di interpolazione sarà <span style={"font-size: x-large;"}>ENORME</span> vicino ai due estremi dell'intervallo.
Scegliendo <b>nodi equispaziati</b>, l'errore di interpolazione sarà <b>enorme</b> vicino ai due estremi dell'intervallo.
</p>
<Example>
Addirittura, più nodi verranno scelti, più esso sarà alto!
@ -182,15 +184,20 @@ export default function (props) {
</Panel>
<Panel title={"Nodi di Chebychev"}>
<p>
La <b>scelta ottimale</b> dei punti di interpolazione.
</p>
<p>
Consiste nel partizionare una semicirconferenza, e proiettare le partizioni sul diametro.
Nodi ottenuti partizionando una <b>semicirconferenza</b>, e proiettando le partizioni sul diametro.
</p>
<p>
La formula usata per ottenere <ILatex>{r`n`}</ILatex> punti è:
</p>
<PLatex>{r`x_i = \cos \left( \frac{ (2 \cdot i + 1) \cdot \pi }{ 2 \cdot (n+1) } \right)`}</PLatex>
<p>
<u>Proprietà di min-max</u>: sono la <b>scelta ottimale</b> dei punti di interpolazione.
</p>
<PLatex>{r`\omega_n(\star) = \max_{x \in [a, b]} \left| \omega_n(x) \right|`}</PLatex>
<p>
In particolare, si ha che:
</p>
<PLatex>{r`\omega_n(\star) = 2 \left( \frac{b-a}{4} \right)^{n+1}`}</PLatex>
</Panel>
</Section>
</Fragment>

View file

@ -0,0 +1,137 @@
import style from "./04_InterpolazioneATratti.less";
import {Fragment} from "preact";
import {Section, Panel, ILatex, BLatex, PLatex} from "bluelib";
import Example from "../../components/Example";
const r = String.raw;
export default function (props) {
return (
<Fragment>
<Section title={"Problema: Interpolazione a tratti"}>
<Panel title={"Come funziona?"}>
<p>
Invece che costruire una singola funzione che interpola tutti i punti, per <b>ogni intervallo tra due punti</b> (<i>sottointervallo</i>) si costruisce <b>una funzione apposta</b>.
</p>
</Panel>
</Section>
<Section title={"Splines"}>
<Panel title={"Cosa sono?"}>
<p>
Interpolanti che:
</p>
<ul>
<li>sono <b>polinomiali</b> di grado massimo <ILatex>{r`n`}</ILatex></li>
<li>sono <b>continue</b> fino al grado <ILatex>{r`n - 1`}</ILatex></li>
<li>connettono <ILatex>{r`m + 2`}</ILatex> punti, e hanno <ILatex>{r`m`}</ILatex> sottointervalli</li>
<li>hanno funzioni <b>definite appositamente</b> per ogni sottointervallo</li>
</ul>
<Example>
<p>
Significa che agli estremi dell'intervallo, i valori di tutte le derivate fino al grado <ILatex>{r`n - 1`}</ILatex> devono essere uguali:
</p>
<PLatex>{r`\forall \ k \leq n-1, \forall \ i \in \{intervalli\}, \quad s_i^{(k)} (x_{i+1}) = s_i^{(k)} (x_{i+1})`}</PLatex>
</Example>
<p>
Hanno <ILatex>{r`n + m + 1`}</ILatex> gradi di libertà.
</p>
<Example>
Esistono infinite spline di grado <ILatex>{r`n \geq 2`}</ILatex>!
</Example>
</Panel>
</Section>
<Section>
<Panel title={"Spline lineari"}>
<Example>
Sono anche dette <b>interpolanti lineari a tratti</b>.
</Example>
<p>
Per ogni sottointervallo, costruiamo una <b>funzione lineare</b> passante per i due estremi:
</p>
<PLatex>{r`s_i(x) = y_i + \frac{ y_{i + 1} - y_i }{ x_{i + 1} - x_i } \cdot (x - x_i)`}</PLatex>
<Example>
È una linea spezzata!
</Example>
<p>
Il loro errore è:
</p>
<PLatex>{r`\| R \|_\infty = \| f - s \|_\infty \leq \frac{1}{8} \cdot \max_{y \in [a, b]} \left| f''(y) \right| \cdot \left( \max_{i \in \{intervalli\}} (x_{i+1} - x_{i}) \right)^2`}</PLatex>
<p>
Ha come vantaggi complessità computazionale <b>molto più bassa</b> e l'<b>assenza</b> del fenomeno di Runge, ma allo stesso tempo si <b>perde la derivabilità della funzione.</b>
</p>
<p>
<b>Non</b> hanno gradi di libertà.
</p>
</Panel>
<Panel title={"Spline cubiche"}>
<p>
Spline con <ILatex>{r`n = 3`}</ILatex>, che soddisfano le seguenti uguaglianze:
</p>
<PLatex>{r`
\forall \ i \in \{0,\ \dots\ ,\ m - 1\},\
\begin{cases}
s_i (x_{i+1}) = s_{i+1} (x_{i+1})\\\\
s'_i (x_{i+1}) = s'_{i+1} (x_{i+1})\\\\
s''_i (x_{i+1}) = s''_{i+1} (x_{i+1})
\end{cases}
`}</PLatex>
<PLatex>{r`
\forall \ i \in \{0,\ \dots\ ,\ m + 1\},\
\begin{cases}
s_i(x_i) = y_i
\end{cases}
`}</PLatex>
<p>
Esse hanno la seguente equazione:
</p>
<PLatex>{r`s_i(x) = \alpha_i + \beta_i \ ( x - x_i ) + \gamma_i \ ( x - x_i )^2 + \delta_i \ ( x - x_i )^3`}</PLatex>
</Panel>
</Section>
<Section>
<Panel title={"Spline cubica naturale"}>
<p>
Classe di spline cubiche in cui:
</p>
<ul>
<li><ILatex>{r`s''(x_0) = s''(x_{m+1}) = 0`}</ILatex></li>
</ul>
<p>
È <b>unica</b>.
</p>
</Panel>
<Panel title={"Spline cubica periodica"}>
<p>
Classe di spline cubiche in cui:
</p>
<ul>
<li><ILatex>{r`s(x) = s(m+1)`}</ILatex></li>
<li><ILatex>{r`s'(x) = s'(m+1)`}</ILatex></li>
<li><ILatex>{r`s''(x) = s''(m+1)`}</ILatex></li>
</ul>
<p>
È <b>unica</b>.
</p>
</Panel>
<Panel title={"Spline cubica not-a-knot"}>
<p>
Classe di spline cubiche in cui:
</p>
<ul>
<li>Negli intervalli <ILatex>{r`[x_0, x_2]`}</ILatex> e <ILatex>{r`[x_{m-1}, x_{m+1}]`}</ILatex> si presenta <b>obbligatoriamente</b> un polinomio di <b>grado 3</b>.</li>
</ul>
<p>
È <b>unica</b>.
</p>
</Panel>
</Section>
<Section>
<Panel title={"Proprietà di minima curvatura"}>
<p>
Se
</p>
</Panel>
</Section>
</Fragment>
)
}

View file

@ -1,11 +1,8 @@
import {ILatex, Panel, PLatex, Section, Timer, Todo} from "bluelib";
import Example from "../../components/Example";
import Link from "../../components/Link";
import MenuList from "../../components/MenuList";
import Intro from "./00_Intro";
import SistemiLineari from "./01_SistemiLineari";
import ZeriDiFunzione from "./02_ZeriDiFunzione";
import Interpolazione from "./03_Interpolazione";
import InterpolazioneATratti from "./04_InterpolazioneATratti";
const r = String.raw;
@ -18,6 +15,7 @@ export default function (props) {
<SistemiLineari/>
<ZeriDiFunzione/>
<Interpolazione/>
<InterpolazioneATratti/>
</div>
)
}