diff --git a/.github/workflows/md-to-pdf.yml b/.github/workflows/md-to-pdf.yml new file mode 100644 index 0000000..607c6f6 --- /dev/null +++ b/.github/workflows/md-to-pdf.yml @@ -0,0 +1,76 @@ +# .github/workflows/convert-to-pdf.yml + +name: Docs to PDF +# This workflow is triggered on pushes to the repository. +on: + push: + branches: + - main + # Paths can be used to only trigger actions when you have edited certain files, such as a file within the /docs directory + paths: + - 'teoria/**.md' + +jobs: + converttopdf: + name: Build PDF + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Flatten image directory by copying + run: | + find teoria/images -type f -name "*.png" -exec cp {} teoria/images/ \; + find teoria/images -type f -name "*.jpg" -exec cp {} teoria/images/ \; + find teoria/images -type f -name "*.jpeg" -exec cp {} teoria/images/ \; + find teoria/images -type f -name "*.gif" -exec cp {} teoria/images/ \; + find teoria/images -type f -name "*.svg" -exec cp {} teoria/images/ \; + ls -la teoria/images + + - name: Preprocess Obsidian Markdown + run: | + find teoria -type f -name "*.md" -exec sed -i 's/!\[\[\(.*\)\]\]/![\1](images\/\1)/g' {} + + find teoria -type f -name "*.md" -exec sed -i '/table-of-contents/{N;d;}' {} + + + # https://github.com/BaileyJM02/markdown-to-pdf + - name: Convert Markdown to PDF + uses: baileyjm02/markdown-to-pdf@v1 + with: + input_dir: teoria + output_dir: tmp/ + images_dir: teoria/images/** + build_pdf: true + build_html: false + table_of_contents: true + + - name: Configure Git + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + - name: Refactor artifacts + run: | + ls -la + ls -la tmp + mkdir -p artifacts/pdf + cp tmp/*.pdf artifacts/pdf/ || echo "No PDF files to copy" + ls -la artifacts/pdf + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: docs-pdf + path: artifacts + + - name: Commit and Push artifacts + run: | + git pull + git add artifacts/ + if git diff --cached --quiet; then + echo "No changes to commit." + else + git commit -m "Add generated artifacts [PDF]" + git push + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..698aaa2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.obsidian/* diff --git a/README.md b/README.md index 8811670..4639df9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Guida directory: ├── code | └── utils ├── teoria -└── slides +└── appunti ``` --- diff --git a/appunti/BINOM.pdf b/appunti/BINOM.pdf new file mode 100644 index 0000000..f57ede4 Binary files /dev/null and b/appunti/BINOM.pdf differ diff --git a/appunti/DistribuzioneStazionariaProcessoEhrenfest.pdf b/appunti/DistribuzioneStazionariaProcessoEhrenfest.pdf new file mode 100644 index 0000000..08cc7f0 Binary files /dev/null and b/appunti/DistribuzioneStazionariaProcessoEhrenfest.pdf differ diff --git a/appunti/ModelloDiEhrenfest.pdf b/appunti/ModelloDiEhrenfest.pdf new file mode 100644 index 0000000..8ceb9c2 Binary files /dev/null and b/appunti/ModelloDiEhrenfest.pdf differ diff --git a/appunti/TreCarte.pdf b/appunti/TreCarte.pdf new file mode 100644 index 0000000..c92c70b Binary files /dev/null and b/appunti/TreCarte.pdf differ diff --git a/pdf/esercizi.pdf b/appunti/esercizi.pdf similarity index 100% rename from pdf/esercizi.pdf rename to appunti/esercizi.pdf diff --git a/artifacts/pdf/01-TreCarte.pdf b/artifacts/pdf/01-TreCarte.pdf new file mode 100644 index 0000000..7a542ac Binary files /dev/null and b/artifacts/pdf/01-TreCarte.pdf differ diff --git a/artifacts/pdf/02-Ehrenfest.pdf b/artifacts/pdf/02-Ehrenfest.pdf new file mode 100644 index 0000000..39a9763 Binary files /dev/null and b/artifacts/pdf/02-Ehrenfest.pdf differ diff --git a/artifacts/pdf/03-Binomial.pdf b/artifacts/pdf/03-Binomial.pdf new file mode 100644 index 0000000..c7c13fc Binary files /dev/null and b/artifacts/pdf/03-Binomial.pdf differ diff --git a/teoria/.obsidian/app.json b/teoria/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/teoria/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/teoria/.obsidian/appearance.json b/teoria/.obsidian/appearance.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/teoria/.obsidian/appearance.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/teoria/.obsidian/core-plugins.json b/teoria/.obsidian/core-plugins.json new file mode 100644 index 0000000..b977c25 --- /dev/null +++ b/teoria/.obsidian/core-plugins.json @@ -0,0 +1,31 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": true, + "webviewer": false +} \ No newline at end of file diff --git a/teoria/.obsidian/workspace.json b/teoria/.obsidian/workspace.json new file mode 100644 index 0000000..ab7bea1 --- /dev/null +++ b/teoria/.obsidian/workspace.json @@ -0,0 +1,171 @@ +{ + "main": { + "id": "6a8905840fad29dd", + "type": "split", + "children": [ + { + "id": "59d195e6991661fb", + "type": "tabs", + "children": [ + { + "id": "f50e309295e582fe", + "type": "leaf", + "state": { + "type": "empty", + "state": {}, + "icon": "lucide-file", + "title": "New tab" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "6d5ba040019b532f", + "type": "split", + "children": [ + { + "id": "ac252365fa1b0730", + "type": "tabs", + "children": [ + { + "id": "500d5a19f68a511d", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + }, + { + "id": "60a617c1416935d6", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "9846a5457530175b", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "677b83d133463f4c", + "type": "split", + "children": [ + { + "id": "7fde1367a3df56e6", + "type": "tabs", + "children": [ + { + "id": "4d99918a2c27646c", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks" + } + }, + { + "id": "6fa83e9c1a122aab", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "c03c1014b19f525f", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "3e13cfc1efc4b2ab", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Untitled.md", + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline of Untitled" + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "500d5a19f68a511d", + "lastOpenFiles": [ + "images/test.png", + "images", + "Untitled.md" + ] +} \ No newline at end of file diff --git a/teoria/01-TreCarte.md b/teoria/01-TreCarte.md index 4f7e678..02d51d6 100644 --- a/teoria/01-TreCarte.md +++ b/teoria/01-TreCarte.md @@ -1,6 +1,8 @@ +# Problema delle 3 carte + Per iniziare a familiarizzare con il termine *simulazione*, si consideri il famoso [Problema di Monty Hall](https://it.wikipedia.org/wiki/Problema_di_Monty_Hall), rappresentato in questo caso da 3 carte, di cui una sola vincente. -Dopo una prima scelta del giocatore a carte coperte, il mazziere scopre una carta NON vincente tra le carte NON scelte. A questo punto al giocatore viene chiesto se vuole mantenere la sua scelta o cambiarla con l'altra carta rimasta. Quale scelta conviene prendere al giocatore per vincere? +Dopo una prima scelta del giocatore a carte coperte, il mazziere scopre una carta NON vincente tra le carte NON scelte (2). A questo punto al giocatore viene chiesto se vuole mantenere la sua scelta o cambiarla con l'altra carta rimasta. Quale scelta conviene prendere al giocatore per vincere? Utilizzando la cosiddetta formula classica della probabilità a priori è possibile descrivere bene il problema e dare una risposta consistente, ma per il momento verrà utilizzato un approccio più intuitivo. @@ -11,9 +13,9 @@ Uno dei modi per farlo è, infatti, cercare di simulare il problema al calcolato ### Approccio frequentista La simulazione calcola le frequenze di vittoria a seconda della strategia scelta dal giocatore, che possiamo riassumere in 3 casi: -- mantenere la scelta originale; -- cambiare scelta; -- scegliere a caso se mantenere o cambiare scelta. +1. mantenere la scelta originale; +2. cambiare scelta; +3. scegliere a caso se mantenere o cambiare scelta. -La frequenza di realizzazione di un evento è calcolabile come numero di realizzazioni diviso numero di tentativi effettuati. Queste frequenze tendono a stabilizzarsi su valori precisi, che corrispondono proprio ai valori delle probabilità a priori. +La frequenza di realizzazione di un evento è calcolabile come il rapporto tra numero di realizzazioni e numero di tentativi effettuati. Queste frequenze tendono a stabilizzarsi su valori precisi, che corrispondono proprio ai valori delle probabilità a priori. In particolare, le strategie descritte sopra hanno probabilità di vittoria $1 \over 3$, $2 \over 3$ e $1 \over 2$, rispettivamente. diff --git a/teoria/02-Ehrenfest.md b/teoria/02-Ehrenfest.md index 818bbe8..f341ce0 100644 --- a/teoria/02-Ehrenfest.md +++ b/teoria/02-Ehrenfest.md @@ -1,4 +1,6 @@ -Tante volte un problema può essere troppo complicato per una diretta simulazione: vuoi per il gran numero di gradi di libertà coinvolti, vuoi per la intrinseca difficoltà della sua dinamica (ad esempio, instabilità numeriche). +# Modello di Ehrenfest + +Tante volte un problema può essere troppo complicato per una simulazione diretta: vuoi per il gran numero di gradi di libertà coinvolti, vuoi per la intrinseca difficoltà della sua dinamica (ad esempio, instabilità numeriche). In molti casi, questo fatto ci spinge a risolvere un problema più semplice e quindi formulare un _modello_ che ci lasci speranza di arrivare ad una soluzione. @@ -101,6 +103,6 @@ $$ \rho(x) = 2^{-N} \sum_{n=0}^N \binom{N}{n} x^n = \sum_{n=0}^N p_n \, x^n Possiamo riscrivere le probabilità $p_n$ in questo modo: $$ p_n = \binom{N}{n} \left(\frac{1}{2}\right)^n \left(1 - \frac{1}{2}\right)^{N-n}$$ Convincendosi di questo, ci si accorge che la formula corrisponde alla _funzione di densità probabilistica_ della [distribuzione binomiale](https://it.wikipedia.org/wiki/Distribuzione_binomiale), ovvero: -$$\mathcal{B}_{N,\,p}(n) , \; p=\frac{1}{2} $$ -Negli appunti a seguire verrà studiata più nel dettaglio questa distribuzione, con particolare attenzione ai [momenti](https://it.wikipedia.org/wiki/Momento_(probabilit%C3%A0)) e alla relazione con la [matrice stocastica](https://it.wikipedia.org/wiki/Matrice_stocastica) del processo. +$$ \mathcal{B}_{N,\,p}(n) , \; p=\frac{1}{2} $$ +Negli appunti successivi verrà studiata più nel dettaglio questa distribuzione, con particolare attenzione ai [momenti](https://it.wikipedia.org/wiki/Momento_(probabilit%C3%A0)) e alla relazione con la [matrice stocastica](https://it.wikipedia.org/wiki/Matrice_stocastica) del processo. diff --git a/teoria/03-Binomial.md b/teoria/03-Binomial.md new file mode 100644 index 0000000..e0d9026 --- /dev/null +++ b/teoria/03-Binomial.md @@ -0,0 +1,39 @@ +Dall'ultima lezione sul modello di Ehrenfest si era arrivati alla conclusione che la probabilità di trovare $n$ biglie nell'urna di riferimento (ed $N-n$ nell'altra) ad un tempo $t$ significativo (ovvero che tende a $\infty$) è descritta da una [_distribuzione binomiale_](https://it.wikipedia.org/wiki/Distribuzione_binomiale). + +Questa tipologia di distribuzione descrive un esperimento di prove ripetute. In particolare, la formula +$$ \mathcal{B}_{N, \,p} (n) = \binom{N}{n} \, p^n(1-p)^{N-n} $$ +contiene i parametri: +- $N$ : numero di prove totali; +- $n$ : numero di prove vincenti; +- $p$ : probabilità di successo sulla singola prova. + +### Momenti +I _momenti_ principali della distribuzione binomiale sono il _valore atteso_(anche _media/speranza matematica_) e la _varianza_(anche _secondo momento centrato_). + +La definizione del valore atteso di una variabile aleatoria è +$$ \mathbb{E}\left[m\right] = \sum_{i=1}^{\infty} m_i \, p_i $$ +Mentre per la varianza vale +$$ \sigma_{m}^2 = \mathbb{E} \left[ (m - \mathbb{E}\left[ m \right])^2 \right] $$ +Queste definizioni sono entrambe ricavabili partendo dal [binomio di Newton](https://it.wikipedia.org/wiki/Teorema_binomiale) +$$ (p+q)^n = \sum_{m=0}^n \binom{n}{m} p^m \, q^{n-m} $$ +Il primo passo è quello di derivare una volta rispetto a $p$ +$$ n\,(p+q)^{n-1} = \sum_{m=1}^n \binom{n}{m}m\,p^{m-1}q^{n-m} $$ +Poi, moltiplicando ambo i membri per $p$ +$$ n\,p\,(p+q)^{n-1} = \sum_{m=0}^n \binom{n}{m}m\,p^m q^{n-m} $$ +e assegnando $q = 1-p$ e dunque $p+q=1$, si ottiene il risultato che si voleva dimostrare inizialmente +$$ n\,p = \sum_{m=0}^n m\binom{n}{m} \, p^m(1-p)^{n-m} $$ +Allo stesso modo, per ricavare la varianza si utilizza la derivata seconda partendo dal binomio +$$ n\,(n-1)\, \left(p+q\right)^{n-2} = \sum_{m=2}^n \binom{n}{m} m \left(m-1\right) \, p^{m-2} q^{n-m} $$ +e si moltiplica per il termine $p^2$ +$$ n\,(n-1)\,p^2 \, \left(p+q\right)^{n-2} = \sum_{m=2}^n \binom{n}{m} m \left(m-1\right) \, p^m q^{n-m} $$ +si aggiunge poi il vincolo $p+q=1$ +$$ n\,(n-1)\,p^2 = \sum_{m=0}^n m \left(m-1\right) \, \mathcal{B}_{n,p}(m) = \sum_{m=0}^n m^2\,\mathcal{B}_{n,p}(m) - \sum_{m=0}^n m\,\mathcal{B}_{n,p}(m) $$ +$$ n^2p^2 - np^2 = \mathbb{E}\left[m^2\right] - \mathbb{E}\left[m\right] += \left(\mathbb{E}\left[m\right]\right)^2 - np^2 = \mathbb{E}\left[m^2\right] - np +$$ +da cui +$$ \sigma_m^2 = \mathbb{E}\left[m^2\right] - \left(\mathbb{E}\left[m\right]\right)^2 = np - np^2 = n\,p\,(1-p) $$ + + + + diff --git a/teoria/images/test.png b/teoria/images/test.png new file mode 100644 index 0000000..e69de29