From 395f72f23f296fd2c9adec1f502d91b0a594d36d Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 22 Aug 2020 04:11:06 +0200 Subject: [PATCH] Add a few more things --- package-lock.json | 39 +++-- package.json | 4 +- src/components/Link.js | 31 ++-- src/components/MenuList.js | 9 ++ src/components/MenuList.less | 7 + src/index.js | 50 ++++--- src/routes/BasiDiDati.js | 11 +- src/routes/CalcoloNumerico.js | 199 +++++++++++++++----------- src/routes/Home.js | 162 +++++---------------- src/routes/RipassoDiAlgebraLineare.js | 47 +++++- 10 files changed, 293 insertions(+), 266 deletions(-) create mode 100644 src/components/MenuList.js create mode 100644 src/components/MenuList.less diff --git a/package-lock.json b/package-lock.json index e26928d..ae39709 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "appuntiweb", - "version": "0.5.8", + "version": "0.8.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2267,9 +2267,9 @@ "dev": true }, "bluelib": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/bluelib/-/bluelib-0.15.1.tgz", - "integrity": "sha512-ZedqpBtoAYsXfOpJOeZfXraYMH0k6HxRFplaQWNm7G5PXZssmRWO/nP7X+rWSlI5LBHDdmjycNA6VbtCNd6DNg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/bluelib/-/bluelib-0.15.2.tgz", + "integrity": "sha512-l+ePA0+bvDiLvn9FKs5ifYF4e0lKBVnMqhZcVvq1qmMfiKD/vzBvgg0TXX0koaBVGFl3Z9pVvfSSDSLEQqkWHg==", "requires": { "@fortawesome/fontawesome-svg-core": "^1.2.29", "@fortawesome/free-brands-svg-icons": "^5.13.1", @@ -4317,9 +4317,9 @@ "dev": true }, "dequal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-1.0.1.tgz", - "integrity": "sha512-Fx8jxibzkJX2aJgyfSdLhr9tlRoTnHKrRJuu2XHlAgKioN2j19/Bcbe0d4mFXYZ3+wpE2KVobUVTfDutcD17xQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" }, "des.js": { "version": "1.0.1", @@ -11910,13 +11910,28 @@ "dev": true }, "use-deep-compare-effect": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/use-deep-compare-effect/-/use-deep-compare-effect-1.3.1.tgz", - "integrity": "sha512-ejL+Al+aeDyC9Sywx56ti4PtSwkf6BH27tEptMWF2cfO41/auG0nRRsArh6Vv5bUyBe3z7IyxmgQCK5nas70hg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-deep-compare-effect/-/use-deep-compare-effect-1.4.0.tgz", + "integrity": "sha512-46rF7ULcRnxI4+1Zoul95+KB48hpn1MUH1aXEBMyU+Sh1KJDqrTAkwhnxQL6ydBAqu3gLebYylcr0zpVBzbxxQ==", "requires": { - "@babel/runtime": "^7.7.2", + "@babel/runtime": "^7.11.2", "@types/use-deep-compare-effect": "^1.2.0", - "dequal": "^1.0.0" + "dequal": "^2.0.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } } }, "util": { diff --git a/package.json b/package.json index eaac106..a650690 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "appuntiweb", - "version": "0.7.1", + "version": "0.8.0", "license": "AGPL-3.0-or-later", "scripts": { "start": "preact watch --template src/template.html", @@ -21,7 +21,7 @@ "@fortawesome/react-fontawesome": "^0.1.11", "@sentry/browser": "^5.19.0", "@sentry/integrations": "^5.19.0", - "bluelib": "^0.15.1", + "bluelib": "0.15.2", "chart.js": "^2.9.3", "css-loader": "^3.6.0", "file-loader": "^5.1.0", diff --git a/src/components/Link.js b/src/components/Link.js index c6dde3b..5724046 100644 --- a/src/components/Link.js +++ b/src/components/Link.js @@ -1,16 +1,23 @@ import ErrorAbbr from './ErrorAbbr'; import { - faDiscord, - faGithub, - faRedditAlien, - faSteam, - faTelegram, - faTwitch, - faTwitter, - faWikipediaW, - faYoutube + faDiscord, + faGithub, faGoogleDrive, + faRedditAlien, + faSteam, + faTelegram, + faTwitch, + faTwitter, + faWikipediaW, + faYoutube } from '@fortawesome/free-brands-svg-icons'; -import {faExternalLinkAlt, faLockOpen, faMagnet, faMugHot, faQuestion} from '@fortawesome/free-solid-svg-icons'; +import { + faEnvelope, + faExternalLinkAlt, + faLockOpen, + faMagnet, + faMugHot, + faQuestion +} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {BaseLink} from 'bluelib'; @@ -43,6 +50,8 @@ const icons = Object.freeze({ "discord.com": faDiscord, "ko-fi.com": faMugHot, + + "drive.google.com": faGoogleDrive, }); export default function (props) { @@ -65,6 +74,8 @@ export default function (props) { iconObj = null; } else if (url.protocol === "http:") { iconObj = faLockOpen; + } else if (url.protocol === "mailto:") { + iconObj = faEnvelope; } else if (url.protocol === "https:") { iconObj = icons[url.host]; if (iconObj === undefined) { diff --git a/src/components/MenuList.js b/src/components/MenuList.js new file mode 100644 index 0000000..db2f65a --- /dev/null +++ b/src/components/MenuList.js @@ -0,0 +1,9 @@ +import style from "./MenuList.less"; + +export default function(props) { + return ( + + ) +} \ No newline at end of file diff --git a/src/components/MenuList.less b/src/components/MenuList.less new file mode 100644 index 0000000..1027457 --- /dev/null +++ b/src/components/MenuList.less @@ -0,0 +1,7 @@ +.menulist { + font-size: large; + + small { + font-size: small; + } +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 9e636ad..aa8fb2c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; + let Sentry = null; if (process.env.NODE_ENV === "development") { console.debug("Initializing Preact Debugger...") @@ -29,7 +31,7 @@ import './meta/favicon.ico'; import Router from 'preact-router'; import {createHashHistory} from "history"; -import {BasicContainer, Bluelib, BoxColors, CurrentPage, LatexRenderColor, Panel} from "bluelib"; +import {BasicContainer, Bluelib, BoxColors, CurrentPage, LatexRenderColor, Panel, Todo} from "bluelib"; import Home from './routes/Home'; import Fisica from './routes/Fisica'; import VlDiGeometria from './routes/VlDiGeometria'; @@ -45,6 +47,7 @@ import AlgoritmiEStruttureDati from "./routes/AlgoritmiEStruttureDati"; import {useState} from "preact/hooks"; import Link from "./components/Link"; import RipassoDiAlgebraLineare from "./routes/RipassoDiAlgebraLineare"; +import {faPrint} from "@fortawesome/free-solid-svg-icons"; // noinspection JSUnusedGlobalSymbols export default function (props) { @@ -53,20 +56,29 @@ export default function (props) { setCurrentPage(event.url); }; - let [latexColor, _setLatexColor] = useState("White"); - - function setLatexColor(color) { - return function () { - _setLatexColor(color); - } - } + let [latexColor, setLatexColor] = useState("White"); function stampa() { - return function () { - print(); - } + setLatexColor("Black"); + print(); + setLatexColor("White"); } + /* + + + + */ + return ( @@ -76,19 +88,11 @@ export default function (props) { Appuntiweb di Steffo + + + TODO: Non funziona ancora come dovrebbe. + - -
    -
  • - Per stampare la pagina, , poi clicca . -
  • -
  • - Per riportare la pagina alla normalità, . -
  • -
-
diff --git a/src/routes/BasiDiDati.js b/src/routes/BasiDiDati.js index 27d315f..f04a7fa 100644 --- a/src/routes/BasiDiDati.js +++ b/src/routes/BasiDiDati.js @@ -7,21 +7,12 @@ export default function (props) { return (

Basi di dati

-
+
- -

- Se sei uno studente dell'Unimore, puoi accedere all'archivio del - corso su Google Drive. -

-
-
-

Uno scritto con tre domande: diff --git a/src/routes/CalcoloNumerico.js b/src/routes/CalcoloNumerico.js index 7590078..2577409 100644 --- a/src/routes/CalcoloNumerico.js +++ b/src/routes/CalcoloNumerico.js @@ -1,5 +1,7 @@ -import {ILatex, Panel, PLatex, Section, Timer} from "bluelib"; +import {ILatex, Panel, PLatex, Section, Timer, Todo} from "bluelib"; import Example from "../components/Example"; +import Link from "../components/Link"; +import MenuList from "../components/MenuList"; const r = String.raw; @@ -8,27 +10,12 @@ export default function (props) { return (

Calcolo Numerico

-
+
- -

- Se sei uno studente dell'Unimore, puoi accedere all'archivio del - corso su Google Drive.. -

-
- -

- Prima di studiare Calcolo Numerico, guardati i prerequisiti - di Algebra Lineare! -

-
-
-

E' composto da: @@ -38,16 +25,29 @@ export default function (props) {

  • 1 domanda di implementazione algoritmo in MATLAB
  • - +
    1. +
    +
    + +

    + Prima di iniziare a studiare Calcolo Numerico, potrebbe essere una buona idea ripassare un pochino Algebra Lineare: +

    + +
  • + Ripasso di Algebra Lineare (per studenti sperduti di Calcolo Numerico) +
  • +
    +
    +

    - Algoritmi che hanno: + Particolari algoritmi che hanno:

    • numeri reali in input e output
    • @@ -114,7 +114,7 @@ export default function (props) {

      - L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla precisione + Un numero reale rappresentato in virgola mobile ha un errore relativo minore o uguale alla precisione di macchina:

      @@ -163,11 +163,11 @@ export default function (props) {

        -
      • Hanno più di un elemento neutro.
      • -
      • Un numero ha più opposti.
      • -
      • Non sono associative.
      • -
      • Non sono distributive.
      • -
      • Non vale la legge di annullamento del prodotto.
      • +
      • Hanno più elementi neutri.
      • +
      • Un numero ha più opposti.
      • +
      • Non sono associative.
      • +
      • Non sono distributive.
      • +
      • Non vale la legge di annullamento del prodotto.
      @@ -177,7 +177,7 @@ export default function (props) { Errore derivato da underflow sui dati.

      - Si indica con {r`\epsilon_{variabile}`}. + Si indica con {r`\epsilon_{nome\_var}`}.

      L'errore sulla variabile x si indica con {r`\epsilon_{x}`}. @@ -188,7 +188,7 @@ export default function (props) { Errore derivato da underflow durante l'esecuzione dell'algoritmo.

      - Si indica con {r`\epsilon_{passo}`}. + Si indica con {r`\epsilon_{num\_passo}`}.

      L'errore al primo passo dell'algoritmo si indica con {r`\epsilon_{1}`}. @@ -245,79 +245,112 @@ export default function (props) {

    - -
    - -

    - Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero. -

    -

    - Si ricavano dalle norme vettoriali: -

    -

    - {r`\Vert A \Vert = sup_{x \in \mathbb{R}, x \neq 0} \frac{\Vert A \cdot x \Vert}{\Vert x \Vert}`} -

    - - sup è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le - prime lezioni di Analisi? - +
    + + TODO - -

    - Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice. -

    -

    - {r`\Vert A \Vert_\infty = max_{i = 1..n} \sum_{j = 1}^n | a_{ij} |`} -

    -
    - -

    - Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice. -

    -

    - {r`\Vert A \Vert_1 = max_{j = 1..n} \sum_{i = 1}^n | a_{ij} |`} -

    -
    - -

    - Radice quadrata del rango del prodotto tra una matrice e la sua trasposta. -

    -

    - {r`\Vert A \Vert_2 = \sqrt{\rho ( A^T \times A ) }`} -

    -
    -
    -
    - +

    + Il condizionamento della risoluzione di sistemi lineari è: +

    {r`\frac{{\color{yellow} \|A\| \cdot \|A^{-1}\|} \cdot \| \Delta b \|}{\| b \|}`}

    - In particolare, le numero di condizionamento: + In particolare, è segnato in giallo nella formula il numero di condizionamento:

    - {r`k(A) = `} + {r`k(A) = \| A \| \cdot \| A^{-1} \|`}
    -
    - +
    +

    - La fattorizzazione è il processo che permette di risolvere sistemi di equazioni lineari - rappresentati in forma di matrice. + Metodi che trovano la soluzione esatta* di un sistema lineare.

    - Esistono molteplici algoritmi in grado di realizzarla: mentre tutti portano alla stessa - soluzione, possono avere velocità e indici algoritmici diversi. + Tipicamente prevedono la fattorizzazione della matrice dei coefficienti in due sottomatrici più facili da risolvere.

    - Il sistema lineare da risolvere viene diviso in due parti: la matrice dei coefficienti e - il vettore termine noto. + Generalmente hanno una complessità temporale {r`O(n^3)`}.

    - +

    - + Metodi che trovano una soluzione imperfetta* di un sistema lineare.

    +

    + Tipicamente prevedono l'applicazione ripetuta di un metodo, in base al quale cambia la velocità di convergenza alla soluzione. +

    +

    + Generalmente hanno una complessità temporale {r`O(n^2)`}. +

    +
    +
    +
    + + TODO + + + TODO + +
    +
    + Fattorizzazione {r`LU`}}> + TODO + + Fattorizzazione {r`LU`} con pivoting}> + TODO + + Fattorizzazione {r`LDL^{-1}`}}> + TODO + + Fattorizzazione {r`\mathcal{L} \mathcal{L}^{-1}`}}> + TODO + +
    +
    + Fattorizzazione {r`QR`}}> + TODO + +
    +
    + + TODO + + + TODO + +
    +
    + + TODO + + + TODO + +
    +
    + + TODO + + + TODO + +
    +
    + + TODO + + + TODO + +
    +
    + + TODO + + + TODO
    diff --git a/src/routes/Home.js b/src/routes/Home.js index a9bf7c7..0e23997 100644 --- a/src/routes/Home.js +++ b/src/routes/Home.js @@ -1,147 +1,61 @@ -import {BaseLink, Panel, Section, Todo} from "bluelib"; +import {BaseLink, Panel, Section, Split, Todo} from "bluelib"; import Link from "../components/Link"; +import MenuList from "../components/MenuList"; export default function (props) { return (
    -
    - Calcolo Numerico}> +
    +

    - Appunti scritti mentre studiavo per l'esame di Calcolo Numerico del corso triennale di - Informatica all'Unimore. + Ciao! Benvenuto ad Appuntiweb, il sito dove carico tutto il materiale che uso per studiare!

    -
    - Ottimizzazione lineare intera}>

    - Appunti scritti mentre studiavo per l'esame di Ottimizzazione lineare intera del corso triennale di - Informatica all'Unimore. + Se trovi un errore negli appunti o un bug del sito, segnalamelo su GitHub :)

    -
    - Basi di dati}> +
    +

    - Appunti scritti mentre studiavo per l'esame di Basi di dati del corso triennale di - Informatica all'Unimore. + Devo ancora dare questi esami, quindi queste pagine potrebbero essere incomplete o errate. Usate a vostro rischio e pericolo!

    + +
  • Calcolo Numerico
  • +
  • Ottimizzazione lineare intera
  • +
    - Apprendimento ed evoluzione in sistemi artificiali}> +

    - Appunti scritti mentre studiavo per l'esame di Apprendimento ed evoluzione in sistemi - artificiali del corso - triennale di Informatica all'Unimore. -

    -
    - Statistica ed elementi di probabilità}> -

    - Appunti scritti mentre studiavo per l'esame di Statistica - ed elementi di probabilità del corso triennale di - Informatica all'Unimore del - Prof. Luca La - Rocca. -

    -
    - Cleaver}> -

    - Progetto in Java sviluppato per l'esame di Programmazione - ad Oggetti del corso - triennale di Informatica all'Unimore, tenuto dai Prof. Giacomo Cabri e Nicola Capodieci. -

    -
    - Fisica}> -

    - Appunti delle lezioni di - Fisica del corso - triennale di Informatica all'Unimore, tenute dalla Prof.ssa Rossella - Brunetti nel primo semestre dell'Anno Accademico 2019/2020. -

    -
    - Sistemi - Operativi}> -

    - Soluzioni agli Arzigogoli proposti - dal Prof. Mauro - Andreolini durante le lezioni - di Sistemi Operativi del corso triennale di - Informatica all'Unimore tenutesi - nel primo semestre dell'Anno Accademico 2019/2020. -

    -
    - Algoritmi e Strutture Dati}> -

    - Appunti delle lezioni - di Algoritmi e Strutture Dati del corso triennale di - Informatica all'Unimore, tenute - dalla Prof.ssa - Manuela Montangero nel secondo semestre dell'Anno Accademico 2018/2019. -

    -

    - TODO: finisci di migrare da GitHub! -

    -
    - Videolezioni di Geometria}> -

    - Ottime videolezioni di Geometria con licenza CC BY-NC-SA 4.0 che ho - trovato sul portale - Dolly 2018 dell'Unimore. -

    -
    - Come installare MinGW}> -

    - Un breve tutorial con immagini su come installare e configurare MinGW per compilare programmi C e C++ su - Windows. + Ho passato questi esami, quindi probabilmente questi appunti sono giusti :)

    + +
  • Basi di dati (non c'è molto, avendo già fatto gli stessi argomenti alle superiori non ho avuto bisogno di studiare)
  • +
  • Apprendimento ed evoluzione in sistemi artificiali
  • +
  • Statistica ed elementi di probabilità
  • +
  • Progetto Java per Programmazione a Oggetti
  • +
  • Fisica
  • +
  • Arzigogoli di Sistemi Operativi
  • +
  • Algoritmi e Strutture Dati (appunti importati dalla vecchia piattaforma; le formule non si vedono più purtroppo)
  • +
    -
    - unimore-informatica}> -

    - Un topic di GitHub che raccoglie tutti i repository realizzati dagli studenti di Informatica - dell'Unimore. -

    +
    + + +
  • Ripasso di Algebra Lineare (per studenti sperduti di Calcolo Numerico)
  • +
  • Come installare MinGW (per studenti sperduti di Programmazione 2)
  • +
  • Videolezioni di Geometria (per studenti sperduti di Algebra Lineare)
  • +
    - Unimore Informatica}> -

    - Il gruppo Telegram del corso di Informatica - dell'Unimore! -

    -
    - Calendario - Lezioni}> -

    - Calendario Google quasi sempre aggiornato delle lezioni e degli esami del secondo - anno dell'Unimore durante l'Anno Accademico - 2019/2020. -

    -
    - Erre2}> -

    - Portale contenente appunti e riassunti mantenuto da Lorenzo Balugani. -

    + + +
  • Erre2
  • +
  • Tag GitHub: unimore-informatica
  • +
  • Network Telegram: Unimore Informatica
  • +
  • Solo studenti Unimore: Archivio Lezioni
  • +
    diff --git a/src/routes/RipassoDiAlgebraLineare.js b/src/routes/RipassoDiAlgebraLineare.js index f6982b7..855c24f 100644 --- a/src/routes/RipassoDiAlgebraLineare.js +++ b/src/routes/RipassoDiAlgebraLineare.js @@ -7,7 +7,7 @@ const r = String.raw; export default function (params) { return (
    -

    Ripasso di Algebra Lineare per Calcolo +

    Ripasso di Algebra Lineare per Calcolo Numerico

    @@ -169,7 +169,7 @@ export default function (params) {
    -
    +

    Funzione che associa un valore positivo a ogni vettore diverso da 0, e 0 al vettore zero. @@ -203,6 +203,49 @@ export default function (params) { {r`\Vert x \Vert_2 = \sqrt{\sum_{i = 1}^n x_i^2}`}

    +
    +
    + +

    + Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero. +

    +

    + Si ricavano dalle norme vettoriali: +

    +

    + {r`\Vert A \Vert = sup_{x \in \mathbb{R}, x \neq 0} \frac{\Vert A \cdot x \Vert}{\Vert x \Vert}`} +

    + + sup è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le + prime lezioni di Analisi? + +
    + +

    + Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice. +

    +

    + {r`\Vert A \Vert_\infty = max_{i = 1..n} \sum_{j = 1}^n | a_{ij} |`} +

    +
    + +

    + Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice. +

    +

    + {r`\Vert A \Vert_1 = max_{j = 1..n} \sum_{i = 1}^n | a_{ij} |`} +

    +
    + +

    + Radice quadrata del rango del prodotto tra una matrice e la sua trasposta. +

    +

    + {r`\Vert A \Vert_2 = \sqrt{\rho ( A^T \times A ) }`} +

    +
    +
    +

    Le norme sono usate per calcolare l'errore relativo tra due vettori o matrici: