mirror of
https://github.com/Steffo99/unisteffo.git
synced 2024-11-29 11:24:18 +00:00
1 line
No EOL
103 KiB
Text
Generated
1 line
No EOL
103 KiB
Text
Generated
{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./routes/CalcoloNumerico/03_Interpolazione.js","webpack:///./components/MenuList.less","webpack:///./routes/CalcoloNumerico/02_ZeriDiFunzione.js","webpack:///./routes/CalcoloNumerico/04_InterpolazioneATratti.js","webpack:///./components/MenuList.js","webpack:///./components/Example.js","webpack:///./routes/CalcoloNumerico/01_SistemiLineari.js","webpack:///./routes/CalcoloNumerico/index.js","webpack:///./routes/CalcoloNumerico/00_Intro.js","webpack:///./routes/CalcoloNumerico/05_ApprossimazioneDatiSperimentali.js"],"names":["module","exports","r","String","raw","title","props","class","style","menulist","children","example","href"],"mappings":"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","file":"route-CalcoloNumerico.chunk.ac864.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"red\":\"red__2y1B_\",\"orange\":\"orange__dD2kx\",\"yellow\":\"yellow__OEpwl\",\"lime\":\"lime__CVe41\",\"cyan\":\"cyan__26ZAg\",\"blue\":\"blue__LO7Xm\",\"magenta\":\"magenta__1Akee\",\"example\":\"example__2PzAa\"};","import {Fragment} from \"preact\";\nimport {ILatex, Panel, PLatex, Section, Todo} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problema: Interpolazione\"}>\n <Panel title={\"Descrizione\"}>\n <p>\n Si vuole trovare una funzione in grado di <b>approssimarne</b> un'altra, di cui si conoscono\n però solo alcuni punti.\n </p>\n <Example>\n È utile in un sacco di casi! Ad esempio, quando si vuole scalare un'immagine.\n </Example>\n <p>\n I punti sono detti <b>nodi</b> <ILatex>{r`(x_i, y_i)`}</ILatex>, mentre la funzione costruita su\n di essi è detta <b>interpolante</b> <ILatex>{r`g`}</ILatex>:\n </p>\n <PLatex>{r`g(x_i) = y_i`}</PLatex>\n <p>\n Dato un insieme di punti, esistono <b>infinite</b> funzioni interpolanti.\n </p>\n </Panel>\n <Panel title={\"Interpolazione polinomiale\"}>\n <p>\n Il <u>teorema fondamentale dell'algebra</u> dice che <b>esiste una sola\n interpolante <i>polinomiale</i></b> che interpola un dato insieme di punti.\n </p>\n <p>\n Con <ILatex>n+1</ILatex> punti, l'interpolante sarà al massimo di grado <ILatex>n</ILatex>, e\n viene detta <ILatex>{r`p_n`}</ILatex>.\n </p>\n <p>\n La sua <b>forma canonica</b> sarà:\n </p>\n <PLatex>{r`p_n(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \\dots + a_n x^n`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Metodi di interpolazione\"}>\n <Panel title={\"Metodo dei coefficienti indeterminati\"}>\n <p>\n È possibile scrivere la forma canonica come <b>matrice</b>:\n </p>\n <PLatex>{r`A \\cdot x = b`}</PLatex>\n <p>\n Costruiamo la <b>matrice di Vandermonde</b>:\n </p>\n <PLatex>{r`\n A =\n \\begin{pmatrix}\n 1 & x_0 & x_0^2 & \\dots & x_0^n\\\\\\\\\n 1 & x_1 & x_1^2 & \\dots & x_1^n\\\\\\\\\n 1 & x_2 & x_2^2 & \\dots & x_2^n\\\\\\\\\n \\vdots & \\vdots & \\vdots & \\ddots & \\vdots\\\\\\\\\n 1 & x_n & x_n^2 & \\dots & x_n^n\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Costruiamo il <b>vettore delle incognite</b>:\n </p>\n <PLatex>{r`\n x = \n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n a_2\\\\\\\\\n \\vdots\\\\\\\\\n a_n\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Costruiamo il <b>vettore dei termini noti</b>:\n </p>\n <PLatex>{r`\n b =\n \\begin{pmatrix}\n y_0\\\\\\\\\n y_1\\\\\\\\\n y_2\\\\\\\\\n \\vdots\\\\\\\\\n y_n\n \\end{pmatrix}\n `}</PLatex>\n <Example>\n Per trovare il polinomio di interpolazione è sufficiente risolvere il problema!\n </Example>\n <p>\n È efficace perchè una volta calcolati i coefficienti essi <b>valgono per tutti i punti</b>, ma\n ha come svantaggio che la matrice di Vandermonde è <b>spesso malcondizionata.</b>\n </p>\n </Panel>\n <Panel title={\"Metodo di Lagrange\"}>\n <p>\n È possibile scrivere il polinomio di interpolazione <b>raccogliendo\n le <ILatex>{r`y`}</ILatex></b>:\n </p>\n <PLatex>{r`p_n (x) = y_0 L_0 + y_1 L_1 + y_2 L_2 + \\dots + y_n L_n`}</PLatex>\n <p>\n I polinomi <ILatex>{r`L_k`}</ILatex> sono detti <b>polinomi di Lagrange</b>, e hanno le seguenti\n proprietà:\n </p>\n <ul>\n <li>\n Valgono <ILatex>1</ILatex> in corrispondenza del nodo con lo stesso\n indice, <ILatex>0</ILatex> in corrispondenza dei nodi con indice diverso\n e <ILatex>{r`0 < n < 1`}</ILatex> in tutti gli altri casi.\n\n <PLatex>{r`\n \\begin{cases}\n L_k(x_k) = 1 \\qquad (nel\\ nodo)\\\\\n L_k(x_j) = 0 \\qquad (altri\\ nodi)\n \\end{cases}\n `}</PLatex></li>\n <li>\n Si compongono con questo prodotto:\n\n <PLatex>{r`L_k = \\frac{(x - x_0) \\cdot \\dots \\cdot (x - x_{k-1}) \\cdot (x - x_{k+1}) \\cdot \\dots \\cdot (x_k - x_n)}{(x_k - x_0) \\cdot \\dots \\cdot (x_k - x_{k-1}) \\cdot (x_k - x_{k+1}) \\cdot \\dots \\cdot (x_k - x_n)}`}</PLatex>\n </li>\n </ul>\n <Example>Non c'è il termine con <ILatex>{r`x_k`}</ILatex>!</Example>\n <p>\n Tutti insieme formano la <b>base di Lagrange</b>.\n </p>\n <Example>Si chiama base perchè sono <b>linearmente indipendenti</b>!</Example>\n <p>\n Questo metodo permette di calcolare il valore del polinomio di interpolazione <b>in un singolo\n punto</b>:\n </p>\n <Example>\n <p>\n Si può risparmiare tempo di calcolo calcolando una singola volta il numeratore\n con <i>tutti</i> i termini:\n </p>\n <PLatex>{r`\\omega_n = (x - x_0) \\cdot (x - x_1) \\cdot \\dots \\cdot (x - x_n)`}</PLatex>\n <p>\n E poi dividendo per il termine che andrebbe escluso:\n </p>\n <PLatex>{r`L_k(x) = \\frac{ \\omega_n }{ (x - x_k) \\cdot \\prod_{i=0, i \\neq k} (x_k - x_i) }`}</PLatex>\n </Example>\n <p>\n Ha costo computazionale <ILatex>{r`O(n^2)`}</ILatex>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Resto di interpolazione\"}>\n <Panel title={\"Definizione\"}>\n <p>\n È l'<b>errore compiuto durante l'interpolazione</b>.\n </p>\n <p>\n Se la funzione <ILatex>f</ILatex> è interpolata da <ILatex>p_n</ILatex>, allora esso varrà:\n </p>\n <PLatex>{r`R_n(x) = f(x) - p_n(x)`}</PLatex>\n <p>\n In particolare, è interessante la sua norma a\n infinito, <ILatex>{r`\\| f - p_n \\|_\\infty`}</ILatex>, che corrisponde alla distanza massima tra\n le due funzioni.\n </p>\n <p>\n Un teorema dice che esso è uguale a:\n </p>\n <PLatex>{r`R_n(x) = \\frac{ \\omega_n(x) }{ (n + 1)! } \\cdot f^{(n+1)}(\\xi)`}</PLatex>\n </Panel>\n <Panel title={\"Stima\"}>\n <p>\n L'errore nell'interpolazione dipende principalmente da due fattori:\n </p>\n <ul>\n <li>Come sono <b>distribuiti sull'asse X</b> i punti da interpolare</li>\n <li>Il grado del polinomio di interpolazione</li>\n </ul>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Fenomeno di Runge\"}>\n <p>\n Fenomeno che si verifica cercando di interpolare la <i>funzione di\n Runge</i> (<ILatex>{r`\\frac{1}{1 + 25x^2}`}</ILatex>).\n </p>\n <p>\n Scegliendo <b>nodi equispaziati</b>, l'errore di interpolazione sarà <b>enorme</b> vicino ai due\n estremi dell'intervallo.\n </p>\n <Example>\n Addirittura, più nodi verranno scelti, più esso sarà alto!\n </Example>\n <p>\n Si evita scegliendo i nodi in una maniera diversa.\n </p>\n </Panel>\n <Panel title={\"Nodi di Chebychev\"}>\n <p>\n Nodi ottenuti partizionando una <b>semicirconferenza</b>, e proiettando le partizioni sul\n diametro.\n </p>\n <p>\n La formula usata per ottenere <ILatex>{r`n`}</ILatex> punti è:\n </p>\n <PLatex>{r`x_i = \\cos \\left( \\frac{ (2 \\cdot i + 1) \\cdot \\pi }{ 2 \\cdot (n+1) } \\right)`}</PLatex>\n <p>\n <u>Proprietà di min-max</u>: sono la <b>scelta ottimale</b> dei punti di interpolazione.\n </p>\n <PLatex>{r`\\omega_n(\\star) = \\max_{x \\in [a, b]} \\left| \\omega_n(x) \\right|`}</PLatex>\n <p>\n In particolare, si ha che:\n </p>\n <PLatex>{r`\\omega_n(\\star) = 2 \\left( \\frac{b-a}{4} \\right)^{n+1}`}</PLatex>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menulist\":\"menulist__2Cmnq\"};","import {Fragment} from \"preact\";\nimport {ILatex, Panel, PLatex, Section} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problema: Ricerca degli zeri di funzione\"}>\n <Panel title={\"Descrizione\"}>\n <p>\n Si vogliono trovare i punti (<i>zeri</i>) in cui una funzione <b>continua</b> <ILatex>f : [a, b]\n \\to R</ILatex> vale <ILatex>0</ILatex>.\n </p>\n <p>\n Per il <b>teorema del valore medio</b>, se <ILatex>{r`f(a) \\cdot f(b) \\leq 0`}</ILatex>, allora\n esiste sicuramente un punto in cui la funzione vale 0.\n </p>\n <p>\n Denominiamo il punto in cui la funzione\n vale <ILatex>0</ILatex> come <ILatex>{r`x_{(\\star)}`}</ILatex>.\n </p>\n </Panel>\n <Panel title={\"Condizionamento\"}>\n <p>\n Più la <b>derivata prima</b> della funzione <b>si avvicina allo 0</b>, <b>peggio</b> il problema\n sarà condizionato.\n </p>\n <PLatex>{r`f'(x_{(\\star)}) \\simeq 0 \\implies mal\\ condizionato`}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Ordine di convergenza\"}>\n <p>\n Indice <ILatex>{r`{\\color{Orange} p}`}</ILatex> di quanto in fretta una successione converge\n alla soluzione.\n </p>\n <PLatex>{r`\\lim_{i \\to +\\infty} \\frac{ \\left| x_{(i+1)} - x_{(\\star)} \\right| }{ \\left| x_{(k)} - x_{(\\star)} \\right|^{\\color{Orange} p}}`}</PLatex>\n <ul>\n <li><u>Convergenza lineare</u>: <ILatex>{r`p = 1`}</ILatex> e <ILatex>{r`0 < C < 1`}</ILatex>\n </li>\n <li><u>Convergenza superlineare</u>: <ILatex>{r`p = 1`}</ILatex> e <ILatex>{r`C = 0`}</ILatex>\n </li>\n <li><u>Convergenza quadratica</u>: <ILatex>{r`p = 2`}</ILatex> e <ILatex>{r`0 < C < 1`}</ILatex>\n </li>\n <li><u>Convergenza\n superquadratica</u>: <ILatex>{r`p = 2`}</ILatex> e <ILatex>{r`C = 0`}</ILatex></li>\n <li>...</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Metodi dicotomici\"}>\n <Panel title={\"Cosa sono?\"}>\n <p>\n Sono <b>metodi iterativi</b> in grado di ridurre sempre di più l'intervallo in cui è definita la\n funzione, facendolo convergere allo zero desiderato.\n </p>\n <p>\n Alcuni di essi sono il <i>metodo dicotomico</i> e il <i>metodo regula falsi</i>.\n </p>\n <p>\n Richiedono <b>una valutazione di funzione non-lineare</b> ad ogni iterazione.\n </p>\n <p>\n Ad ogni iterazione, l'intervallo viene sempre <i>almeno</i> <b>dimezzato</b>; si ha, pertanto,\n che:\n </p>\n <PLatex>{r`b_{(i)} - a_{(i)} = \\frac{b - a}{2^{i - 1}}`}</PLatex>\n <p>\n Hanno quindi <b>convergenza lineare</b> (<ILatex>{r`C = \\frac{1}{2}, p = 1`}</ILatex>).\n </p>\n <p>\n Il loro <i>criterio di arresto</i> è un <b>numero di iterazioni prefissato</b> che dipende\n dalla <b>tolleranza</b> sull'errore:\n </p>\n <PLatex>{r`i \\geq \\log_2 \\left( \\frac{b - a}{\\tau} \\right)`}</PLatex>\n <Example>\n Dividi l'intervallo <ILatex>{r`[a, b]`}</ILatex> in tante parti grandi quanto la tolleranza.\n L'algoritmo di bisezione ne escluderà metà ad ogni iterazione; la tolleranza sarà raggiunta\n quando rimarrà una parte sola!\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Metodo di bisezione\"}>\n <ol>\n <li>Finchè non sono state compiute il numero di iterazioni prefissate:\n <ol>\n <li>\n Calcoliamo il <b>punto\n medio</b> dell'intervallo <ILatex>{r`[a_{(n)}, b_{(n)}]`}</ILatex>:\n <PLatex>{r`c_{(n)} = a_{(n)} + \\frac{b_{(n)} - a_{(n)}}{2}`}</PLatex>\n </li>\n <li>\n Dividiamo l'intervallo in due parti, separate da <ILatex>{r`c_{(n)}`}</ILatex>:\n <ul>\n <li><ILatex>{r`[a_{(n)}, c_{(n)}]`}</ILatex> è la <b>metà</b> sinistra</li>\n <li><ILatex>{r`[c_{(n)}, b_{(n)}]`}</ILatex> è la <b>metà</b> destra</li>\n </ul>\n </li>\n <li>\n Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e\n rinominiamolo in <ILatex>{r`[a_{(n+1)}, b_{(n+1)}]`}</ILatex>.\n </li>\n </ol>\n </li>\n </ol>\n </Panel>\n <Panel title={\"Metodo regula falsi\"}>\n <ol>\n <li>Finchè non sono state compiute il numero di iterazioni prefissate:\n <ol>\n <li>\n Calcoliamo l'<b>intersezione</b> tra la <b>retta che congiunge i due estremi</b>\n <ILatex>{r`a_{(n)}, b_{(n)}`}</ILatex> e l'<b>asse X</b>:\n <PLatex>{r`c_{(n)} = b_{(n)} - \\frac{f(b_{(n)})}{\\frac{f(b_{(n)}) - f(a_{(n)})}{b_{(n)} - a_{(n)}}}`}</PLatex>\n </li>\n <li>\n Dividiamo l'intervallo in due parti, separate da <ILatex>{r`c_{(n)}`}</ILatex>:\n <ul>\n <li><ILatex>{r`[a_{(n)}, c_{(n)}]`}</ILatex> è la parte sinistra</li>\n <li><ILatex>{r`[c_{(n)}, b_{(n)}]`}</ILatex> è la parte destra</li>\n </ul>\n </li>\n <li>\n Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e\n rinominiamolo in <ILatex>{r`[a_{(n+1)}, b_{(n+1)}]`}</ILatex>.\n </li>\n </ol>\n </li>\n </ol>\n </Panel>\n </Section>\n <Section title={\"Metodo delle approssimazioni successive\"}>\n <Panel title={\"Metodi delle approssimazioni successive\"}>\n <p>\n Sono <b>metodi iterativi</b> che funzionano in modo molto simile ai metodi iterativi per i\n sistemi lineari, utilizzando una funzione <ILatex>{r`\\phi`}</ILatex> come \"metodo\".\n </p>\n <PLatex>{r`x = x - \\phi(x) \\cdot f(x)`}</PLatex>\n <p>\n Che diventa:\n </p>\n <PLatex>{r`x_{(k+1)} = g( x_{(k)} )`}</PLatex>\n <p>\n Sfruttano i <b>punti fissi</b> <ILatex>{r`g(x_{(\\star)}) = x_{(\\star)}`}</ILatex> della\n funzione <ILatex>{r`f`}</ILatex> per convergere:<br/>\n se <ILatex>{r`\\phi(x)`}</ILatex> non ha zeri, allora i punti fissi <b>coincideranno</b> con\n gli <b>zeri</b> della funzione <ILatex>{r`f`}</ILatex>.\n </p>\n <PLatex>{r`g(x) = x - \\phi(x) \\cdot f(x)`}</PLatex>\n <p>\n Si può raggiungere iterativamente ad un punto fisso attraverso la formula:\n </p>\n <PLatex>{r`x_{(k+1)} = g( x_{(k)} )`}</PLatex>\n <p>\n Non si conosce in anticipo il numero di iterazioni necessarie per soddisfare la\n tolleranza <ILatex>{r`\\tau`}</ILatex>; ad ogni iterazione, si controlla se la tolleranza è\n soddisfatta:\n </p>\n <ul>\n <li>Nella differenza tra due\n iterate: <ILatex>{r`\\frac{\\left| x_{(k+1)} - x_{(k)} \\right|}{\\left| x_{(k+1)} \\right|} \\leq \\tau`}</ILatex>\n </li>\n <li>Nel <i>residuo</i> del problema: <ILatex>{r`\\left| f(x_{(k)}) \\right| \\leq \\tau`}</ILatex>\n </li>\n </ul>\n </Panel>\n <Panel title={\"Teorema della mappa contrattiva\"}>\n <p>\n Se:\n </p>\n <ul>\n <li>\n Tutti i valori restituiti dalla funzione <ILatex>{r`g`}</ILatex> rientrano nel suo stesso\n dominio:\n <PLatex>{r`g : [a, b] \\to [a, b]`}</PLatex>\n </li>\n <li>\n <p>\n La funzione <ILatex>{r`g`}</ILatex> è una contrazione, ovvero restringe\n l'intervallo <ILatex>{r`[a, b]`}</ILatex>:\n </p>\n <PLatex>{r`\\forall (x, y) \\in [a, b], | g(x) - g(y) | \\leq L \\cdot | x - y |`}</PLatex>\n <p>\n (dove <ILatex>{r`0 < L < 1`}</ILatex>)\n </p>\n </li>\n </ul>\n <p>\n Allora:\n </p>\n <ul>\n <li>\n <p>\n Il punto fisso esiste ed è unico:\n </p>\n <PLatex>{r`\\exists! x_{(\\star)}`}</PLatex>\n </li>\n <li>\n Il metodo delle approssimazioni successive converge per qualsiasi punto di partenza.\n </li>\n <li>\n <p>\n Vale la seguente disequazione di <i>maggiorazione dell'errore</i>:\n </p>\n <PLatex>{r`\\left| x_{(k)} - x_{(\\star)} \\right| \\leq \\frac{ L^k }{ 1 - L } \\cdot \\left| x_{(1)} - x_{(0)} \\right|`}</PLatex>\n </li>\n </ul>\n <p>\n Più è piccolo <ILatex>L</ILatex>, più il metodo convergerà in fretta.\n </p>\n <Example>\n <ILatex>L</ILatex> è molto simile al raggio spettrale <ILatex>{r`\\rho(M)`}</ILatex> dei metodi\n iterativi per i sistemi lineari!\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Metodo di Newton\"}>\n <p>\n Sfrutta la <b>continuità</b> delle funzioni per ottenere una convergenza di ordine più alto.\n </p>\n <PLatex>{r`\\phi (x) = \\frac{1}{f' (x)}`}</PLatex>\n <PLatex>{r`x_{(k+1)} = x_{(k)} - \\frac{ f(x_{(k)}) }{ f'(x_{(k)}) }`}</PLatex>\n <Example>\n Geometricamente, corrisponde a prolungare una retta nel\n punto <ILatex>{r`(x_{(k)}, f(x_{(k)}))`}</ILatex> con pendenza <ILatex>{r`f'(x_{(k)})`}</ILatex>,\n e prendendo come nuovo punto la sua intersezione con l'asse X e la sua corrispettiva immagine\n nella funzione.\n </Example>\n <p>\n Ha costo computazionale di <b>2 valutazioni di funzione</b> più <b>2 valutazioni di derivata</b>.\n </p>\n <p>\n Ha <b>convergenza quadratica</b>.\n </p>\n </Panel>\n <Panel title={\"Metodo delle secanti\"}>\n <p>\n È come il metodo di Newton, ma usa il <b>rapporto incrementale</b>, in modo da poter essere\n applicato a funzioni non continue.\n </p>\n <PLatex>{r`\\phi (x) = \\frac{ 1 }{ \\frac{ f(x_{(k)}) - f(x_{(k-1)}) }{ x_{(k)} - x_{(k-1)} } }`}</PLatex>\n <PLatex>{r`x_{(k+1)} = x_{(k)} - \\frac{ f(x_{(k)}) }{ \\frac{ f(x_{(k)}) - f(x_{(k-1)}) }{ x_{(k)} - x_{(k-1)} } }`}</PLatex>\n <Example>\n Geometricamente, corrisponde a costruire una retta che attraversa i\n punti <ILatex>{r`(x_{(k)}, f(x_{(k)}))`}</ILatex> e <ILatex>{r`(x_{(k-1)}, f(x_{(k-1)}))`}</ILatex>,\n e prendendo come nuovo punto la sua intersezione con l'asse X e la sua corrispettiva immagine\n nella funzione.\n </Example>\n <p>\n Ha costo computazionale di <b>3 valutazioni di funzione</b>.\n </p>\n <p>\n Ha <b>convergenza superlineare</b>.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Approssimare sistemi non-lineari\"}>\n <p>\n È possibile usare questi metodi per <b>approssimare le soluzioni di sistemi non-lineari</b>.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import {Fragment} from \"preact\";\nimport {ILatex, Panel, PLatex, Section} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problema: Interpolazione a tratti\"}>\n <Panel title={\"Come funziona?\"}>\n <p>\n Invece che costruire una singola funzione che interpola tutti i punti, per <b>ogni intervallo\n tra due punti</b> (<i>sottointervallo</i>) si costruisce <b>una funzione apposta</b>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Splines\"}>\n <Panel title={\"Cosa sono?\"}>\n <p>\n Interpolanti che:\n </p>\n <ul>\n <li>sono <b>polinomiali</b> di grado massimo <ILatex>{r`n`}</ILatex></li>\n <li>sono <b>continue</b> fino al grado <ILatex>{r`n - 1`}</ILatex></li>\n <li>connettono <ILatex>{r`m + 2`}</ILatex> punti, e\n hanno <ILatex>{r`m`}</ILatex> sottointervalli\n </li>\n <li>hanno funzioni <b>definite appositamente</b> per ogni sottointervallo</li>\n </ul>\n <Example>\n <p>\n Significa che agli estremi dell'intervallo, i valori di tutte le derivate fino al\n grado <ILatex>{r`n - 1`}</ILatex> devono essere uguali:\n </p>\n <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>\n </Example>\n <p>\n Hanno <ILatex>{r`n + m + 1`}</ILatex> gradi di libertà.\n </p>\n <Example>\n Esistono infinite spline di grado <ILatex>{r`n \\geq 2`}</ILatex>!\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Spline lineari\"}>\n <Example>\n Sono anche dette <b>interpolanti lineari a tratti</b>.\n </Example>\n <p>\n Per ogni sottointervallo, costruiamo una <b>funzione lineare</b> passante per i due estremi:\n </p>\n <PLatex>{r`s_i(x) = y_i + \\frac{ y_{i + 1} - y_i }{ x_{i + 1} - x_i } \\cdot (x - x_i)`}</PLatex>\n <Example>\n È una linea spezzata!\n </Example>\n <p>\n Il loro errore è:\n </p>\n <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>\n <p>\n Ha come vantaggi complessità computazionale <b>molto più bassa</b> e l'<b>assenza</b> del\n fenomeno di Runge, ma allo stesso tempo si <b>perde la derivabilità della funzione.</b>\n </p>\n <p>\n <b>Non</b> hanno gradi di libertà.\n </p>\n </Panel>\n <Panel title={\"Spline cubiche\"}>\n <p>\n Spline con <ILatex>{r`n = 3`}</ILatex>, che soddisfano le seguenti uguaglianze:\n </p>\n <PLatex>{r`\n \\forall \\ i \\in \\{0,\\ \\dots\\ ,\\ m - 1\\},\\ \n \\begin{cases}\n s_i (x_{i+1}) = s_{i+1} (x_{i+1})\\\\\\\\\n s'_i (x_{i+1}) = s'_{i+1} (x_{i+1})\\\\\\\\\n s''_i (x_{i+1}) = s''_{i+1} (x_{i+1})\n \\end{cases} \n `}</PLatex>\n <PLatex>{r`\n \\forall \\ i \\in \\{0,\\ \\dots\\ ,\\ m + 1\\},\\ \n \\begin{cases}\n s_i(x_i) = y_i\n \\end{cases}\n `}</PLatex>\n <p>\n Esse hanno la seguente equazione:\n </p>\n <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>\n <Example>\n Spesso si indica con <ILatex>{r`h`}</ILatex> la distanza orizzontale tra due punti di un\n sottointervallo.\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Spline cubica vincolata\"}>\n <p>\n Classe di spline cubiche in cui:\n </p>\n <ul>\n <li><ILatex>{r`\\beta_0`}</ILatex> e <ILatex>{r`\\beta_{m+1}`}</ILatex> sono prefissati</li>\n </ul>\n <p>\n È <b>unica</b>.\n </p>\n <p>\n Forma il seguente sistema di equazioni:\n </p>\n <PLatex>{r`T z = c`}</PLatex>\n <PLatex>{r`\n b_i = h_{i+1} \\beta_i + 2 ( h_i + h_{i+1} ) + h_{i} \\beta_i+2\n `}</PLatex>\n <PLatex>{r`\n T = \n \\begin{pmatrix}\n 2 (h_0 + 2 h_1) & h_0 & {\\color{Gray} 0} & {\\color{Gray} 0} & {\\color{Gray} 0} \\\\\\\\\n h_2 & 2 (h_1 + h_2) & h_1 & {\\color{Gray} 0} & {\\color{Gray} 0} \\\\\\\\\n {\\color{Gray} 0} & \\ddots & \\ddots & \\ddots & {\\color{Gray} 0} \\\\\\\\\n {\\color{Gray} 0} & {\\color{Gray} 0} & h_{m-1} & 2 (h_{m-2} + h_{m-1}) & h_{m-2} \\\\\\\\\n {\\color{Gray} 0} & {\\color{Gray} 0} & {\\color{Gray} 0} & h_m & 2 (h_{m-1} + h_m)\n \\end{pmatrix}\n `}</PLatex>\n <PLatex>{r`\n z =\n \\begin{pmatrix}\n \\beta_1\\\\\\\\\n \\beta_2\\\\\\\\\n \\vdots\\\\\\\\\n \\beta_{m-1}\\\\\\\\\n \\beta_{m}\n \\end{pmatrix}\n `}</PLatex>\n <PLatex>{r`\n c =\n \\begin{pmatrix}\n b_0 - h_1 \\beta_0\\\\\\\\\n b_1\\\\\\\\\n \\vdots\\\\\\\\\n b_{m-2}\\\\\\\\\n b_{m-1} - h_{m-1} \\beta_{m+1}\n \\end{pmatrix}\n `}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Spline cubica naturale\"}>\n <p>\n Classe di spline cubiche in cui:\n </p>\n <ul>\n <li><ILatex>{r`s''(x_0) = s''(x_{m+1}) = 0`}</ILatex></li>\n </ul>\n <p>\n È <b>unica</b>.\n </p>\n </Panel>\n <Panel title={\"Spline cubica periodica\"}>\n <p>\n Classe di spline cubiche in cui:\n </p>\n <ul>\n <li><ILatex>{r`s(x) = s(m+1)`}</ILatex></li>\n <li><ILatex>{r`s'(x) = s'(m+1)`}</ILatex></li>\n <li><ILatex>{r`s''(x) = s''(m+1)`}</ILatex></li>\n </ul>\n <p>\n È <b>unica</b>.\n </p>\n </Panel>\n <Panel title={\"Spline cubica not-a-knot\"}>\n <p>\n Classe di spline cubiche in cui:\n </p>\n <ul>\n <li>Negli\n intervalli <ILatex>{r`[x_0, x_2]`}</ILatex> e <ILatex>{r`[x_{m-1}, x_{m+1}]`}</ILatex> si\n presenta <b>obbligatoriamente</b> un polinomio di <b>grado 3</b>.\n </li>\n </ul>\n <p>\n È <b>unica</b>.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Proprietà di minima curvatura\"}>\n <p>\n Tra tutte le funzioni che interpolano dei punti, le tre classi di funzioni sopraelencate sono\n quelle che interpolano la funzione più \"dolcemente\".\n </p>\n <p>\n Per loro è valida la seguente proprietà:\n </p>\n <PLatex>{r`\\int_a^b ( s''(x) )^2 dx \\leq \\int_a^b ( f''(x) )^2 dx`}</PLatex>\n </Panel>\n <Panel title={\"Errore di interpolazione\"}>\n <p>\n Più diminuisce la lunghezza <ILatex>{r`h`}</ILatex> degli intervalli, più aumenta l'accuratezza.\n </p>\n <p>\n <b>Non</b> si verifica il fenomeno di Runge.\n </p>\n <p>\n Si ha un'interpolazione anche della <b>derivata prima</b>.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import style from \"./MenuList.less\";\n\nexport default function(props) {\n return (\n <ul class={style.menulist}>\n {props.children}\n </ul>\n )\n}","import style from \"./Example.less\";\n\nexport default function (props) {\n return (\n <div class={style.example}>\n {props.children}\n </div>\n );\n}\n","import {ILatex, Panel, PLatex, Section, Todo} from \"bluelib\";\nimport Link from \"../../components/Link\";\nimport Example from \"../../components/Example\";\nimport {Fragment} from \"preact\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problema: Risoluzione di sistemi lineari\"}>\n <Panel title={\"Descrizione\"}>\n <p>\n Dato un sistema di equazioni lineari, si vuole trovare la sua soluzione.\n </p>\n <p>\n In forma matriciale, avrà una <b>matrice dei coefficienti</b> <ILatex>{r`A`}</ILatex>, un <b>vettore\n dei termini noti</b> <ILatex>{r`b`}</ILatex> e un <b>vettore delle incognite</b>\n <ILatex>{r`x`}</ILatex>.\n </p>\n <p>\n L'equazione matriciale del sistema è:\n </p>\n <PLatex>{r`A \\cdot x = b`}</PLatex>\n </Panel>\n <Panel title={\"Condizionamento\"}>\n <p>\n Il condizionamento della risoluzione di sistemi lineari è:\n </p>\n <PLatex>{r`\\frac{{\\color{yellow} \\|A\\| \\cdot \\|A^{-1}\\|} \\cdot \\| \\Delta b \\|}{\\| b \\|}`}</PLatex>\n <p>\n In particolare, è segnato in giallo nella formula il <b>numero di condizionamento</b>:\n </p>\n <PLatex>\n {r`k(A) = \\| A \\| \\cdot \\| A^{-1} \\|`}\n </PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Metodi diretti\"}>\n <p>\n Metodi che trovano la soluzione esatta<abbr\n title={\"Per quanto possibile nell'algebra di macchina.\"}>*</abbr> di un sistema lineare.\n </p>\n <p>\n Tipicamente prevedono la <b>fattorizzazione</b> della matrice dei coefficienti in due\n sottomatrici più facili da risolvere.\n </p>\n <p>\n Generalmente hanno una complessità temporale <ILatex>{r`O(n^3)`}</ILatex>.\n </p>\n </Panel>\n <Panel title={\"Metodi iterativi\"}>\n <p>\n Metodi che trovano una soluzione imperfetta<abbr\n title={\"Che però può essere la migliore ottenibile, considerando la precisione di macchina.\"}>*</abbr> di\n un sistema lineare.\n </p>\n <p>\n Tipicamente prevedono l'applicazione ripetuta di un <b>metodo</b>, in base al quale cambia\n la <b>velocità di convergenza</b> alla soluzione.\n </p>\n <p>\n Generalmente hanno una complessità temporale <ILatex>{r`O(n^2)`}</ILatex>.\n </p>\n </Panel>\n </Section>\n <Section title={\"Metodi diretti\"}>\n <Panel title={\"Divisione\"}>\n <p>\n Se la matrice dei coefficienti del sistema è <b>diagonale</b>, allora è possibile trovare la\n soluzione <i>dividendo</i> ogni termine noto per l'unico coefficiente diverso da zero presente\n nella sua riga:\n </p>\n <PLatex>{r`x_i = \\frac{b_i}{A_{ii}}`}</PLatex>\n </Panel>\n <Panel title={\"Sostituzione\"}>\n <p>\n Se la matrice dei coefficienti del sistema è <b>triangolare</b> inferiore o superiore, allora è\n possibile trovare la soluzione effettuando una <i>sostituzione</i> all'avanti oppure\n all'indietro:\n </p>\n <PLatex>{r`x_i = \\frac{b_i - \\sum_{k = 1}^{i - 1} (x_k \\cdot A_{ik})}{A_{ii}}`}</PLatex>\n <PLatex>{r`x_i = \\frac{b_i - \\sum_{k = i - 1}^{n} (x_k \\cdot A_{ik})}{A_{ii}}`}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex></span>}>\n <p>\n Se tutti i valori sulla diagonale di <ILatex>{r`A`}</ILatex> sono <b>diversi da 0 <small>(eccetto\n l'ultimo)</small></b> allora è possibile <i>fattorizzarla</i> in due matrici:\n una <ILatex>{r`L`}</ILatex> <b>triangolare inferiore</b>, e una <ILatex>{r`U`}</ILatex> <b>triangolare\n superiore</b>.\n </p>\n <PLatex>{r`A = L \\cdot U`}</PLatex>\n <Example>\n Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo <b>metodo di Gauss</b>.\n </Example>\n <p>\n La matrice <ILatex>{r`L`}</ILatex> è così composta:\n </p>\n <PLatex>{r`\n \\begin{cases}\n L_{ii} = 1 \\qquad \\qquad (diagonale)\\\\\n L_{ik} = -\\frac{A_{ik}}{A_{kk}} \\qquad (tri.\\ infer.)\n \\end{cases}\n `}</PLatex>\n <Example>\n Sono i moltiplicatori usati per rendere annullare il triangolo inferiore!\n </Example>\n <p>\n La matrice <ILatex>{r`U`}</ILatex> è così composta:\n </p>\n <PLatex>{r`\n \\begin{cases}\n U_{ik} = A_{ik} \\quad se\\ i \\leq k \\quad (tri.\\ super.)\\\\\n U_{ik} = 0 \\qquad se\\ i > k \\quad (tri.\\ infer.)\n \\end{cases}\n `}</PLatex>\n <Example>\n È la parte triangolare superiore di <ILatex>{r`A`}</ILatex>!\n </Example>\n <p>\n Il sistema può essere poi risolto applicando due volte il metodo di sostituzione (all'avanti e\n all'indietro):\n </p>\n <PLatex>{r`\n \\begin{cases}\n L \\cdot y = b\\\\\n U \\cdot x = y\n \\end{cases}\n `}</PLatex>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <PLatex>{r`{\\color{Yellow} O\\left(\\frac{n^3}{3}\\right)} + 2 \\cdot O\\left(\\frac{n^2}{2}\\right)`}</PLatex>\n </Panel>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> con pivoting parziale</span>}>\n <p>\n È possibile applicare la fattorizzazione <ILatex>{r`LU`}</ILatex> a <b>qualsiasi matrice\n non-singolare</b> permettendo lo scambio (<i>pivoting</i>) delle righe, potenzialmente <b>aumentando\n la stabilità</b> dell'algoritmo.\n </p>\n <Example>\n Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo <b>metodo di Gauss-Jordan</b>!\n </Example>\n <p>\n Alla formula precedente si aggiunge una <b>matrice di permutazione</b> che indica quali righe\n sono state scambiate:\n </p>\n <PLatex>{r`P \\cdot A = L \\cdot U`}</PLatex>\n <p>\n Per massimizzare la stabilità, si cerca di <b>usare come perno l'elemento più grande</b> della\n colonna.\n </p>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <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>\n </Panel>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> con pivoting totale</span>}>\n <p>\n È possibile anche permettere il <i>pivoting</i> <b>sulle colonne</b> per <b>aumentare\n ulteriormente la stabilità</b> dell'algoritmo, a costo di maggiore costo computazionale:\n </p>\n <PLatex>{r`P \\cdot A \\cdot Q = L \\cdot U`}</PLatex>\n <p>\n Per massimizzare la stabilità, si cerca di <b>ordinare in modo decrescente la diagonale</b>,\n assicurandoci che il primo perno sia più grande del secondo e così via.\n </p>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <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>\n </Panel>\n </Section>\n <Section>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> a banda</span>}>\n <p>\n Se la matrice <ILatex>{r`A`}</ILatex> è <b>a banda</b>, è possibile risparmiare spazio durante\n la fattorizzazione, in quanto sia <ILatex>{r`L`}</ILatex> sia <ILatex>{r`U`}</ILatex> saranno a\n banda!\n </p>\n </Panel>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LU`}</ILatex> sparsa</span>}>\n <p>\n Se la matrice <ILatex>{r`A`}</ILatex> è <b>sparsa</b>, non è detto\n che <ILatex>{r`L`}</ILatex> e <ILatex>{r`U`}</ILatex> siano sparse a loro volta.\n </p>\n <p>\n Per evitare il <u>fill-in</u>, è necessario <b>riordinare</b> la\n matrice <ILatex>{r`A`}</ILatex> in modo che sia il più possibile simile a una matrice a\n banda.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel title={<span>Fattorizzazione <ILatex>{r`LDL^{-1}`}</ILatex></span>}>\n <p>\n È possibile <b>ridurre la complessità computazionale</b> della\n fattorizzazione <ILatex>{r`LU`}</ILatex> se la matrice dei coefficienti è <b>simmetrica</b>:\n </p>\n <PLatex>{r`A = L \\cdot D \\cdot L^{-1}`}</PLatex>\n <p>\n In questo caso, si calcola solo la matrice L, utilizzando il <b>metodo di pavimentazione</b>.\n </p>\n <PLatex>{r`\n \\begin{cases}\n d_{ii} = A_{ii} - \\sum_{k=1}^{i-1} ( d_{kk} \\cdot (l_{jk})^2 )\\\\\n \\\\\n l_{ij} = \\frac{A_{ij} - \\sum_{k=1}^{j-1} l_{ik} \\cdot d_{kk} \\cdot l_{jk}}{d_{ii}}\n \\end{cases}\n `}</PLatex>\n <Example>\n <p>\n La prima colonna della matrice sarà:\n </p>\n <PLatex>{r`\n \\begin{cases}\n d_{11} = A_{11}\\\\\n \\\\\n l_{i1} = \\frac{A_{i1}}{d_{11}}\n \\end{cases}\n `}</PLatex>\n <p>\n La seconda colonna della matrice sarà:\n </p>\n <PLatex>{r`\n \\begin{cases}\n d_{22} = A_{22} - d_{11} \\cdot (l_{21})^2\\\\\n \\\\\n l_{i2} = \\frac{A_{i2} - l_{i1} \\cdot d_{11} \\cdot l_{21}}{d_{ii}}\n \\end{cases}\n `}</PLatex>\n </Example>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <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>\n </Panel>\n <Panel title={<span>Fattorizzazione <ILatex>{r`\\mathcal{L} \\mathcal{L}^{-1}`}</ILatex></span>}>\n <p>\n È possibile dare <b>stabilità forte</b> alla fattorizzazione <ILatex>{r`LDL^{-1}`}</ILatex> se\n la matrice dei coefficienti è <b>simmetrica definita positiva</b>:\n </p>\n <PLatex>{r`A = \\mathcal{L} \\cdot \\mathcal{L}^{-1}`}</PLatex>\n <p>\n Il <b>metodo di pavimentazione</b> diventa:\n </p>\n <PLatex>{r`\n \\begin{cases}\n l_{ii} = \\sqrt{A_{ii} - \\sum_{k=1}^{i-1} (l_{ik})^2 }\\\\\n \\\\\n l_{ij} = \\frac{A_{ij} - \\sum_{k=1}^{j-1} l_{ik} \\cdot l_{jk}}{l_{ii}}\n \\end{cases}\n `}</PLatex>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <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>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Trasformazione di Householder\"}>\n <p>\n Matrice ricavata dalla seguente formula, dove <ILatex>{r`v`}</ILatex> è la colonna di un'altra\n matrice:\n </p>\n <PLatex>{r`U(v) = \\mathbf{I} - \\frac{2 \\cdot v \\cdot v^T}{\\| v \\|_{(2)}^2}`}</PLatex>\n <p>\n Se moltiplicata per per la matrice da cui proviene <ILatex>{r`v`}</ILatex>, sostituirà la\n colonna <ILatex>{r`v`}</ILatex> con la colonna:\n </p>\n <PLatex>{r`\n \\begin{pmatrix}\n - \\| v \\|\\\\\\\\\n 0\\\\\\\\\n 0\\\\\\\\\n \\vdots\\\\\\\\\n 0\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Si calcola con una complessità computazionale nell'ordine di <ILatex>{r`O(n)`}</ILatex>.\n </p>\n </Panel>\n <Panel title={<span>Fattorizzazione <ILatex>{r`QR`}</ILatex></span>}>\n <p>\n Metodo che fornisce una <b>maggiore stabilità</b> a costo di una <b>maggiore complessità\n computazionale</b>.\n </p>\n <p>\n La matrice <ILatex>{r`A`}</ILatex> viene <i>fattorizzata</i> in due matrici,\n una <b>ortogonale</b> <ILatex>{r`Q`}</ILatex> e una <b>triangolare superiore</b>\n <ILatex>{r`R`}</ILatex>:\n </p>\n <PLatex>{r`A = Q \\cdot R`}</PLatex>\n <p>\n Le matrici si ottengono dal <b>prodotto delle trasformazioni di Householder</b> (che concatenate\n formano <ILatex>{r`Q`}</ILatex>) sulla matrice <ILatex>{r`A`}</ILatex> necessarie a trasformarla\n in una matrice triangolare superiore (<ILatex>{r`R`}</ILatex>).\n </p>\n <Example>\n C'è un bell'esempietto <Link\n href={\"https://web.archive.org/web/20200828003151/https://rpubs.com/aaronsc32/qr-decomposition-householder\"}>qui</Link>.\n </Example>\n <p>\n Una volta fattorizzata, il sistema si può risolvere con:\n </p>\n <PLatex>{r`\n \\begin{cases}\n y = Q^T \\cdot b\\\\\n R \\cdot x = y\n \\end{cases}\n `}</PLatex>\n <p>\n Questo metodo ha costo computazionale:\n </p>\n <PLatex>{r`{\\color{Yellow} O\\left(\\frac{2 \\cdot n^3}{3}\\right)} + 2 \\cdot O\\left(\\frac{n^2}{2}\\right)`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Metodi iterativi\"}>\n <Panel title={\"Forma generale\"}>\n <p>\n Se si pone che:\n </p>\n <PLatex>{r`\n \\begin{cases}\n G = I - M^{-1} \\cdot A\\\\\n c = M^{-1} \\cdot b\n \\end{cases}\n `}</PLatex>\n <p>\n Allora la formula generale di un sistema lineare può anche essere scritta in questo modo:\n </p>\n <PLatex>{r`x = G \\cdot x + c`}</PLatex>\n <p>\n È particolarmente utile perchè ci permette di definire un <b>algoritmo ricorsivo</b> che\n trovi <ILatex>{r`x`}</ILatex>:\n </p>\n <PLatex>{r`x_{(i+1)} = G \\cdot x_{(i)} + c`}</PLatex>\n <p>\n <ILatex>{r`G`}</ILatex> è il <b>metodo</b>, e in base ad esso cambiano stabilità e velocità di\n convergenza.\n </p>\n <p>\n Ponendo <ILatex>{r`A = M - N`}</ILatex>, la formula può essere scritta anche in questo modo:\n </p>\n <PLatex>{r`M \\cdot x_{(i+1)} = N \\cdot x_{(i)} + b`}</PLatex>\n <p>\n Possiamo ottenere alcuni metodi separando <ILatex>A</ILatex> in tre matrici:\n </p>\n <ul>\n <li>La parte diagonale <ILatex>{r`D`}</ILatex></li>\n <li>L'opposto del triangolo inferiore <ILatex>{r`E`}</ILatex></li>\n <li>L'opposto del triangolo superiore <ILatex>{r`F`}</ILatex></li>\n </ul>\n <PLatex>{r`A = D - E - F`}</PLatex>\n </Panel>\n <Panel title={\"Convergenza di un metodo\"}>\n <p>\n Un metodo è convergente se e solo se:\n </p>\n <PLatex>{r`\\rho (M) < 1`}</PLatex>\n <p>\n (dove <ILatex>{r`\\rho`}</ILatex> è il <b>raggio spettrale</b>, il massimo autovalore della\n matrice)\n </p>\n <p>\n Perchè un metodo sia convergente, è sufficiente che:\n </p>\n <PLatex>{r`\\| M \\| < 1`}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Metodo di Jacobi\"}>\n <p>\n Il metodo di Jacobi si ottiene ponendo:\n </p>\n <PLatex>{r`\n \\begin{cases}\n M = D\\\\\n N = E + F\n \\end{cases}\n `}</PLatex>\n <p>\n <u>Spostamenti simultanei</u>: Permette di ottenere ogni componente\n di <ILatex>{r`x`}</ILatex> indipendentemente dagli altri: è <b>parallelizzabile</b>.\n </p>\n <p>\n Se la matrice è <b>diagonale dominante</b>, allora il metodo di\n Jacobi <b>converge</b> sicuramente.\n </p>\n </Panel>\n <Panel title={\"Metodo di Gauss-Seidel\"}>\n <p>\n Il metodo di Gauss-Seidel si ottiene ponendo:\n </p>\n <PLatex>{r`\n \\begin{cases}\n M = D - E\\\\\n N = F\n \\end{cases}\n `}</PLatex>\n <p>\n Ha una velocità di convergenza <b>maggiore o uguale</b> rispetto al metodo di Jacobi.\n </p>\n <p>\n <u>Spostamenti successivi</u>: Non è parallelizzabile, perchè ogni componente <b>dipende da\n quelle calcolate in precedenza</b>.\n </p>\n <p>\n Se la matrice è <b>diagonale dominante</b>, allora il metodo di\n Gauss-Seidel <b>converge</b> sicuramente.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import Intro from \"./00_Intro\";\nimport SistemiLineari from \"./01_SistemiLineari\";\nimport ZeriDiFunzione from \"./02_ZeriDiFunzione\";\nimport Interpolazione from \"./03_Interpolazione\";\nimport InterpolazioneATratti from \"./04_InterpolazioneATratti\";\nimport ApprossimazioneDatiSperimentali from \"./05_ApprossimazioneDatiSperimentali\";\n\n\nexport default function () {\n return (\n <div>\n <h1>Calcolo Numerico</h1>\n <Intro/>\n <SistemiLineari/>\n <ZeriDiFunzione/>\n <Interpolazione/>\n <InterpolazioneATratti/>\n <ApprossimazioneDatiSperimentali/>\n </div>\n )\n}\n","import {ILatex, Panel, PLatex, Section} from \"bluelib\";\nimport Link from \"../../components/Link\";\nimport MenuList from \"../../components/MenuList\";\nimport Example from \"../../components/Example\";\nimport {Fragment} from \"preact\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Esame\"}>\n <Panel title={\"Contatti\"}>\n <ul>\n <li><Link href={\"mailto:silvia.bonettini@unimore.it\"}>Prof.ssa Silvia Bonettini</Link></li>\n </ul>\n </Panel>\n <Panel title={\"Orale\"}>\n <p>\n E' composto da:\n </p>\n <ul>\n <li>2 domande sugli argomenti teorici</li>\n <li>1 domanda di implementazione algoritmo in MATLAB</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Extra\"}>\n <Panel title={\"Ripasso di Algebra Lineare\"}>\n <p>\n Prima di iniziare a studiare Calcolo Numerico, potrebbe essere una buona idea ripassare un\n pochino Algebra Lineare:\n </p>\n <MenuList>\n <li>\n <a href={\"/calcolonumerico/ripassodialgebralineare\"}>Ripasso di Algebra Lineare</a> <small>(per\n studenti sperduti di Calcolo Numerico)</small>\n </li>\n </MenuList>\n </Panel>\n <Panel title={\"Anki\"}>\n <p>\n Ho provato a fare un deck <Link href={\"https://apps.ankiweb.net/\"}>Anki</Link> con tutte le\n formule di Calcolo numerico.\n </p>\n <p>\n Sappiatemi dire com'è! <small>Io non l'ho usato moltissimo perchè ho studiato scrivendo questa\n pagina di Appuntiweb...</small>\n </p>\n <MenuList>\n <li><Link\n href={\"https://ryg.s3.fr-par.scw.cloud/builds/anki-decks/formule-di-calcolo-numerico.apkg\"}>Scarica\n il deck Anki</Link></li>\n </MenuList>\n </Panel>\n </Section>\n <Section title={\"Algoritmi\"}>\n <Panel title={\"Algoritmi numerici\"}>\n <p>\n Particolari algoritmi che hanno:\n </p>\n <ul>\n <li>numeri reali in input e output</li>\n <li>successioni delle quattro operazioni aritmetiche fondamentali come passi</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Errore di rappresentazione\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Con i numeri floating point può capitare che un certo numero <ILatex>{r`\\alpha`}</ILatex> non\n sia rappresentato correttamente.\n </p>\n <p>\n In tal caso, il numero si indica con <ILatex>{r`\\alpha^\\star`}</ILatex>.\n </p>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Errore assoluto\"}>\n <p>\n È la differenza tra il numero desiderato e il numero rappresentato:\n </p>\n <PLatex>{r`E_a = \\left | \\alpha - \\alpha^\\star \\right |`}</PLatex>\n </Panel>\n <Panel title={\"Errore relativo\"}>\n <p>\n Indica quanto il numero rappresentato differisce dal numero desiderato:\n </p>\n <PLatex>{r`\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}`}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Troncamento\"}>\n <p>\n Metodo con cui gestire gli <b>underflow floating point</b>: le cifre meno significative\n vengono <b>rimosse</b>.\n </p>\n <Example>\n <pre>\n 1.00 → 1.0<br/>\n 1.01 → 1.0<br/>\n 1.10 → 1.1<br/>\n 1.11 → 1.1\n </pre>\n </Example>\n </Panel>\n <Panel title={\"Arrotondamento\"}>\n <p>\n Metodo con cui gestire gli <b>underflow floating point</b>: se la cifra più significativa di\n quelle che devono essere rimosse è 1, allora <b>aumenta di 1</b> anche quella meno signficativa\n che viene tenuta.\n </p>\n <Example>\n <pre>\n 1.00 → 1.0<br/>\n 1.01 → 1.0<br/>\n 1.10 → 1.1<br/>\n 1.11 → 10.\n </pre>\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Precisione di macchina\"}>\n <p>\n Un numero reale rappresentato in <b>virgola mobile</b> ha un <b>errore relativo</b> minore o\n uguale alla <i>precisione\n di macchina</i>:\n </p>\n <p>\n <ILatex>{r`\\epsilon_x \\leq k \\cdot \\beta^{1-t}`}</ILatex>\n </p>\n <ul>\n <li>\n <ILatex>\\beta</ILatex> è uguale alla base utilizzata (solitamente 2).\n </li>\n <li>\n <ILatex>t</ILatex> è uguale al numero di cifre della mantissa.\n </li>\n <li>\n <ILatex>k</ILatex> è uguale a <ILatex>1</ILatex> se il numero viene rappresentato per\n troncamento oppure a <ILatex>{r`\\frac{1}{2}`}</ILatex> se viene rappresentato per\n arrotondamento.\n </li>\n </ul>\n </Panel>\n <Panel title={\"La funzione fl\"}>\n <p>\n Associa un valore reale al suo <b>corrispondente valore floating point</b>, utilizzando uno dei\n due metodi di gestione dell'undeflow.\n </p>\n <PLatex>{r`fl(x) = (x)(1 + \\epsilon_x)`}</PLatex>\n <Example>\n Indica che un valore è soggetto alla precisione di macchina.\n <PLatex>{r`fl(1.11) = 1.1`}</PLatex>\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Un nuovo insieme\"}>\n <p>\n L'insieme <ILatex>{r`\\mathbb{F}`}</ILatex> è il sottoinsieme dei numeri reali rappresentabili in\n floating point dalla macchina che stiamo usando.\n </p>\n <p>\n Operazioni tra elementi di <ILatex>{r`\\mathbb{F}`}</ILatex> producono risultati\n in <ILatex>{r`\\mathbb{R}`}</ILatex>, che però decaderanno nuovamente a elementi\n di <ILatex>{r`\\mathbb{F}`}</ILatex>, perdendo informazioni.\n </p>\n <p>\n Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.\n </p>\n </Panel>\n <Panel title={\"Caratteristiche delle operazioni di macchina\"}>\n <ul>\n <li>Hanno <b>più elementi neutri</b>.</li>\n <li>Un numero ha <b>più opposti</b>.</li>\n <li><b>Non</b> sono associative.</li>\n <li><b>Non</b> sono distributive.</li>\n <li><b>Non</b> vale la legge di annullamento del prodotto.</li>\n </ul>\n </Panel>\n </Section>\n <Section title={\"Errori nelle operazioni di macchina\"}>\n <Panel title={\"Errore inerente\"}>\n <p>\n Errore derivato da underflow sui <b>dati</b>.\n </p>\n <p>\n Si indica con <ILatex>{r`\\epsilon_{nome\\_var}`}</ILatex>.\n </p>\n <Example>\n L'errore sulla variabile <ILatex>x</ILatex> si indica con <ILatex>{r`\\epsilon_{x}`}</ILatex>.\n </Example>\n </Panel>\n <Panel title={\"Errore algoritmico\"}>\n <p>\n Errore derivato da underflow durante l'<b>esecuzione dell'algoritmo</b>.\n </p>\n <p>\n Si indica con <ILatex>{r`\\epsilon_{num\\_passo}`}</ILatex>.\n </p>\n <Example>\n L'errore al primo passo dell'algoritmo si indica con <ILatex>{r`\\epsilon_{1}`}</ILatex>.\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Condizionamento\"}>\n <p>\n Sensibilità di un problema all'<b>errore inerente</b>.\n </p>\n <Example>\n <ILatex>{r`y = \\frac{1}{x}`}</ILatex> è mal condizionato intorno allo 0 e ben condizionato\n lontano dallo 0.\n </Example>\n </Panel>\n <Panel title={\"Stabilità\"}>\n <p>\n Sensibilità di un problema all'<b>errore algoritmico</b>.\n </p>\n <Example>\n <p>\n Cerchiamo un algoritmo che risolva <ILatex>{r`2x^\\star = 4`}</ILatex>.\n </p>\n <p>\n Calcolare prima <ILatex>{r`t = fl \\left( \\frac{1}{4} \\right)`}</ILatex> e\n poi <ILatex>{r`x = fl ( 2 \\cdot t )`}</ILatex> porta a una perdita di precisione.\n </p>\n <p>\n Calcolare direttamente <ILatex>{r`x = fl \\left( \\frac{2}{4} \\right)`}</ILatex> non ha alcuna\n perdita di precisione e rende l'algoritmo <b>più stabile</b> del precedente.\n </p>\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Indice di condizionamento\"}>\n <p>\n È il coefficiente di proporzionalità tra i dati e l'<b>errore inerente</b>.\n </p>\n <p>\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n </p>\n <p>\n Minore è l'indice di condizionamento, meglio condizionato è un problema.\n </p>\n </Panel>\n <Panel title={\"Indice algoritmico\"}>\n <p>\n È il coefficiente di proporzionalità tra i dati e l'<b>errore algoritmico</b>.\n </p>\n <p>\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n </p>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n","import {Fragment} from \"preact\";\nimport {ILatex, Panel, PLatex, Section} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function () {\n return (\n <Fragment>\n <Section title={\"Problema: Approssimazione di dati sperimentali\"}>\n <Panel title={\"Perchè?\"}>\n <p>\n Interpolare dati sperimentali non fornisce quasi mai un modello del fenomeno.\n </p>\n <p>\n Vogliamo costruire una <b>funzione di regressione</b> che, dati molti più dati del grado della\n funzione, minimizzi il quadrato della distanza tra i punti sperimentali e i punti della funzione\n di regressione.\n </p>\n <p>\n Denominiamo:\n </p>\n <ul>\n <li><ILatex>{r`{\\color{Orange} f}`}</ILatex>: la <b>funzione \"effettiva\"</b> del fenomeno</li>\n <li><ILatex>{r`{\\color{Yellow} q}`}</ILatex>: la <b>funzione di regressione</b> che costruiamo\n per approssimarlo\n </li>\n <li><ILatex>{r`{\\color{Red} Q }`}</ILatex>: la <b>funzione \"errore di regressione\"</b> da\n minimizzare\n </li>\n <li><ILatex>{r`(\\ x_i, f(x_i)\\ )`}</ILatex>: i <b>punti sperimentali</b></li>\n </ul>\n <p>\n L'obiettivo è minimizzare l'<b>errore di approssimazione</b> <ILatex>{r`Q`}</ILatex>, ovvero:\n </p>\n <PLatex>{r`\\min {\\color{Red} Q } = \\sum_{i = 1}^m (\\ {\\color{Yellow} q(x_i)} - {\\color{Orange} f(x_i)}\\ )^2 `}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Regressione lineare\"}>\n <p>\n Trova la <b>retta</b> <ILatex>{r`{\\color{Yellow} q}`}</ILatex> che meglio approssima tutti\n gli <ILatex>{r`m`}</ILatex> dati sperimentali.\n </p>\n <p>\n Essendo una retta, avrà <b>due parametri</b>: il termine noto <ILatex>{r`a_0`}</ILatex>, e la\n pendenza <ILatex>{`a_1`}</ILatex>.\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = a_0 + a_1 \\cdot {\\color{Green} x}`}</PLatex>\n <p>\n L'errore da minimizzare per ricavare i parametri sarà:\n </p>\n <PLatex>{r`\n \\min {\\color{Red} Q } = \\sum_{i = 1}^m ( {\\color{Yellow} a_0 + a_1 \\cdot x_i} - {\\color{Orange} f(x_i)} )^2\n `}</PLatex>\n </Panel>\n <Panel title={\"Regressione lineare matriciale\"}>\n <p>\n Possiamo costruire una <b>matrice di regressione</b> <ILatex>{r`A`}</ILatex> contenente tutti\n i <b>punti sperimentali</b>:\n </p>\n <PLatex>{r`\n A =\n \\begin{pmatrix}\n 1 & x_1\\\\\\\\\n 1 & x_2\\\\\\\\\n \\vdots & \\vdots\\\\\\\\\n 1 & x_m\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Inoltre, se costruiamo il <b>vettore dei parametri</b> <ILatex>{r`\\alpha`}</ILatex>:\n </p>\n <PLatex>{r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Avremo che:\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}</PLatex>\n <p>\n Inoltre, potremo calcolare l'errore attraverso la norma:\n </p>\n <PLatex>{r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}</PLatex>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Regressione polinomiale\"}>\n <p>\n Trova il <b>polinomio</b> <ILatex>{r`{\\color{Yellow} q}`}</ILatex> di\n grado <ILatex>{r`n-1`}</ILatex> che meglio approssima tutti gli <ILatex>{r`m`}</ILatex> dati\n sperimentali.\n </p>\n <p>\n Essendo un polinomio di grado <ILatex>{r`n-1`}</ILatex>, avrà <ILatex>{r`n`}</ILatex> parametri.\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = a_0 + a_1 \\cdot {\\color{Green} x} + a_2 \\cdot {\\color{Green} x^2} +\\ \\dots \\ + a_{n-1} \\cdot {\\color{Green} x^{n-1}`}</PLatex>\n <Example>\n <p>\n La regressione lineare è un caso particolare di regressione generale in cui i parametri sono\n 2!\n </p>\n </Example>\n <p>\n L'errore da minimizzare per ricavare i parametri sarà:\n </p>\n <PLatex>{r`\n \\min {\\color{Red} Q} = \\sum_{i = 1}^m ( {\\color{Yellow} a_0 + a_1 \\cdot x_i + a_2 \\cdot x_i^2 +\\ \\dots \\ + a_{n-1} \\cdot x_i^{n-1}} - {\\color{Orange} y_i} )^2\n `}</PLatex>\n </Panel>\n <Panel title={\"Regressione polinomiale matriciale\"}>\n <p>\n Possiamo costruire una <b>matrice di regressione</b> <ILatex>{r`A`}</ILatex> contenente tutti\n i <b>punti sperimentali</b> a tutti i gradi del polinomio:\n </p>\n <PLatex>{r`\n A =\n \\begin{pmatrix}\n 1 & x_1 & x_1^2 & \\dots & x_1^{n-1} \\\\\\\\\n 1 & x_2 & x_2^2 & \\dots & x_2^{n-1} \\\\\\\\\n \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\\\\\n 1 & x_m & x_m^2 & \\dots & x_m^{n-1}\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Inoltre, se costruiamo il <b>vettore dei parametri</b> <ILatex>{r`\\alpha`}</ILatex>:\n </p>\n <PLatex>{r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n \\vdots\\\\\\\\\n a_{n-1}\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Avremo che:\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}</PLatex>\n <p>\n Inoltre, potremo calcolare l'errore attraverso la norma:\n </p>\n <PLatex>{r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}</PLatex>\n <Example>\n Normalmente, i dati sono molti di più, ma se il numero di\n parametri <ILatex>{r`n`}</ILatex> fosse uguale al numero di dati <ILatex>{r`m`}</ILatex>, allora\n si otterrebbe il <b>polinomio di interpolazione</b>!\n </Example>\n </Panel>\n </Section>\n <Section>\n <Panel title={\"Regressione generale\"}>\n <p>\n Trova i <b>coefficienti della combinazione lineare</b>\n <ILatex>{r`{\\color{Yellow} q}`}</ILatex> che meglio approssima tutti\n gli <ILatex>{r`m`}</ILatex> dati sperimentali.\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = a_0 \\cdot {\\color{Green} \\phi_0 (x)} + a_1 \\cdot {\\color{Green} \\phi_1 (x)} + \\dots + a_2 \\cdot {\\color{Green} \\phi_2 (x)} +\\ \\dots\\ + a_{n-1} \\cdot {\\color{Green} \\phi_{n-1} (x)}`}</PLatex>\n <Example>\n <p>\n La regressione polinomiale è un caso particolare di regressione generale in cui:\n </p>\n <PLatex>{r`{\\color{Green} \\phi_{n} (x)} = x^n`}</PLatex>\n </Example>\n <p>\n L'errore da minimizzare per ricavare i parametri sarà:\n </p>\n <PLatex>{r`\n \\min {\\color{Red} Q } = \\sum_{i = 1}^m ( {\\color{Yellow} a_0 \\cdot \\phi_0 (x) + a_1 \\cdot \\phi_1 (x) + \\dots + a_2 \\cdot \\phi_2 (x) +\\ \\dots\\ + a_{n-1} \\cdot \\phi_{n-1} (x)} - {\\color{Orange} f(x_i)} )^2\n `}</PLatex>\n </Panel>\n <Panel title={\"Regressione polinomiale generale\"}>\n <p>\n Possiamo costruire una <b>matrice di regressione</b> <ILatex>{r`A`}</ILatex> contenente tutti\n i <b>punti sperimentali</b> a tutti i gradi del polinomio:\n </p>\n <PLatex>{r`\n A =\n \\begin{pmatrix}\n \\phi_0(x_1) & \\phi_1(x_1) & \\phi_2(x_1) & \\dots & \\phi_{n_1}(x_1) \\\\\\\\\n \\phi_0(x_2) & \\phi_1(x_2) & \\phi_2(x_2) & \\dots & \\phi_{n-1}(x_2) \\\\\\\\\n \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\\\\\n \\phi_0(x_m) & \\phi_1(x_m) & \\phi_2(x_m) & \\dots & \\phi_{n-1}(x_m)\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Inoltre, se costruiamo il <b>vettore dei parametri</b> <ILatex>{r`\\alpha`}</ILatex>:\n </p>\n <PLatex>{r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n \\vdots\\\\\\\\\n a_{n-1}\n \\end{pmatrix}\n `}</PLatex>\n <p>\n Avremo che:\n </p>\n <PLatex>{r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}</PLatex>\n <p>\n Inoltre, potremo calcolare l'errore attraverso la norma:\n </p>\n <PLatex>{r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}</PLatex>\n </Panel>\n </Section>\n <Section title={\"Trovare i parametri\"}>\n <Panel title={\"Caso non degenere\"}>\n <p>\n Caso che prevede che le colonne di <ILatex>{r`A`}</ILatex> siano <b>linearmente indipendenti</b>.\n </p>\n <p>\n La soluzione <b>esiste</b> sempre, ed è <b>unica</b>.\n </p>\n <p>\n Per trovarla:\n </p>\n <ul>\n <li>Fattorizziamo <ILatex>{r`A = Q \\cdot \\begin{pmatrix} R\\\\ 0 \\end{pmatrix}`}</ILatex>.</li>\n <li>Calcoliamo <ILatex>{r`w = Q^T \\cdot y`}</ILatex>.</li>\n <li>Teniamo solo i primi <ILatex>n</ILatex> valori di <ILatex>{r`w`}</ILatex> e mettiamoli\n in <ILatex>{r`w_1`}</ILatex>.\n </li>\n <li>Calcoliamo <ILatex>{r`R \\cdot \\alpha = w_1`}</ILatex>.</li>\n </ul>\n </Panel>\n <Panel title={\"Caso generale\"}>\n <p>\n Caso che non preclude alcuna composizione di <ILatex>{r`A`}</ILatex>.\n </p>\n <p>\n Ci sono <b>infinite</b> soluzioni, con <ILatex>{`n-k`}</ILatex> gradi di libertà.\n </p>\n <p>\n Si cerca sempre di trovare la <i>soluzione di norma minima</i>, che,\n se <ILatex>{r`k \\leq n \\leq m`}</ILatex>, allora è <b>unica</b>.\n </p>\n <p>\n Per trovarla:\n </p>\n <ul>\n <li>Fattorizziamo <ILatex>{r`A = U \\cdot \\Sigma \\cdot V^T`}</ILatex> con la <i>fattorizzazione\n SVD</i></li>\n <li>Calcoliamo <ILatex>{r`\\zeta = U^T \\cdot y`}</ILatex></li>\n <li>\n <p>\n Calcoliamo:\n </p>\n <PLatex>{r`\n \\gamma =\n \\begin{pmatrix}\n \\frac{z_1}{\\sigma_1}\\\\\\\\\n \\frac{z_2}{\\sigma_2}\\\\\\\\\n \\vdots\\\\\\\\\n \\frac{z_{k-1}}{\\sigma_{k-1}}\\\\\\\\\n \\frac{z_k}{\\sigma_k}\\\\\\\\\n 0\\\\\\\\\n 0\\\\\\\\\n \\vdots\\\\\\\\\n 0\n \\end{pmatrix} \n `}</PLatex>\n </li>\n <li>Calcoliamo <ILatex>{r`\\alpha = V \\cdot \\gamma`}</ILatex></li>\n </ul>\n <Example>\n Gli zeri nella <ILatex>{r`\\gamma`}</ILatex> sono i gradi di libertà, sono zero in modo che essi\n diano la norma minima.\n </Example>\n </Panel>\n </Section>\n </Fragment>\n )\n}\n"],"sourceRoot":""} |