1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-25 17:34:20 +00:00
This commit is contained in:
Steffo 2020-08-23 04:04:09 +02:00
parent b71a8af9b4
commit 28c2d80542
25 changed files with 242 additions and 41 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
docs/bundle.33b0f.esm.js.LICENSE.txt generated Normal file
View file

@ -0,0 +1 @@
/*! For license information please see bundle.33b0f.esm.js.LICENSE.txt */

View file

@ -1 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"bundle.fbc98.esm.js","sourceRoot":""}
{"version":3,"sources":[],"names":[],"mappings":"","file":"bundle.33b0f.esm.js","sourceRoot":""}

View file

@ -1 +0,0 @@
/*! For license information please see bundle.fbc98.esm.js.LICENSE.txt */

2
docs/index.html generated
View file

@ -1 +1 @@
<!DOCTYPE html><html lang="it"><head><meta charset="utf-8"><title>appuntiweb</title><meta content="width=device-width,initial-scale=1" name="viewport"><link href="/favicon.ico" rel="icon" type="image/x-icon"><link href="/favicon.ico" rel="shortcut icon" type="image/x-icon"><style>body{background-color:#0d193b}</style><link rel="manifest" href="/manifest.json"><link href="/bundle.724d1.css" rel="preload" as="style"><noscript><link rel="stylesheet" href="/bundle.724d1.css"></noscript><script>function $loadcss(u,m,l){(l=document.createElement('link')).rel='stylesheet';l.href=u;document.head.appendChild(l)}$loadcss("/bundle.724d1.css")</script></head><body><script type="__PREACT_CLI_DATA__">{"preRenderData":{"url":"/"}}</script><script nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" src="/bundle.fbc98.esm.js" type="module"></script><script nomodule="" src="/polyfills.b1839.js"></script><script nomodule="" defer="defer" src="/bundle.1fa68.js"></script></body></html>
<!DOCTYPE html><html lang="it"><head><meta charset="utf-8"><title>appuntiweb</title><meta content="width=device-width,initial-scale=1" name="viewport"><link href="/favicon.ico" rel="icon" type="image/x-icon"><link href="/favicon.ico" rel="shortcut icon" type="image/x-icon"><style>body{background-color:#0d193b}</style><link rel="manifest" href="/manifest.json"><link href="/bundle.724d1.css" rel="preload" as="style"><noscript><link rel="stylesheet" href="/bundle.724d1.css"></noscript><script>function $loadcss(u,m,l){(l=document.createElement('link')).rel='stylesheet';l.href=u;document.head.appendChild(l)}$loadcss("/bundle.724d1.css")</script></head><body><script type="__PREACT_CLI_DATA__">{"preRenderData":{"url":"/"}}</script><script nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" src="/bundle.33b0f.esm.js" type="module"></script><script nomodule="" src="/polyfills.9434d.js"></script><script nomodule="" defer="defer" src="/bundle.225bf.js"></script></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"polyfills.8b4c0.esm.js","sourceRoot":""}
{"version":3,"sources":[],"names":[],"mappings":"","file":"polyfills.465a2.esm.js","sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"/":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1}},"/AlgoritmiEStruttureDati":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-AlgoritmiEStruttureDati.chunk.e6f90.esm.js":{"type":"script","weight":0.9}},"/ApprendimentoSistemiArtificiali":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-ApprendimentoSistemiArtificiali.chunk.857ce.esm.js":{"type":"script","weight":0.9},"route-ApprendimentoSistemiArtificiali.chunk.55de3.css":{"type":"style","weight":0.9}},"/BasiDiDati":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-BasiDiDati.chunk.f1dc7.esm.js":{"type":"script","weight":0.9},"route-BasiDiDati.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/CalcoloNumerico":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-CalcoloNumerico.chunk.360af.esm.js":{"type":"script","weight":0.9},"route-CalcoloNumerico.chunk.f441c.css":{"type":"style","weight":0.9}},"/Fisica":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-Fisica.chunk.e2766.esm.js":{"type":"script","weight":0.9},"route-Fisica.chunk.ed9a8.css":{"type":"style","weight":0.9}},"/Home":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-Home.chunk.c5859.esm.js":{"type":"script","weight":0.9},"route-Home.chunk.b342d.css":{"type":"style","weight":0.9}},"/MingwInstall":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-MingwInstall.chunk.1eacd.esm.js":{"type":"script","weight":0.9}},"/NetLogo":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-NetLogo.chunk.18d97.esm.js":{"type":"script","weight":0.9},"route-NetLogo.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/OttimizzazioneLineare":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-OttimizzazioneLineare.chunk.b7c6f.esm.js":{"type":"script","weight":0.9},"route-OttimizzazioneLineare.chunk.99830.css":{"type":"style","weight":0.9}},"/RipassoDiAlgebraLineare":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-RipassoDiAlgebraLineare.chunk.b3d47.esm.js":{"type":"script","weight":0.9},"route-RipassoDiAlgebraLineare.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/Statistica":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-Statistica.chunk.68267.esm.js":{"type":"script","weight":0.9},"route-Statistica.chunk.9d494.css":{"type":"style","weight":0.9}},"/VlDiGeometria":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.fbc98.esm.js":{"type":"script","weight":1},"route-VlDiGeometria.chunk.56154.esm.js":{"type":"script","weight":0.9}}}
{"/":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1}},"/AlgoritmiEStruttureDati":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-AlgoritmiEStruttureDati.chunk.e6f90.esm.js":{"type":"script","weight":0.9}},"/ApprendimentoSistemiArtificiali":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-ApprendimentoSistemiArtificiali.chunk.857ce.esm.js":{"type":"script","weight":0.9},"route-ApprendimentoSistemiArtificiali.chunk.55de3.css":{"type":"style","weight":0.9}},"/BasiDiDati":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-BasiDiDati.chunk.f1dc7.esm.js":{"type":"script","weight":0.9},"route-BasiDiDati.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/CalcoloNumerico":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-CalcoloNumerico.chunk.8b6a1.esm.js":{"type":"script","weight":0.9},"route-CalcoloNumerico.chunk.f441c.css":{"type":"style","weight":0.9}},"/Fisica":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-Fisica.chunk.e2766.esm.js":{"type":"script","weight":0.9},"route-Fisica.chunk.ed9a8.css":{"type":"style","weight":0.9}},"/Home":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-Home.chunk.c5859.esm.js":{"type":"script","weight":0.9},"route-Home.chunk.b342d.css":{"type":"style","weight":0.9}},"/MingwInstall":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-MingwInstall.chunk.1eacd.esm.js":{"type":"script","weight":0.9}},"/NetLogo":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-NetLogo.chunk.18d97.esm.js":{"type":"script","weight":0.9},"route-NetLogo.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/OttimizzazioneLineare":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-OttimizzazioneLineare.chunk.b7c6f.esm.js":{"type":"script","weight":0.9},"route-OttimizzazioneLineare.chunk.99830.css":{"type":"style","weight":0.9}},"/RipassoDiAlgebraLineare":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-RipassoDiAlgebraLineare.chunk.b3d47.esm.js":{"type":"script","weight":0.9},"route-RipassoDiAlgebraLineare.chunk.1d0a7.css":{"type":"style","weight":0.9}},"/Statistica":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-Statistica.chunk.68267.esm.js":{"type":"script","weight":0.9},"route-Statistica.chunk.9d494.css":{"type":"style","weight":0.9}},"/VlDiGeometria":{"bundle.724d1.css":{"type":"style","weight":1},"bundle.33b0f.esm.js":{"type":"script","weight":1},"route-VlDiGeometria.chunk.56154.esm.js":{"type":"script","weight":0.9}}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"route-CalcoloNumerico.chunk.360af.esm.js","sourceRoot":""}
{"version":3,"sources":[],"names":[],"mappings":"","file":"route-CalcoloNumerico.chunk.8b6a1.esm.js","sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
docs/sw-esm.js generated

File diff suppressed because one or more lines are too long

2
docs/sw.js generated

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
{
"private": true,
"name": "appuntiweb",
"version": "0.8.0",
"version": "0.8.1",
"license": "AGPL-3.0-or-later",
"scripts": {
"start": "preact watch --template src/template.html",

File diff suppressed because one or more lines are too long

View file

@ -287,30 +287,186 @@ export default function (props) {
</Panel>
</Section>
<Section title={"Metodi diretti"}>
<Panel title={"Matrice diagonale"}>
<Todo>TODO</Todo>
<Panel title={"Divisione"}>
<p>
Se la matrice dei coefficienti del sistema è <b>diagonale</b>, allora è possibile trovare la soluzione <i>dividendo</i> ogni termine noto per l'unico coefficiente diverso da zero presente nella sua riga:
</p>
<PLatex>{r`x_i = \frac{b_i}{A_{ii}}`}</PLatex>
</Panel>
<Panel title={"Matrice triangolare"}>
<Todo>TODO</Todo>
<Panel title={"Sostituzione"}>
<p>
Se la matrice dei coefficienti del sistema è <b>triangolare</b> inferiore o superiore, allora è possibile trovare la soluzione effettuando una <i>sostituzione</i> all'avanti oppure all'indietro:
</p>
<PLatex>{r`x_i = \frac{b_i - \sum_{k = 1}^{i - 1} (x_k \cdot A_{ik})}{A_{ii}}`}</PLatex>
<PLatex>{r`x_i = \frac{b_i - \sum_{k = i - 1}^{n} (x_k \cdot A_{ik})}{A_{ii}}`}</PLatex>
</Panel>
</Section>
<Section>
<Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex></span>}>
<Todo>TODO</Todo>
<p>
Se la matrice dei coefficienti del sistema <b>non ha <Link href={"https://it.wikipedia.org/wiki/Minore_(algebra_lineare)"}>minori</Link> uguali a 0 <small>(eccetto l'ultimo)</small></b> allora è possibile <i>fattorizzarla</i> in due matrici: una <ILatex>{r`L`}</ILatex> triangolare inferiore, e una <ILatex>{r`U`}</ILatex> triangolare superiore.
</p>
<PLatex>{r`A = L \cdot U`}</PLatex>
<Example>
Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo <b>metodo di Gauss</b>.
</Example>
<p>
La matrice <ILatex>{r`L`}</ILatex> è così composta:
</p>
<PLatex>{r`
\begin{cases}
L_{ii} = 1 \qquad \qquad (diagonale)\\
L_{ik} = -\frac{A_{ik}}{A_{kk}} \qquad (tri.\ infer.)
\end{cases}
`}</PLatex>
<Example>
Sono i moltiplicatori usati per rendere annullare il triangolo inferiore!
</Example>
<p>
La matrice <ILatex>{r`U`}</ILatex> è così composta:
</p>
<PLatex>{r`
\begin{cases}
U_{ik} = A_{ik} \quad se\ i \leq k \quad (tri.\ super.)\\
U_{ik} = 0 \qquad se\ i > k \quad (tri.\ infer.)
\end{cases}
`}</PLatex>
<p>
Il sistema può essere poi risolto applicando due volte il metodo di sostituzione:
</p>
<PLatex>{r`
\begin{cases}
L \cdot y = b\\
U \cdot x = y
\end{cases}
`}</PLatex>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`{\color{Yellow} O\left(\frac{n^3}{3}\right)} + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
</Panel>
<Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> con pivoting</span>}>
<Todo>TODO</Todo>
<Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> con pivoting parziale</span>}>
<p>
È possibile applicare la fattorizzazione <ILatex>{r`LU`}</ILatex> a <b>qualsiasi matrice non-singolare</b> permettendo lo scambio (<i>pivoting</i>) delle righe, potenzialmente <b>aumentando la stabilità</b> dell'algoritmo.
</p>
<Example>
Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo <b>metodo di Gauss-Jordan</b>!
</Example>
<p>
Alla formula precedente si aggiunge una <Link href={"https://it.wikipedia.org/wiki/Matrice_di_permutazione"}>matrice di permutazione</Link> che indica quali righe sono state scambiate:
</p>
<PLatex>{r`P \cdot A = L \cdot U`}</PLatex>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`{\color{Yellow} O\left(\frac{n^2}{2}\right)} + O\left(\frac{n^3}{3}\right) + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
</Panel>
<Panel title={<span>Fattorizzazione <ILatex>{r`LDL^{-1}`}</ILatex></span>}>
<Todo>TODO</Todo>
</Panel>
<Panel title={<span>Fattorizzazione <ILatex>{r`\mathcal{L} \mathcal{L}^{-1}`}</ILatex></span>}>
<Todo>TODO</Todo>
<Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> con pivoting totale</span>}>
<p>
È possibile anche permettere il <i>pivoting</i> <b>sulle colonne</b> per <b>aumentare ulteriormente la stabilità</b> dell'algoritmo, a costo di maggiore costo computazionale:
</p>
<PLatex>{r`P \cdot A \cdot Q = L \cdot U`}</PLatex>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`{\color{Yellow} O\left(\frac{n^3}{3}\right)} + O\left(\frac{n^3}{3}\right) + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
</Panel>
</Section>
<Section>
<Panel title={<span>Fattorizzazione <ILatex>{r`LDL^{-1}`}</ILatex></span>}>
<p>
È possibile <b>ridurre la complessità computazionale</b> della fattorizzazione <ILatex>{r`LU`}</ILatex> se la matrice dei coefficienti è <b>simmetrica</b>:
</p>
<PLatex>{r`A = L \cdot D \cdot L^{-1}`}</PLatex>
<p>
In questo caso, si calcola solo la matrice L, utilizzando il <b>metodo di pavimentazione</b>.
</p>
<PLatex>{r`
\begin{cases}
d_{ii} = A_{ii} - \sum_{k=1}^{i-1} ( d_{kk} \cdot (l_{jk})^2 )\\
l_{ij} = \frac{A_{ij} - \sum_{k=1}^{j-1} l_{ik} \cdot d_{kk} \cdot l_{jk}}{d_ii}
\end{cases}
`}</PLatex>
<Example>
<p>
La prima colonna della matrice sarà:
</p>
<PLatex>{r`
\begin{cases}
d_{11} = A_{11}
l_{i1} = \frac{A_{i1}}{d_{11}}
\end{cases}
`}</PLatex>
<p>
La seconda colonna della matrice sarà:
</p>
<PLatex>{r`
\begin{cases}
d_{22} = A_{22} - d_{11} \cdot (l_{21})^2\\
l_{i2} = \frac{A_{i2} - l_{i1} \cdot d_{11} \cdot l_{21}}{d_ii}
\end{cases}
`}</PLatex>
</Example>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`{\color{Yellow} O\left(\frac{n^3}{6}\right)} + O\left(\frac{n^3}{3}\right) + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
</Panel>
<Panel title={<span>Fattorizzazione <ILatex>{r`\mathcal{L} \mathcal{L}^{-1}`}</ILatex></span>}>
<p>
È possibile dare <b>stabilità forte</b> alla fattorizzazione <ILatex>{r`LDL^{-1}`}</ILatex> se la matrice dei coefficienti è <b>simmetrica definita positiva</b>:
</p>
<PLatex>{r`A = \mathcal{L} \cdot \mathcal{L}^{-1}`}</PLatex>
<p>
Il <b>metodo di pavimentazione</b> diventa:
</p>
<PLatex>{r`
\begin{cases}
l_{ii} = \sqrt{A_{ii} - \sum_{k=1}^{i-1} (l_{ik})^2 }\\
l_{ij} = \frac{A_{ij} - \sum_{k=1}^{j-1} l_{ik} \cdot l_{jk}}{l_ii}
\end{cases}
`}</PLatex>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`O\left(\frac{n^3}{3}\right) + O\left(\frac{n^3}{3}\right) + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
</Panel>
</Section>
<Section>
<Panel title={"Trasformazione di Householder"}>
<p>
Matrice ricavata dalla seguente formula:
</p>
<PLatex>{r`U(v) = I - \frac{1}{\alpha} \cdot v \cdot v^T`}</PLatex>
<PLatex>{r`\alpha = \frac{1}{2} \| v \|_{(2)}^2`}</PLatex>
</Panel>
<Panel title={<span>Fattorizzazione <ILatex>{r`QR`}</ILatex></span>}>
<Todo>TODO</Todo>
<p>
Metodo che fornisce una <b>maggiore stabilità</b> a costo di una <b>maggiore complessità computazionale</b>.
</p>
<p>
La matrice <ILatex>{r`A`}</ILatex> viene <i>fattorizzata</i> in due matrici, una <b>ortogonale</b> <ILatex>{r`Q`}</ILatex> e una <b>triangolare superiore</b> <ILatex>{r`R`}</ILatex>:
</p>
<PLatex>{r`A = Q \cdot R`}</PLatex>
<p>
Le matrici si ottengono dal prodotto delle trasformazioni di Householder (<ILatex>{r`Q`}</ILatex> sulle colonne della matrice <ILatex>{r`A`}</ILatex>, trasformandola in una matrice triangolare superiore (<ILatex>{r`R`}</ILatex>).
</p>
<p>
Una volta fattorizzata, il sistema si può risolvere con:
</p>
<PLatex>{r`
\begin{cases}
y = Q^T \cdot b\\
R \cdot x = y
\end{cases}
`}</PLatex>
<p>
Questo metodo ha costo computazionale:
</p>
<PLatex>{r`{\color{Yellow} O\left(\frac{2 \cdot n^3}{3}\right)} + 2 \cdot O\left(\frac{n^2}{2}\right)`}</PLatex>
<p>
<Todo>TODO: l'algoritmo con tau per ricavare la q se non è in memoria</Todo>
</p>
</Panel>
</Section>
<Section title={"Metodi iterativi"}>
@ -355,7 +511,12 @@ export default function (props) {
</Section>
<Section title={"Problema: Interpolazione"}>
<Panel title={"Descrizione"}>
<Todo>TODO</Todo>
<p>
Si vuole trovare una funzione in grado di <b>approssimarne</b> un altra, di cui si conoscono però solo alcuni punti.
</p>
<Example>
È utile in un sacco di casi! Ad esempio, quando si vuole scalare un'immagine.
</Example>
</Panel>
</Section>
<Section title={"Metodi di interpolazione"}>