mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-26 09:54:19 +00:00
Progress
This commit is contained in:
parent
2f31057e4a
commit
ea82a5995b
2 changed files with 105 additions and 11 deletions
|
@ -256,14 +256,14 @@ export default function (props) {
|
|||
<p>
|
||||
È particolarmente utile perchè ci permette di definire un <b>algoritmo ricorsivo</b> che trovi <ILatex>{r`x`}</ILatex>:
|
||||
</p>
|
||||
<PLatex>{r`x^{(i+1)} = G \cdot x^{(i)} + c`}</PLatex>
|
||||
<PLatex>{r`x_{(i+1)} = G \cdot x_{(i)} + c`}</PLatex>
|
||||
<p>
|
||||
<ILatex>{r`G`}</ILatex> è il <b>metodo</b>, e in base ad esso cambiano stabilità e velocità di convergenza.
|
||||
</p>
|
||||
<p>
|
||||
Ponendo <ILatex>{r`A = M - N`}</ILatex>, la formula può essere scritta anche in questo modo:
|
||||
</p>
|
||||
<PLatex>{r`M \cdot x^{(i+1)} = N \cdot x^{(i)} + b`}</PLatex>
|
||||
<PLatex>{r`M \cdot x_{(i+1)} = N \cdot x_{(i)} + b`}</PLatex>
|
||||
<p>
|
||||
Possiamo ottenere alcuni metodi separando <ILatex>A</ILatex> in tre matrici:
|
||||
</p>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import style from "./02_ZeriDiFunzione.less";
|
||||
import {Fragment} from "preact";
|
||||
import {Section, Panel, ILatex, BLatex, PLatex, Todo} from "bluelib";
|
||||
import Example from "../../components/Example";
|
||||
|
||||
const r = String.raw;
|
||||
|
||||
|
@ -17,14 +18,29 @@ export default function (props) {
|
|||
Per il <b>teorema del valore medio</b>, se <ILatex>{r`f(a) \cdot f(b) \leq 0`}</ILatex>, allora esiste sicuramente un punto in cui la funzione vale 0.
|
||||
</p>
|
||||
<p>
|
||||
Denominiamo il punto in cui la funzione vale <ILatex>0</ILatex> come <ILatex>{r`x^*`}</ILatex>.
|
||||
Denominiamo il punto in cui la funzione vale <ILatex>0</ILatex> come <ILatex>{r`x_{(*)}`}</ILatex>.
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Condizionamento"}>
|
||||
<p>
|
||||
Più la <b>derivata prima</b> della funzione <b>si avvicina allo 0</b>, <b>peggio</b> il problema sarà condizionato.
|
||||
</p>
|
||||
<PLatex>{r`f'(x^*) \simeq 0 \implies mal\ condizionato`}</PLatex>
|
||||
<PLatex>{r`f'(x_{(*)}) \simeq 0 \implies mal\ condizionato`}</PLatex>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
<Panel title={"Ordine di convergenza"}>
|
||||
<p>
|
||||
Indice <ILatex>{r`{\color{Orange} p}`}</ILatex> di quanto in fretta una successione converge alla soluzione.
|
||||
</p>
|
||||
<PLatex>{r`\lim_{i \to +\infty} \frac{ \left| x_{(i+1)} - x_{(*)} \right| }{ \left| x_{(k)} - x_{(*)} \right|^{\color{Orange} p}}`}</PLatex>
|
||||
<ul>
|
||||
<li><u>Convergenza lineare</u>: <ILatex>{r`p = 1`}</ILatex> e <ILatex>{r`0 < C < 1`}</ILatex></li>
|
||||
<li><u>Convergenza superlineare</u>: <ILatex>{r`p = 1`}</ILatex> e <ILatex>{r`C = 0`}</ILatex></li>
|
||||
<li><u>Convergenza quadratica</u>: <ILatex>{r`p = 2`}</ILatex> e <ILatex>{r`0 < C < 1`}</ILatex></li>
|
||||
<li><u>Convergenza superquadratica</u>: <ILatex>{r`p = 2`}</ILatex> e <ILatex>{r`C = 0`}</ILatex></li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section>
|
||||
|
@ -38,31 +54,109 @@ export default function (props) {
|
|||
<p>
|
||||
Richiedono <b>una valutazione di funzione non-lineare</b> ad ogni iterazione.
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Metodi di Newton"}>
|
||||
<p>
|
||||
Sono <b>metodi iterativi</b> che sfruttano la <b>derivabilità</b> della funzione per ottenere <b>velocità di convergenza più alte</b>, a costo di <b>maggiore complessità computazionale</b>.
|
||||
Hanno <b>convergenza lineare</b>.
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Metodi delle approssimazioni successive"}>
|
||||
<p>
|
||||
Sono <b>metodi iterativi</b> che <Todo>TODO</Todo>
|
||||
Sono <b>metodi iterativi</b> che funzionano in modo molto simile ai metodi iterativi per i sistemi lineari, utilizzando una funzione <ILatex>{r`\phi`}</ILatex> come "metodo".
|
||||
</p>
|
||||
<PLatex>{r`x = x - \phi(x) \cdot f(x)`}</PLatex>
|
||||
<p>
|
||||
Che diventa:
|
||||
</p>
|
||||
<PLatex>{r`x_{(k+1)} = g( x_{(k)} )`}</PLatex>
|
||||
<p>
|
||||
Sfruttano i <b>punti fissi</b> <ILatex>{r`g(x_{(*)}) = x_{(*)}`}</ILatex> della funzione per convergere.
|
||||
</p>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Metodi dicotomici"}>
|
||||
<Panel title={"Metodo di bisezione"}>
|
||||
<Todo>TODO</Todo>
|
||||
<p>
|
||||
Calcoliamo il <b>punto medio</b> dell'intervallo <ILatex>{r`[a_{(n)}, b_{(n)}]`}</ILatex>:
|
||||
</p>
|
||||
<PLatex>{r`c_{(n)} = a_{(n)} + \frac{b_{(n)} - a_{(n)}}{2}`}</PLatex>
|
||||
<p>
|
||||
Dividiamo l'intervallo in due parti, separate da <ILatex>{r`c_{(n)}`}</ILatex>:
|
||||
</p>
|
||||
<ul>
|
||||
<li><ILatex>{r`[a_{(n)}, c_{(n)}]`}</ILatex> è la <b>metà</b> sinistra</li>
|
||||
<li><ILatex>{r`[c_{(n)}, b_{(n)}]`}</ILatex> è la <b>metà</b> destra</li>
|
||||
</ul>
|
||||
<p>
|
||||
Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e rinominiamolo in <ILatex>{r`[a_{(n+1)}, b_{(n+1)}]`}</ILatex>.
|
||||
</p>
|
||||
<p>
|
||||
La dimensione dell'intervallo all'iterazione <ILatex>i</ILatex> è nota:
|
||||
</p>
|
||||
<PLatex>{r`b_{(i)} - a_{(i)} = \frac{b - a}{2^{i - 1}}`}</PLatex>
|
||||
<p>
|
||||
Il numero di iterazioni necessarie per soddisfare la tolleranza <ILatex>\tau</ILatex> sarà quindi:
|
||||
</p>
|
||||
<PLatex>{r`i \geq \log_2 \left( \frac{b - a}{\tau} \right)`}</PLatex>
|
||||
<Example>
|
||||
Dividi l'intervallo <ILatex>{r`[a, b]`}</ILatex> in tante parti grandi quanto la tolleranza. L'algoritmo di bisezione ne escluderà metà ad ogni iterazione; la tolleranza sarà raggiunta quando rimarrà una parte sola!
|
||||
</Example>
|
||||
<p>
|
||||
Ha quindi <b>convergenza lineare</b> (<ILatex>{r`C = \frac{1}{2}`}</ILatex>).
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Metodo regula falsi"}>
|
||||
<Todo>TODO</Todo>
|
||||
<p>
|
||||
Calcoliamo l'<b>intersezione</b> tra la <b>retta che congiunge i due estremi</b> <ILatex>{r`a_{(n)}, b_{(n)}`}</ILatex> e l'<b>asse X</b>:
|
||||
</p>
|
||||
<PLatex>{r`c_{(n)} = b_{(n)} - \frac{f(b_{(n)})}{\frac{f(b_{(n)}) - f(a_{(n)})}{b_{(n)} - a_{(n)}}}`}</PLatex>
|
||||
<p>
|
||||
Dividiamo l'intervallo in due parti, separate da <ILatex>{r`c_{(n)}`}</ILatex>:
|
||||
</p>
|
||||
<ul>
|
||||
<li><ILatex>{r`[a_{(n)}, c_{(n)}]`}</ILatex> è la parte sinistra</li>
|
||||
<li><ILatex>{r`[c_{(n)}, b_{(n)}]`}</ILatex> è la parte destra</li>
|
||||
</ul>
|
||||
<p>
|
||||
Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e rinominiamolo in <ILatex>{r`[a_{(n+1)}, b_{(n+1)}]`}</ILatex>.
|
||||
</p>
|
||||
<p>
|
||||
La dimensione dell'intervallo all'iterazione <ILatex>{r`i`}</ILatex> <b>non è nota</b>, ma:
|
||||
</p>
|
||||
<PLatex>{r`b_{(i)} - a_{(i)} \leq \frac{b - a}{2^{i - 1}}`}</PLatex>
|
||||
<p>
|
||||
Il numero di iterazioni necessarie per soddisfare la tolleranza <ILatex>\tau</ILatex> sarà quindi:
|
||||
</p>
|
||||
<PLatex>{r`i \geq \log_2 \left( \frac{b - a}{\tau} \right)`}</PLatex>
|
||||
<Example>
|
||||
Dividi l'intervallo <ILatex>{r`[a, b]`}</ILatex> in tante parti grandi quanto la tolleranza. L'algoritmo di bisezione ne escluderà <i>almeno</i> metà ad ogni iterazione; la tolleranza sarà raggiunta quando rimarrà una parte sola!
|
||||
</Example>
|
||||
<p>
|
||||
Ha quindi <b>convergenza lineare</b> (<ILatex>{r`C = \frac{1}{2}`}</ILatex>).
|
||||
</p>
|
||||
</Panel>
|
||||
</Section>
|
||||
<Section title={"Metodo delle approssimazioni successive"}>
|
||||
<Panel title={"Metodo generale"}>
|
||||
<Todo>TODO</Todo>
|
||||
<p>
|
||||
Se <ILatex>{r`\forall x \in [a, b], \phi(x) \neq 0`}</ILatex>, allora i <b>punti fissi</b> della funzione <ILatex>{r`g`}</ILatex> <b>coincideranno</b> con gli <b>zeri</b>.
|
||||
</p>
|
||||
<PLatex>{r`g(x) = x - \phi(x) \cdot f(x)`}</PLatex>
|
||||
<p>
|
||||
È possibile avvicinarsi sempre di più ai punti fissi utilizzando <Todo>TODO</Todo>
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Metodo di Newton"}>
|
||||
<p>
|
||||
Sfrutta la continuità delle funzioni per ottenere una convergenza di ordine più alto.
|
||||
</p>
|
||||
<PLatex>{r`\phi (x) = \frac{1}{f' (x)}`}</PLatex>
|
||||
<Example>
|
||||
Geometricamente, corrisponde a prolungare una retta nel punto <ILatex>{r`(x, f(x))`}</ILatex> con pendenza <ILatex>{r`f'(x)`}</ILatex>, e prendendo come nuovo punto l'intersezione con l'asse X.
|
||||
</Example>
|
||||
<p>
|
||||
Ha costo computazionale di <b>4 valutazioni di funzioni</b> e <b>convergenza quadratica</b>.
|
||||
</p>
|
||||
</Panel>
|
||||
<Panel title={"Metodo delle secanti"}>
|
||||
<Todo>TODO</Todo>
|
||||
</Panel>
|
||||
</Section>
|
||||
|
|
Loading…
Reference in a new issue