{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./routes/CalcoloNumerico/03_Interpolazione.js","webpack:///./components/MenuList.less","webpack:///./routes/CalcoloNumerico/02_ZeriDiFunzione.js","webpack:///../src/components/Panels/Box.js","webpack:///../src/contexts/CurrentPage.js","webpack:///../src/contexts/LatexRenderColor.js","webpack:///../src/contexts/LatexDefaultInline.js","webpack:///../src/contexts/LatexDefaultDisplay.js","webpack:///../src/contexts/RoyalnetInstanceUrl.js","webpack:///../src/contexts/RoyalnetLoginStatus.js","webpack:///../src/utils/royalnetApiRequest.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","BoxColors","createContext","Object","freeze","RED","ORANGE","YELLOW","LIME","CYAN","BLUE","MAGENTA","DEFAULT","Error","props","class","style","menulist","children","example","href","to","color"],"mappings":"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","file":"route-CalcoloNumerico.chunk.0b50e.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 style from \"./03_Interpolazione.less\";\nimport {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex, Todo} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n \n
\n \n

\n Si vuole trovare una funzione in grado di approssimarne un'altra, di cui si conoscono però solo alcuni punti.\n

\n \n È utile in un sacco di casi! Ad esempio, quando si vuole scalare un'immagine.\n \n

\n I punti sono detti nodi {r`(x_i, y_i)`}, mentre la funzione costruita su di essi è detta interpolante {r`g`}:\n

\n {r`g(x_i) = y_i`}\n

\n Dato un insieme di punti, esistono infinite funzioni interpolanti.\n

\n
\n \n

\n Il teorema fondamentale dell'algebra dice che esiste una sola interpolante polinomiale che interpola un dato insieme di punti.\n

\n

\n Con n+1 punti, l'interpolante sarà al massimo di grado n, e viene detta {r`p_n`}.\n

\n

\n La sua forma canonica sarà:\n

\n {r`p_n(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \\dots + a_n x^n`}\n
\n
\n
\n \n

\n È possibile scrivere la forma canonica come matrice:\n

\n {r`A \\cdot x = b`}\n

\n Costruiamo la matrice di Vandermonde:\n

\n {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 `}\n

\n Costruiamo il vettore delle incognite:\n

\n {r`\n x = \n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n a_2\\\\\\\\\n \\vdots\\\\\\\\\n a_n\n \\end{pmatrix}\n `}\n

\n Costruiamo il vettore dei termini noti:\n

\n {r`\n b =\n \\begin{pmatrix}\n y_0\\\\\\\\\n y_1\\\\\\\\\n y_2\\\\\\\\\n \\vdots\\\\\\\\\n y_n\n \\end{pmatrix}\n `}\n \n Per trovare il polinomio di interpolazione è sufficiente risolvere il problema!\n \n

\n È efficace perchè una volta calcolati i coefficienti essi valgono per tutti i punti, ma ha come svantaggio che la matrice di Vandermonde è spesso malcondizionata.\n

\n
\n \n

\n È possibile scrivere il polinomio di interpolazione raccogliendo le {r`y`}:\n

\n {r`p_n (x) = y_0 L_0 + y_1 L_1 + y_2 L_2 + \\dots + y_n L_n`}\n

\n I polinomi {r`L_k`} sono detti polinomi di Lagrange, e hanno le seguenti proprietà:\n

\n
    \n
  • \n Valgono 1 in corrispondenza del nodo con lo stesso indice, 0 in corrispondenza dei nodi con indice diverso e {r`0 < n < 1`} in tutti gli altri casi.\n\n {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 `}
  • \n
  • \n Si compongono con questo prodotto:\n\n {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)}`}\n
  • \n
\n Non c'è il termine con {r`x_k`}!\n

\n Tutti insieme formano la base di Lagrange.\n

\n Si chiama base perchè sono linearmente indipendenti!\n

\n Questo metodo permette di calcolare il valore del polinomio di interpolazione in un singolo punto:\n

\n \n

\n Si può risparmiare tempo di calcolo calcolando una singola volta il numeratore con tutti i termini:\n

\n {r`\\omega_n = (x - x_0) \\cdot (x - x_1) \\cdot \\dots \\cdot (x - x_n)`}\n

\n E poi dividendo per il termine che andrebbe escluso:\n

\n {r`L_k(x) = \\frac{ \\omega_n }{ (x - x_k) \\cdot \\prod_{i=0, i \\neq k} (x_k - x_i) }`}\n
\n

\n Ha costo computazionale {r`O(n^2)`}.\n

\n
\n
\n
\n \n

\n È l'errore compiuto durante l'interpolazione.\n

\n

\n Se la funzione f è interpolata da p_n, allora esso varrà:\n

\n {r`R_n(x) = f(x) - p_n(x)`}\n

\n In particolare, è interessante la sua norma a infinito, {r`\\| f - p_n \\|_\\infty`}, che corrisponde alla distanza massima tra le due funzioni.\n

\n

\n Un teorema dice che esso è uguale a: TODO: Non credo serva.\n

\n {r`R_n(x) = \\frac{ \\omega_n(x) }{ (n + 1)! } \\cdot f^{(n+1)}(\\xi)`}\n
\n \n

\n TODO: Tutta la dimostrazione di queste due affermazioni.\n

\n

\n L'errore nell'interpolazione dipende principalmente da due fattori:\n

\n
    \n
  • Come sono distribuiti sull'asse X i punti da interpolare
  • \n
  • Il grado del polinomio di interpolazione
  • \n
\n
\n
\n
\n \n

\n Fenomeno che si verifica cercando di interpolare la funzione di Runge ({r`\\frac{1}{1 + 25x^2}`}).\n

\n

\n Scegliendo nodi equispaziati, l'errore di interpolazione sarà enorme vicino ai due estremi dell'intervallo.\n

\n \n Addirittura, più nodi verranno scelti, più esso sarà alto!\n \n

\n Si evita scegliendo i nodi in una maniera diversa.\n

\n
\n \n

\n Nodi ottenuti partizionando una semicirconferenza, e proiettando le partizioni sul diametro.\n

\n

\n La formula usata per ottenere {r`n`} punti è:\n

\n {r`x_i = \\cos \\left( \\frac{ (2 \\cdot i + 1) \\cdot \\pi }{ 2 \\cdot (n+1) } \\right)`}\n

\n Proprietà di min-max: sono la scelta ottimale dei punti di interpolazione.\n

\n {r`\\omega_n(\\star) = \\max_{x \\in [a, b]} \\left| \\omega_n(x) \\right|`}\n

\n In particolare, si ha che:\n

\n {r`\\omega_n(\\star) = 2 \\left( \\frac{b-a}{4} \\right)^{n+1}`}\n
\n
\n
\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menulist\":\"menulist__2Cmnq\"};","import style from \"./02_ZeriDiFunzione.less\";\nimport {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex, Todo} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n \n
\n \n

\n Si vogliono trovare i punti (zeri) in cui una funzione continua f : [a, b] \\to R vale 0.\n

\n

\n Per il teorema del valore medio, se {r`f(a) \\cdot f(b) \\leq 0`}, allora esiste sicuramente un punto in cui la funzione vale 0.\n

\n

\n Denominiamo il punto in cui la funzione vale 0 come {r`x_{(\\star)}`}.\n

\n
\n \n

\n Più la derivata prima della funzione si avvicina allo 0, peggio il problema sarà condizionato.\n

\n {r`f'(x_{(\\star)}) \\simeq 0 \\implies mal\\ condizionato`}\n
\n
\n
\n \n

\n Indice {r`{\\color{Orange} p}`} di quanto in fretta una successione converge alla soluzione.\n

\n {r`\\lim_{i \\to +\\infty} \\frac{ \\left| x_{(i+1)} - x_{(\\star)} \\right| }{ \\left| x_{(k)} - x_{(\\star)} \\right|^{\\color{Orange} p}}`}\n
    \n
  • Convergenza lineare: {r`p = 1`} e {r`0 < C < 1`}
  • \n
  • Convergenza superlineare: {r`p = 1`} e {r`C = 0`}
  • \n
  • Convergenza quadratica: {r`p = 2`} e {r`0 < C < 1`}
  • \n
  • Convergenza superquadratica: {r`p = 2`} e {r`C = 0`}
  • \n
  • ...
  • \n
\n
\n
\n
\n \n

\n Sono metodi iterativi in grado di ridurre sempre di più l'intervallo in cui è definita la funzione, facendolo convergere allo zero desiderato.\n

\n

\n Alcuni di essi sono il metodo dicotomico e il metodo regula falsi.\n

\n

\n Richiedono una valutazione di funzione non-lineare ad ogni iterazione.\n

\n

\n Ad ogni iterazione, l'intervallo viene sempre almeno dimezzato; si ha, pertanto, che:\n

\n {r`b_{(i)} - a_{(i)} = \\frac{b - a}{2^{i - 1}}`}\n

\n Hanno quindi convergenza lineare ({r`C = \\frac{1}{2}, p = 1`}).\n

\n

\n Il loro criterio di arresto è un numero di iterazioni prefissato che dipende dalla tolleranza sull'errore:\n

\n {r`i \\geq \\log_2 \\left( \\frac{b - a}{\\tau} \\right)`}\n \n Dividi l'intervallo {r`[a, b]`} in tante parti grandi quanto la tolleranza. L'algoritmo di bisezione ne escluderà metà ad ogni iterazione; la tolleranza sarà raggiunta quando rimarrà una parte sola!\n \n
\n
\n
\n \n
    \n
  1. Finchè non sono state compiute il numero di iterazioni prefissate:\n
      \n
    1. \n Calcoliamo il punto medio dell'intervallo {r`[a_{(n)}, b_{(n)}]`}:\n {r`c_{(n)} = a_{(n)} + \\frac{b_{(n)} - a_{(n)}}{2}`}\n
    2. \n
    3. \n Dividiamo l'intervallo in due parti, separate da {r`c_{(n)}`}:\n
        \n
      • {r`[a_{(n)}, c_{(n)}]`} è la metà sinistra
      • \n
      • {r`[c_{(n)}, b_{(n)}]`} è la metà destra
      • \n
      \n
    4. \n
    5. \n Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e rinominiamolo in {r`[a_{(n+1)}, b_{(n+1)}]`}.\n
    6. \n
    \n
  2. \n
\n
\n \n
    \n
  1. Finchè non sono state compiute il numero di iterazioni prefissate:\n
      \n
    1. \n Calcoliamo l'intersezione tra la retta che congiunge i due estremi {r`a_{(n)}, b_{(n)}`} e l'asse X:\n {r`c_{(n)} = b_{(n)} - \\frac{f(b_{(n)})}{\\frac{f(b_{(n)}) - f(a_{(n)})}{b_{(n)} - a_{(n)}}}`}\n
    2. \n
    3. \n Dividiamo l'intervallo in due parti, separate da {r`c_{(n)}`}:\n
        \n
      • {r`[a_{(n)}, c_{(n)}]`} è la parte sinistra
      • \n
      • {r`[c_{(n)}, b_{(n)}]`} è la parte destra
      • \n
      \n
    4. \n
    5. \n Teniamo l'intervallo in cui i valori della funzione ai due estremi sono discordi, e rinominiamolo in {r`[a_{(n+1)}, b_{(n+1)}]`}.\n
    6. \n
    \n
  2. \n
\n
\n
\n
\n \n

\n Sono metodi iterativi che funzionano in modo molto simile ai metodi iterativi per i sistemi lineari, utilizzando una funzione {r`\\phi`} come \"metodo\".\n

\n {r`x = x - \\phi(x) \\cdot f(x)`}\n

\n Che diventa:\n

\n {r`x_{(k+1)} = g( x_{(k)} )`}\n

\n Sfruttano i punti fissi {r`g(x_{(\\star)}) = x_{(\\star)}`} della funzione {r`f`} per convergere:
\n se {r`\\phi(x)`} non ha zeri, allora i punti fissi coincideranno con gli zeri della funzione {r`f`}.\n

\n {r`g(x) = x - \\phi(x) \\cdot f(x)`}\n

\n Si può raggiungere iterativamente ad un punto fisso attraverso la formula:\n

\n {r`x_{(k+1)} = g( x_{(k)} )`}\n

\n Non si conosce in anticipo il numero di iterazioni necessarie per soddisfare la tolleranza {r`\\tau`}; ad ogni iterazione, si controlla se la tolleranza è soddisfatta:\n

\n
    \n
  • Nella differenza tra due iterate: {r`\\frac{\\left| x_{(k+1)} - x_{(k)} \\right|}{\\left| x_{(k+1)} \\right|} \\leq \\tau`}
  • \n
  • Nel residuo del problema: {r`\\left| f(x_{(k)}) \\right| \\leq \\tau`}
  • \n
\n
\n \n

\n Se:\n

\n
    \n
  • \n Tutti i valori restituiti dalla funzione {r`g`} rientrano nel suo stesso dominio:\n {r`g : [a, b] \\to [a, b]`}\n
  • \n
  • \n

    \n La funzione {r`g`} è una contrazione, ovvero restringe l'intervallo {r`[a, b]`}:\n

    \n {r`\\forall (x, y) \\in [a, b], | g(x) - g(y) | \\leq L \\cdot | x - y |`}\n

    \n (dove {r`0 < L < 1`})\n

    \n
  • \n
\n

\n Allora:\n

\n
    \n
  • \n

    \n Il punto fisso esiste ed è unico:\n

    \n {r`\\exists! x_{(\\star)}`}\n
  • \n
  • \n Il metodo delle approssimazioni successive converge per qualsiasi punto di partenza.\n
  • \n
  • \n

    \n Vale la seguente disequazione di maggiorazione dell'errore:\n

    \n {r`\\left| x_{(k)} - x_{(\\star)} \\right| \\leq \\frac{ L^k }{ 1 - L } \\cdot \\left| x_{(1)} - x_{(0)} \\right|`}\n
  • \n
\n

\n Più è piccolo L, più il metodo convergerà in fretta.\n

\n \n L è molto simile al raggio spettrale {r`\\rho(M)`} dei metodi iterativi per i sistemi lineari!\n \n
\n
\n
\n \n

\n Sfrutta la continuità delle funzioni per ottenere una convergenza di ordine più alto.\n

\n {r`\\phi (x) = \\frac{1}{f' (x)}`}\n {r`x_{(k+1)} = x_{(k)} - \\frac{ f(x_{(k)}) }{ f'(x_{(k)}) }`}\n \n Geometricamente, corrisponde a prolungare una retta nel punto {r`(x_{(k)}, f(x_{(k)}))`} con pendenza {r`f'(x_{(k)})`}, e prendendo come nuovo punto la sua intersezione con l'asse X e la sua corrispettiva immagine nella funzione.\n \n

\n Ha costo computazionale di 2 valutazioni di funzione più 2 valutazioni di derivata.\n

\n

\n Ha convergenza quadratica.\n

\n
\n \n

\n È come il metodo di Newton, ma usa il rapporto incrementale, in modo da poter essere applicato a funzioni non continue.\n

\n {r`\\phi (x) = \\frac{ 1 }{ \\frac{ f(x_{(k)}) - f(x_{(k-1)}) }{ x_{(k)} - x_{(k-1)} } }`}\n {r`x_{(k+1)} = x_{(k)} - \\frac{ f(x_{(k)}) }{ \\frac{ f(x_{(k)}) - f(x_{(k-1)}) }{ x_{(k)} - x_{(k-1)} } }`}\n \n Geometricamente, corrisponde a costruire una retta che attraversa i punti {r`(x_{(k)}, f(x_{(k)}))`} e {r`(x_{(k-1)}, f(x_{(k-1)}))`}, e prendendo come nuovo punto la sua intersezione con l'asse X e la sua corrispettiva immagine nella funzione.\n \n

\n Ha costo computazionale di 3 valutazioni di funzione.\n

\n

\n Ha convergenza superlineare.\n

\n
\n
\n
\n \n

\n È possibile usare questi metodi per approssimare le soluzioni di sistemi non-lineari.\n

\n
\n
\n
\n )\n}\n","import style from \"./Box.less\";\nimport concatClass from \"../../utils/concatClass\";\n\nexport const BoxColors = Object.freeze({\n RED: style.red,\n ORANGE: style.orange,\n YELLOW: style.yellow,\n LIME: style.lime,\n CYAN: style.cyan,\n BLUE: style.blue,\n MAGENTA: style.magenta,\n DEFAULT: style.default\n})\n\nexport default function (props) {\n let color = BoxColors.DEFAULT;\n if(props.color) {\n color = props.color;\n }\n\n return (\n
\n {props.children}\n
\n );\n}\n","import { createContext } from 'preact';\n\nexport default createContext(undefined);\n","import {createContext} from \"preact\";\n\nexport default createContext(\"White\");\n","import {createContext} from \"preact\";\n\nexport default createContext(true);\n","import {createContext} from \"preact\";\n\nexport default createContext(null);\n","import {createContext} from \"preact\";\n\nexport default createContext(undefined);\n","import { createContext } from 'preact';\n\nexport default createContext(null);\n","// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\nclass RoyalnetApiError extends Error {\n constructor(errorCode, errorType, errorArgs, ...params) {\n // noinspection JSCheckFunctionSignatures\n super(...params);\n if(Error.captureStackTrace) Error.captureStackTrace(this, RoyalnetApiError);\n\n this.name = \"RoyalnetApiError\";\n this.errorCode = errorCode;\n this.errorType = errorType;\n this.errorArgs = errorArgs;\n this.message = `${errorCode} | ${errorType} | ${errorArgs.join(\"|\")}`;\n }\n}\n\n\nasync function royalnetApiRequest(baseUrl, method, path, args, abortSignal) {\n if(args === undefined || args === null) {\n args = {};\n }\n\n let body;\n let url;\n if(method === \"GET\") {\n body = undefined;\n //Create a query string\n let params = new URLSearchParams();\n //Use the items in the args object as key-value pairs for the query string\n Object.keys(args).forEach(key => {\n let arg = args[key];\n params.append(key, arg);\n });\n url = `${baseUrl}${path}?${params.toString()}`;\n }\n else {\n body = JSON.stringify(args);\n url = `${baseUrl}${path}`;\n }\n\n //Make the request\n let response = await fetch(url, {\n method: method,\n body: body,\n signal: abortSignal,\n });\n //Parse the response as JSON\n let json = await response.json();\n //Check if the request was a success\n if(json[\"success\"] === false) {\n throw new RoyalnetApiError(json[\"error_code\"], json[\"error_type\"], json[\"error_args\"])\n }\n return json[\"data\"]\n}\n\nexport {royalnetApiRequest, RoyalnetApiError};\n","import style from \"./04_InterpolazioneATratti.less\";\nimport {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex, Todo} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n \n
\n \n

\n Invece che costruire una singola funzione che interpola tutti i punti, per ogni intervallo tra due punti (sottointervallo) si costruisce una funzione apposta.\n

\n
\n
\n
\n \n

\n Interpolanti che:\n

\n
    \n
  • sono polinomiali di grado massimo {r`n`}
  • \n
  • sono continue fino al grado {r`n - 1`}
  • \n
  • connettono {r`m + 2`} punti, e hanno {r`m`} sottointervalli
  • \n
  • hanno funzioni definite appositamente per ogni sottointervallo
  • \n
\n \n

\n Significa che agli estremi dell'intervallo, i valori di tutte le derivate fino al grado {r`n - 1`} devono essere uguali:\n

\n {r`\\forall \\ k \\leq n-1, \\forall \\ i \\in \\{intervalli\\}, \\quad s_i^{(k)} (x_{i+1}) = s_i^{(k)} (x_{i+1})`}\n
\n

\n Hanno {r`n + m + 1`} gradi di libertà.\n

\n \n Esistono infinite spline di grado {r`n \\geq 2`}!\n \n
\n
\n
\n \n \n Sono anche dette interpolanti lineari a tratti.\n \n

\n Per ogni sottointervallo, costruiamo una funzione lineare passante per i due estremi:\n

\n {r`s_i(x) = y_i + \\frac{ y_{i + 1} - y_i }{ x_{i + 1} - x_i } \\cdot (x - x_i)`}\n \n È una linea spezzata!\n \n

\n Il loro errore è:\n

\n {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`}\n

\n Ha come vantaggi complessità computazionale molto più bassa e l'assenza del fenomeno di Runge, ma allo stesso tempo si perde la derivabilità della funzione.\n

\n

\n Non hanno gradi di libertà.\n

\n
\n \n

\n Spline con {r`n = 3`}, che soddisfano le seguenti uguaglianze:\n

\n {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 `}\n {r`\n \\forall \\ i \\in \\{0,\\ \\dots\\ ,\\ m + 1\\},\\ \n \\begin{cases}\n s_i(x_i) = y_i\n \\end{cases}\n `}\n

\n Esse hanno la seguente equazione:\n

\n {r`s_i(x) = \\alpha_i + \\beta_i \\ ( x - x_i ) + \\gamma_i \\ ( x - x_i )^2 + \\delta_i \\ ( x - x_i )^3`}\n \n Spesso si indica con {r`h`} la distanza orizzontale tra due punti di un sottointervallo.\n \n
\n
\n
\n \n

\n Classe di spline cubiche in cui:\n

\n
    \n
  • {r`\\beta_0`} e {r`\\beta_{m+1}`} sono prefissati
  • \n
\n

\n È unica.\n

\n

\n Forma il seguente sistema di equazioni:\n

\n {r`T z = c`}\n {r`\n b_i = h_{i+1} \\beta_i + 2 ( h_i + h_{i+1} ) + h_{i} \\beta_i+2\n `}\n {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 `}\n {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 `}\n {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 `}\n
\n
\n
\n \n

\n Classe di spline cubiche in cui:\n

\n
    \n
  • {r`s''(x_0) = s''(x_{m+1}) = 0`}
  • \n
\n

\n È unica.\n

\n
\n \n

\n Classe di spline cubiche in cui:\n

\n
    \n
  • {r`s(x) = s(m+1)`}
  • \n
  • {r`s'(x) = s'(m+1)`}
  • \n
  • {r`s''(x) = s''(m+1)`}
  • \n
\n

\n È unica.\n

\n
\n \n

\n Classe di spline cubiche in cui:\n

\n
    \n
  • Negli intervalli {r`[x_0, x_2]`} e {r`[x_{m-1}, x_{m+1}]`} si presenta obbligatoriamente un polinomio di grado 3.
  • \n
\n

\n È unica.\n

\n
\n
\n
\n \n

\n Tra tutte le funzioni che interpolano dei punti, le tre classi di funzioni sopraelencate sono quelle che interpolano la funzione più \"dolcemente\".\n

\n

\n Per loro è valida la seguente proprietà:\n

\n {r`\\int_a^b ( s''(x) )^2 dx \\leq \\int_a^b ( f''(x) )^2 dx`}\n
\n \n

\n Più diminuisce la lunghezza {r`h`} degli intervalli, più aumenta l'accuratezza.\n

\n

\n Non si verifica il fenomeno di Runge.\n

\n

\n Si ha un'interpolazione anche della derivata prima.\n

\n
\n
\n
\n )\n}\n","import style from \"./MenuList.less\";\n\nexport default function(props) {\n return (\n \n )\n}","import style from \"./Example.less\";\n\nexport default function (props) {\n return (\n
\n {props.children}\n
\n );\n}\n","import style from \"./01_SistemiLineari.less\"\nimport {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 \n
\n \n

\n Dato un sistema di equazioni lineari, si vuole trovare la sua soluzione.\n

\n

\n In forma matriciale, avrà una matrice dei coefficienti {r`A`}, un vettore dei termini noti {r`b`} e un vettore delle incognite {r`x`}.\n

\n

\n L'equazione matriciale del sistema è:\n

\n {r`A \\cdot x = b`}\n
\n \n

\n Il condizionamento della risoluzione di sistemi lineari è:\n

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

\n In particolare, è segnato in giallo nella formula il numero di condizionamento:\n

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

\n Metodi che trovano la soluzione esatta* di un sistema lineare.\n

\n

\n Tipicamente prevedono la fattorizzazione della matrice dei coefficienti in due sottomatrici più facili da risolvere.\n

\n

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

\n
\n \n

\n Metodi che trovano una soluzione imperfetta* di un sistema lineare.\n

\n

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

\n

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

\n
\n
\n
\n \n

\n Se la matrice dei coefficienti del sistema è diagonale, allora è possibile trovare la soluzione dividendo ogni termine noto per l'unico coefficiente diverso da zero presente nella sua riga:\n

\n {r`x_i = \\frac{b_i}{A_{ii}}`}\n
\n \n

\n Se la matrice dei coefficienti del sistema è triangolare inferiore o superiore, allora è possibile trovare la soluzione effettuando una sostituzione all'avanti oppure all'indietro:\n

\n {r`x_i = \\frac{b_i - \\sum_{k = 1}^{i - 1} (x_k \\cdot A_{ik})}{A_{ii}}`}\n {r`x_i = \\frac{b_i - \\sum_{k = i - 1}^{n} (x_k \\cdot A_{ik})}{A_{ii}}`}\n
\n
\n
\n Fattorizzazione {r`LU`}}>\n

\n Se tutti i valori sulla diagonale di {r`A`} sono diversi da 0 (eccetto l'ultimo) allora è possibile fattorizzarla in due matrici: una {r`L`} triangolare inferiore, e una {r`U`} triangolare superiore.\n

\n {r`A = L \\cdot U`}\n \n Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo metodo di Gauss.\n \n

\n La matrice {r`L`} è così composta:\n

\n {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 `}\n \n Sono i moltiplicatori usati per rendere annullare il triangolo inferiore!\n \n

\n La matrice {r`U`} è così composta:\n

\n {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 `}\n \n È la parte triangolare superiore di {r`A`}!\n \n

\n Il sistema può essere poi risolto applicando due volte il metodo di sostituzione (all'avanti e all'indietro):\n

\n {r`\n \\begin{cases}\n L \\cdot y = b\\\\\n U \\cdot x = y\n \\end{cases}\n `}\n

\n Questo metodo ha costo computazionale:\n

\n {r`{\\color{Yellow} O\\left(\\frac{n^3}{3}\\right)} + 2 \\cdot O\\left(\\frac{n^2}{2}\\right)`}\n
\n Fattorizzazione {r`LU`} con pivoting parziale}>\n

\n È possibile applicare la fattorizzazione {r`LU`} a qualsiasi matrice non-singolare permettendo lo scambio (pivoting) delle righe, potenzialmente aumentando la stabilità dell'algoritmo.\n

\n \n Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo metodo di Gauss-Jordan!\n \n

\n Alla formula precedente si aggiunge una matrice di permutazione che indica quali righe sono state scambiate:\n

\n {r`P \\cdot A = L \\cdot U`}\n

\n Per massimizzare la stabilità, si cerca di usare come perno l'elemento più grande della colonna.\n

\n

\n Questo metodo ha costo computazionale:\n

\n {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)`}\n
\n Fattorizzazione {r`LU`} con pivoting totale}>\n

\n È possibile anche permettere il pivoting sulle colonne per aumentare ulteriormente la stabilità dell'algoritmo, a costo di maggiore costo computazionale:\n

\n {r`P \\cdot A \\cdot Q = L \\cdot U`}\n

\n Per massimizzare la stabilità, si cerca di ordinare in modo decrescente la diagonale, assicurandoci che il primo perno sia più grande del secondo e così via.\n

\n

\n Questo metodo ha costo computazionale:\n

\n {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)`}\n
\n
\n
\n Fattorizzazione {r`LU`} a banda}>\n

\n Se la matrice {r`A`} è a banda, è possibile risparmiare spazio durante la fattorizzazione, in quanto sia {r`L`} sia {r`U`} saranno a banda!\n

\n
\n Fattorizzazione {r`LU`} sparsa}>\n

\n Se la matrice {r`A`} è sparsa, non è detto che {r`L`} e {r`U`} siano sparse a loro volta.\n

\n

\n Per evitare il fill-in, è necessario riordinare la matrice {r`A`} in modo che sia il più possibile simile a una matrice a banda. TODO: Confermare?\n

\n
\n
\n
\n Fattorizzazione {r`LDL^{-1}`}}>\n

\n È possibile ridurre la complessità computazionale della fattorizzazione {r`LU`} se la matrice dei coefficienti è simmetrica:\n

\n {r`A = L \\cdot D \\cdot L^{-1}`}\n

\n In questo caso, si calcola solo la matrice L, utilizzando il metodo di pavimentazione.\n

\n {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 `}\n \n

\n La prima colonna della matrice sarà:\n

\n {r`\n \\begin{cases}\n d_{11} = A_{11}\\\\\n \\\\\n l_{i1} = \\frac{A_{i1}}{d_{11}}\n \\end{cases}\n `}\n

\n La seconda colonna della matrice sarà:\n

\n {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 `}\n
\n

\n Questo metodo ha costo computazionale:\n

\n {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)`}\n
\n Fattorizzazione {r`\\mathcal{L} \\mathcal{L}^{-1}`}}>\n

\n È possibile dare stabilità forte alla fattorizzazione {r`LDL^{-1}`} se la matrice dei coefficienti è simmetrica definita positiva:\n

\n {r`A = \\mathcal{L} \\cdot \\mathcal{L}^{-1}`}\n

\n Il metodo di pavimentazione diventa:\n

\n {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 `}\n

\n Questo metodo ha costo computazionale:\n

\n {r`O\\left(\\frac{n^3}{3}\\right) + O\\left(\\frac{n^3}{3}\\right) + 2 \\cdot O\\left(\\frac{n^2}{2}\\right)`}\n
\n
\n
\n \n

\n Matrice ricavata dalla seguente formula, dove {r`v`} è la colonna di un'altra matrice:\n

\n {r`U(v) = \\mathbf{I} - \\frac{2 \\cdot v \\cdot v^T}{\\| v \\|_{(2)}^2}`}\n

\n Se moltiplicata per per la matrice da cui proviene {r`v`}, sostituirà la colonna {r`v`} con la colonna:\n

\n {r`\n \\begin{pmatrix}\n - \\| v \\|\\\\\\\\\n 0\\\\\\\\\n 0\\\\\\\\\n \\vdots\\\\\\\\\n 0\n \\end{pmatrix}\n `}\n

\n Si calcola con una complessità computazionale nell'ordine di {r`O(n)`}.\n

\n
\n Fattorizzazione {r`QR`}}>\n

\n Metodo che fornisce una maggiore stabilità a costo di una maggiore complessità computazionale.\n

\n

\n La matrice {r`A`} viene fattorizzata in due matrici, una ortogonale {r`Q`} e una triangolare superiore {r`R`}:\n

\n {r`A = Q \\cdot R`}\n

\n Le matrici si ottengono dal prodotto delle trasformazioni di Householder (che concatenate formano {r`Q`}) sulla matrice {r`A`} necessarie a trasformarla in una matrice triangolare superiore ({r`R`}).\n

\n \n C'è un bell'esempietto qui.\n \n

\n Una volta fattorizzata, il sistema si può risolvere con:\n

\n {r`\n \\begin{cases}\n y = Q^T \\cdot b\\\\\n R \\cdot x = y\n \\end{cases}\n `}\n

\n Questo metodo ha costo computazionale:\n

\n {r`{\\color{Yellow} O\\left(\\frac{2 \\cdot n^3}{3}\\right)} + 2 \\cdot O\\left(\\frac{n^2}{2}\\right)`}\n
\n
\n
\n \n

\n Se si pone che:\n

\n {r`\n \\begin{cases}\n G = I - M^{-1} \\cdot A\\\\\n c = M^{-1} \\cdot b\n \\end{cases}\n `}\n

\n Allora la formula generale di un sistema lineare può anche essere scritta in questo modo:\n

\n {r`x = G \\cdot x + c`}\n

\n È particolarmente utile perchè ci permette di definire un algoritmo ricorsivo che trovi {r`x`}:\n

\n {r`x_{(i+1)} = G \\cdot x_{(i)} + c`}\n

\n {r`G`} è il metodo, e in base ad esso cambiano stabilità e velocità di convergenza.\n

\n

\n Ponendo {r`A = M - N`}, la formula può essere scritta anche in questo modo:\n

\n {r`M \\cdot x_{(i+1)} = N \\cdot x_{(i)} + b`}\n

\n Possiamo ottenere alcuni metodi separando A in tre matrici:\n

\n
    \n
  • La parte diagonale {r`D`}
  • \n
  • L'opposto del triangolo inferiore {r`E`}
  • \n
  • L'opposto del triangolo superiore {r`F`}
  • \n
\n {r`A = D - E - F`}\n
\n \n

\n Un metodo è convergente se e solo se:\n

\n {r`\\rho (M) < 1`}\n

\n (dove {r`\\rho`} è il raggio spettrale, il massimo autovalore della matrice)\n

\n

\n Perchè un metodo sia convergente, è sufficiente che:\n

\n {r`\\| M \\| < 1`}\n

\n TODO: l'algoritmo con tau per le condizioni di arresto\n

\n
\n
\n
\n \n

\n Il metodo di Jacobi si ottiene ponendo:\n

\n {r`\n \\begin{cases}\n M = D\\\\\n N = E + F\n \\end{cases}\n `}\n

\n Spostamenti simultanei: Permette di ottenere ogni componente di {r`x`} indipendentemente dagli altri: è parallelizzabile.\n

\n

\n Se la matrice è diagonale dominante, allora il metodo di Jacobi converge sicuramente.\n

\n
\n \n

\n Il metodo di Gauss-Seidel si ottiene ponendo:\n

\n {r`\n \\begin{cases}\n M = D - E\\\\\n N = F\n \\end{cases}\n `}\n

\n Ha una velocità di convergenza maggiore o uguale rispetto al metodo di Jacobi.\n

\n

\n Spostamenti successivi: Non è parallelizzabile, perchè ogni componente dipende da quelle calcolate in precedenza.\n

\n

\n Se la matrice è diagonale dominante, allora il metodo di Gauss-Seidel converge sicuramente.\n

\n
\n
\n
\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\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n
\n

Calcolo Numerico

\n \n \n \n \n \n \n
\n )\n}\n","import style from \"./00_Intro.less\"\nimport {ILatex, Panel, PLatex, Section, Timer} from \"bluelib\";\nimport Link from \"../../components/Link\";\nimport MenuList from \"../../components/MenuList\";\nimport Example from \"../../components/Example\";\nimport {Fragment} from \"preact\";\nimport {BoxColors} from \"bluelib/dist/index.modern\";\n\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n \n
\n \n
    \n
  • Prof.ssa Silvia Bonettini
  • \n
\n
\n \n

\n E' composto da:\n

\n
    \n
  • 2 domande sugli argomenti teorici
  • \n
  • 1 domanda di implementazione algoritmo in MATLAB
  • \n
\n
\n \n
    \n
  1. \n
  2. \n
\n
\n
\n
\n \n

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

\n \n
  • \n Ripasso di Algebra Lineare (per studenti sperduti di Calcolo Numerico)\n
  • \n
    \n
    \n Novità: Anki}>\n

    \n Ho provato a fare un deck Anki con tutte le formule di Calcolo numerico.\n

    \n

    \n Sappiatemi dire com'è! Io non l'ho usato moltissimo perchè ho studiato scrivendo questa pagina di Appuntiweb...\n

    \n \n
  • Scarica il deck Anki
  • \n
    \n
    \n
    \n
    \n \n

    \n Particolari algoritmi che hanno:\n

    \n
      \n
    • numeri reali in input e output
    • \n
    • successioni delle quattro operazioni aritmetiche fondamentali come passi
    • \n
    \n
    \n
    \n
    \n \n

    \n Con i numeri floating point può capitare che un certo numero {r`\\alpha`} non\n sia rappresentato correttamente.\n

    \n

    \n In tal caso, il numero si indica con {r`\\alpha^\\star`}.\n

    \n
    \n
    \n
    \n \n

    \n È la differenza tra il numero desiderato e il numero rappresentato:\n

    \n {r`E_a = \\left | \\alpha - \\alpha^\\star \\right |`}\n
    \n \n

    \n Indica quanto il numero rappresentato differisce dal numero desiderato:\n

    \n {r`\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}`}\n
    \n
    \n
    \n \n

    \n Metodo con cui gestire gli underflow floating point: le cifre meno significative\n vengono rimosse.\n

    \n \n
    \n                            1.00  →  1.0
    \n 1.01 → 1.0
    \n 1.10 → 1.1
    \n 1.11 → 1.1\n
    \n
    \n
    \n \n

    \n Metodo con cui gestire gli underflow floating point: se la cifra più significativa di\n quelle che devono essere rimosse è 1, allora aumenta di 1 anche quella meno signficativa\n che viene tenuta.\n

    \n \n
    \n                            1.00  →  1.0
    \n 1.01 → 1.0
    \n 1.10 → 1.1
    \n 1.11 → 10.\n
    \n
    \n
    \n
    \n
    \n \n

    \n Un numero reale rappresentato in virgola mobile ha un errore relativo minore o uguale alla precisione\n di macchina:\n

    \n

    \n {r`E_r \\leq k \\cdot \\beta^{1-t}`}\n

    \n
      \n
    • \n \\beta è uguale alla base utilizzata (solitamente 2).\n
    • \n
    • \n t è uguale al numero di cifre della mantissa.\n
    • \n
    • \n k è uguale a 1 se il numero viene rappresentato per\n troncamento oppure a {r`\\frac{1}{2}`} se viene rappresentato per\n arrotondamento.\n
    • \n
    \n
    \n \n

    \n Associa un valore reale al suo corrispondente valore floating point, utilizzando uno dei\n due metodi di gestione dell'undeflow.\n

    \n {r`fl(x) = (x)(1 + \\epsilon_x)`}\n \n Indica che un valore è soggetto alla precisione di macchina.\n {r`fl(1.11) = 1.1`}\n \n
    \n
    \n
    \n \n

    \n L'insieme {r`\\mathbb{F}`} è il sottoinsieme dei numeri reali rappresentabili in\n floating point dalla macchina che stiamo usando.\n

    \n

    \n Operazioni tra elementi di {r`\\mathbb{F}`} producono risultati\n in {r`\\mathbb{R}`}, che però decaderanno nuovamente a elementi\n di {r`\\mathbb{F}`}, perdendo informazioni.\n

    \n

    \n Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.\n

    \n
    \n \n
      \n
    • Hanno più elementi neutri.
    • \n
    • Un numero ha più opposti.
    • \n
    • Non sono associative.
    • \n
    • Non sono distributive.
    • \n
    • Non vale la legge di annullamento del prodotto.
    • \n
    \n
    \n
    \n
    \n \n

    \n Errore derivato da underflow sui dati.\n

    \n

    \n Si indica con {r`\\epsilon_{nome\\_var}`}.\n

    \n \n L'errore sulla variabile x si indica con {r`\\epsilon_{x}`}.\n \n
    \n \n

    \n Errore derivato da underflow durante l'esecuzione dell'algoritmo.\n

    \n

    \n Si indica con {r`\\epsilon_{num\\_passo}`}.\n

    \n \n L'errore al primo passo dell'algoritmo si indica con {r`\\epsilon_{1}`}.\n \n
    \n
    \n
    \n \n

    \n Sensibilità di un problema all'errore inerente.\n

    \n \n {r`y = \\frac{1}{x}`} è mal condizionato intorno allo 0 e ben condizionato\n lontano dallo 0.\n \n
    \n \n

    \n Sensibilità di un problema all'errore algoritmico.\n

    \n \n

    \n Cerchiamo un algoritmo che risolva {r`2x^\\star = 4`}.\n

    \n

    \n Calcolare prima {r`t = fl \\left( \\frac{1}{4} \\right)`} e\n poi {r`x = fl ( 2 \\cdot t )`} porta a una perdita di precisione.\n

    \n

    \n Calcolare direttamente {r`x = fl \\left( \\frac{2}{4} \\right)`} non ha alcuna\n perdita di precisione e rende l'algoritmo più stabile del precedente.\n

    \n
    \n
    \n
    \n
    \n \n

    \n È il coefficiente di proporzionalità tra i dati e l'errore inerente.\n

    \n

    \n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

    \n

    \n Minore è l'indice di condizionamento, meglio condizionato è un problema.\n

    \n
    \n \n

    \n È il coefficiente di proporzionalità tra i dati e l'errore algoritmico.\n

    \n

    \n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

    \n
    \n
    \n
    \n )\n}\n","import style from \"./05_ApprossimazioneDatiSperimentali.less\";\nimport {Fragment} from \"preact\";\nimport {Section, Panel, ILatex, BLatex, PLatex} from \"bluelib\";\nimport Example from \"../../components/Example\";\n\nconst r = String.raw;\n\n\nexport default function (props) {\n return (\n \n
    \n \n

    \n Interpolare dati sperimentali non fornisce quasi mai un modello del fenomeno.\n

    \n

    \n Vogliamo costruire una funzione di regressione che, dati molti più dati del grado della funzione, minimizzi il quadrato della distanza tra i punti sperimentali e i punti della funzione di regressione.\n

    \n

    \n Denominiamo:\n

    \n
      \n
    • {r`{\\color{Orange} f}`}: la funzione \"effettiva\" del fenomeno
    • \n
    • {r`{\\color{Yellow} q}`}: la funzione di regressione che costruiamo per approssimarlo
    • \n
    • {r`{\\color{Red} Q }`}: la funzione \"errore di regressione\" da minimizzare
    • \n
    • {r`(\\ x_i, f(x_i)\\ )`}: i punti sperimentali
    • \n
    \n

    \n L'obiettivo è minimizzare l'errore di approssimazione {r`Q`}, ovvero:\n

    \n {r`\\min {\\color{Red} Q } = \\sum_{i = 1}^m (\\ {\\color{Yellow} q(x_i)} - {\\color{Orange} f(x_i)}\\ )^2 `}\n
    \n
    \n
    \n \n

    \n Trova la retta {r`{\\color{Yellow} q}`} che meglio approssima tutti gli {r`m`} dati sperimentali.\n

    \n

    \n Essendo una retta, avrà due parametri: il termine noto {r`a_0`}, e la pendenza {`a_1`}.\n

    \n {r`{\\color{Yellow} q(x) } = a_0 + a_1 \\cdot {\\color{Green} x}`}\n

    \n L'errore da minimizzare per ricavare i parametri sarà:\n

    \n {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 `}\n
    \n \n

    \n Possiamo costruire una matrice di regressione {r`A`} contenente tutti i punti sperimentali:\n

    \n {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 `}\n

    \n Inoltre, se costruiamo il vettore dei parametri {r`\\alpha`}:\n

    \n {r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\n \\end{pmatrix}\n `}\n

    \n Avremo che:\n

    \n {r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}\n

    \n Inoltre, potremo calcolare l'errore attraverso la norma:\n

    \n {r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}\n
    \n
    \n
    \n \n

    \n Trova il polinomio {r`{\\color{Yellow} q}`} di grado {r`n-1`} che meglio approssima tutti gli {r`m`} dati sperimentali.\n

    \n

    \n Essendo un polinomio di grado {r`n-1`}, avrà {r`n`} parametri.\n

    \n {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}`}\n \n

    \n La regressione lineare è un caso particolare di regressione generale in cui i parametri sono 2!\n

    \n
    \n

    \n L'errore da minimizzare per ricavare i parametri sarà:\n

    \n {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 `}\n
    \n \n

    \n Possiamo costruire una matrice di regressione {r`A`} contenente tutti i punti sperimentali a tutti i gradi del polinomio:\n

    \n {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 `}\n

    \n Inoltre, se costruiamo il vettore dei parametri {r`\\alpha`}:\n

    \n {r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n \\vdots\\\\\\\\\n a_{n-1}\n \\end{pmatrix}\n `}\n

    \n Avremo che:\n

    \n {r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}\n

    \n Inoltre, potremo calcolare l'errore attraverso la norma:\n

    \n {r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}\n \n Normalmente, i dati sono molti di più, ma se il numero di parametri {r`n`} fosse uguale al numero di dati {r`m`}, allora si otterrebbe il polinomio di interpolazione!\n \n
    \n
    \n
    \n \n

    \n Trova i coefficienti della combinazione lineare {r`{\\color{Yellow} q}`} che meglio approssima tutti gli {r`m`} dati sperimentali.\n

    \n {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)}`}\n \n

    \n La regressione polinomiale è un caso particolare di regressione generale in cui:\n

    \n {r`{\\color{Green} \\phi_{n} (x)} = x^n`}\n
    \n

    \n L'errore da minimizzare per ricavare i parametri sarà:\n

    \n {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 `}\n
    \n \n

    \n Possiamo costruire una matrice di regressione {r`A`} contenente tutti i punti sperimentali a tutti i gradi del polinomio:\n

    \n {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 `}\n

    \n Inoltre, se costruiamo il vettore dei parametri {r`\\alpha`}:\n

    \n {r`\n \\alpha =\n \\begin{pmatrix}\n a_0\\\\\\\\\n a_1\\\\\\\\\n \\vdots\\\\\\\\\n a_{n-1}\n \\end{pmatrix}\n `}\n

    \n Avremo che:\n

    \n {r`{\\color{Yellow} q(x) } = A \\cdot \\alpha`}\n

    \n Inoltre, potremo calcolare l'errore attraverso la norma:\n

    \n {r`{\\color{Red} Q } = \\| A \\cdot \\alpha - y \\|^2`}\n
    \n
    \n
    \n \n

    \n Caso che prevede che le colonne di {r`A`} siano linearmente indipendenti.\n

    \n

    \n La soluzione esiste sempre, ed è unica.\n

    \n

    \n Per trovarla:\n

    \n
      \n
    • Fattorizziamo {r`A = Q \\cdot \\begin{pmatrix} R\\\\ 0 \\end{pmatrix}`}.
    • \n
    • Calcoliamo {r`w = Q^T \\cdot y`}.
    • \n
    • Teniamo solo i primi n valori di {r`w`} e mettiamoli in {r`w_1`}.
    • \n
    • Calcoliamo {r`R \\cdot \\alpha = w_1`}.
    • \n
    \n
    \n \n

    \n Caso che non preclude alcuna composizione di {r`A`}.\n

    \n

    \n Ci sono infinite soluzioni, con {`n-k`} gradi di libertà.\n

    \n

    \n Si cerca sempre di trovare la soluzione di norma minima, che, se {r`k \\leq n \\leq m`}, allora è unica.\n

    \n

    \n Per trovarla:\n

    \n
      \n
    • Fattorizziamo {r`A = U \\cdot \\Sigma \\cdot V^T`} con la fattorizzazione SVD
    • \n
    • Calcoliamo {r`\\zeta = U^T \\cdot y`}
    • \n
    • \n

      \n Calcoliamo:\n

      \n {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 `}\n
    • \n
    • Calcoliamo {r`\\alpha = V \\cdot \\gamma`}
    • \n
    \n \n Gli zeri nella {r`\\gamma`} sono i gradi di libertà, sono zero in modo che essi diano la norma minima.\n \n
    \n
    \n
    \n )\n}\n"],"sourceRoot":""}