1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-23 08:24:20 +00:00
triennale-appunti-steffo/docs/route-CalcoloNumerico.chunk.8b6a1.esm.js

42 lines
19 KiB
JavaScript
Raw Normal View History

2020-08-23 02:04:09 +00:00
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{"2w3n":function(l){l.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"}},"5aVd":function(l){l.exports={menulist:"menulist__2Cmnq"}},T2GU:function(l,i,e){"use strict";(function(l){var n=e("5aVd"),o=e.n(n);i.a=function(i){return l("ul",{class:o.a.menulist},i.children)}}).call(this,e("hosL").h)},ke5e:function(l,i,e){"use strict";(function(l){var n=e("2w3n"),o=e.n(n);i.a=function(i){return l("div",{class:o.a.example},i.children)}}).call(this,e("hosL").h)},yWBn:function(l,i,e){"use strict";e.r(i),function(l){var n=e("mbOI"),o=e("ke5e"),a=e("YNhk"),t=e("T2GU");let r,u,c,s,d,p,m,f,h,b,g,z,_,q,v,O,A,L,k,w,D,M,T,x,U,C,E,I,S,y,P,Q,R,F,j,N,G,Y,B,J,H,V,W,X,Z,K,$,ll,il,el,nl,ol,al,tl,rl,ul,cl,sl,dl,pl,ml,fl,hl,bl,gl,zl,_l,ql,vl,Ol=l=>l;const Al=String.raw;i.default=function(){return l("div",null,l("h1",null,"Calcolo Numerico"),l(n.r,{title:"Esame"},l(n.q,{title:"Contatti"},l("ul",null,l("li",null,l(a.a,{href:"mailto:silvia.bonettini@unimore.it"},"Prof.ssa Silvia Bonettini")))),l(n.q,{title:"Orale"},l("p",null,"E' composto da:"),l("ul",null,l("li",null,"2 domande sugli argomenti teorici"),l("li",null,"1 domanda di implementazione algoritmo in MATLAB"))),l(n.q,{title:"Prossimi appelli"},l("ol",null,l("li",null,l(n.t,{to:"2020-08-31 09:00"})),l("li",null,l(n.t,{to:"2020-09-14 09:00"}))))),l(n.r,{title:"Informazioni"},l(n.q,{title:"Ripasso di Algebra Lineare"},l("p",null,"Prima di iniziare a studiare Calcolo Numerico, potrebbe essere una buona idea ripassare un pochino Algebra Lineare:"),l(t.a,null,l("li",null,l("a",{href:"/calcolonumerico/ripassodialgebralineare"},"Ripasso di Algebra Lineare")," ",l("small",null,"(per studenti sperduti di Calcolo Numerico)"))))),l(n.r,{title:"Algoritmi"},l(n.q,{title:"Algoritmi numerici"},l("p",null,"Particolari algoritmi che hanno:"),l("ul",null,l("li",null,"numeri reali in input e output"),l("li",null,"successioni delle quattro operazioni aritmetiche fondamentali come passi")))),l(n.r,{title:"Errore di rappresentazione"},l(n.q,{title:"Cos'è?"},l("p",null,"Con i numeri floating point può capitare che un certo numero ",l(n.h,null,Al(r||(r=Ol`\alpha`)))," non sia rappresentato correttamente."),l("p",null,"In tal caso, il numero si indica con ",l(n.h,null,Al(u||(u=Ol`\alpha^*`))),"."))),l(n.r,null,l(n.q,{title:"Errore assoluto"},l("p",null,"È la differenza tra il numero desiderato e il numero rappresentato:"),l(n.p,null,Al(c||(c=Ol`E_a = \left | \alpha - \alpha^* \right |`)))),l(n.q,{title:"Errore relativo"},l("p",null,"Indica quanto il numero rappresentato differisce dal numero desiderato:"),l(n.p,null,Al(s||(s=Ol`\forall \alpha \neq 0, E_r = \frac{E_a}{\left | \alpha \right |}`))))),l(n.r,null,l(n.q,{title:"Troncamento"},l("p",null,"Metodo con cui gestire gli ",l("b",null,"underflow floating point"),": le cifre meno significative vengono ",l("b",null,"rimosse"),"."),l(o.a,null,l("pre",null,"1.00 → 1.0",l("br",null),"1.01 → 1.0",l("br",null),"1.10 → 1.1",l("br",null),"1.11 → 1.1"))),l(n.q,{title:"Arrotondamento"},l("p",null,"Metodo con cui gestire gli ",l("b",null,"underflow floating point"),": se la cifra più significativa di quelle che devono essere rimosse è 1, allora ",l("b",null,"aumenta di 1")," anche quella meno signficativa che viene tenuta."),l(o.a,null,l("pre",null,"1.00 → 1.0",l("br",null),"1.01 → 1.0",l("br",null),"1.10 → 1.1",l("br",null),"1.11 → 10.")))),l(n.r,null,l(n.q,{title:"Precisione di macchina"},l("p",null,"Un numero reale rappresentato in ",l("b",null,"virgola mobile")," ha un ",l("b",null,"errore relativo")," minore o uguale alla ",l("i",null,"precisione di macchina"),":"),l("p",null,l(n.h,null,Al(d||(d=Ol`E_r \leq k \cdot \beta^{1-t}`)))),l("ul",null,l("li",null,l(n.h,null,"\\beta")," è uguale alla base utilizzata (solitamente 2)."),l("li",null,l(n.h,null,"t")," è uguale al numero di cifre della mantissa."),l("li",null,l(n.h,null,"k")," è uguale a ",l(n.h,nu
\begin{cases}
L_{ii} = 1 \qquad \qquad (diagonale)\\
L_{ik} = -\frac{A_{ik}}{A_{kk}} \qquad (tri.\ infer.)
\end{cases}
`))),l(o.a,null,"Sono i moltiplicatori usati per rendere annullare il triangolo inferiore!"),l("p",null,"La matrice ",l(n.h,null,Al(j||(j=Ol`U`)))," è così composta:"),l(n.p,null,Al(N||(N=Ol`
\begin{cases}
U_{ik} = A_{ik} \quad se\ i \leq k \quad (tri.\ super.)\\
U_{ik} = 0 \qquad se\ i > k \quad (tri.\ infer.)
\end{cases}
`))),l("p",null,"Il sistema può essere poi risolto applicando due volte il metodo di sostituzione:"),l(n.p,null,Al(G||(G=Ol`
\begin{cases}
L \cdot y = b\\
U \cdot x = y
\end{cases}
`))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(Y||(Y=Ol`{\color{Yellow} O\left(\frac{n^3}{3}\right)} + 2 \cdot O\left(\frac{n^2}{2}\right)`)))),l(n.q,{title:l("span",null,"Fattorizzazione ",l(n.h,null,Al(B||(B=Ol`LU`)))," con pivoting parziale")},l("p",null,"È possibile applicare la fattorizzazione ",l(n.h,null,Al(J||(J=Ol`LU`)))," a ",l("b",null,"qualsiasi matrice non-singolare")," permettendo lo scambio (",l("i",null,"pivoting"),") delle righe, potenzialmente ",l("b",null,"aumentando la stabilità")," dell'algoritmo."),l(o.a,null,"Abbiamo fatto questo metodo in Algebra Lineare, chiamandolo ",l("b",null,"metodo di Gauss-Jordan"),"!"),l("p",null,"Alla formula precedente si aggiunge una ",l(a.a,{href:"https://it.wikipedia.org/wiki/Matrice_di_permutazione"},"matrice di permutazione")," che indica quali righe sono state scambiate:"),l(n.p,null,Al(H||(H=Ol`P \cdot A = L \cdot U`))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(V||(V=Ol`{\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)`)))),l(n.q,{title:l("span",null,"Fattorizzazione ",l(n.h,null,Al(W||(W=Ol`LU`)))," con pivoting totale")},l("p",null,"È possibile anche permettere il ",l("i",null,"pivoting")," ",l("b",null,"sulle colonne")," per ",l("b",null,"aumentare ulteriormente la stabilità")," dell'algoritmo, a costo di maggiore costo computazionale:"),l(n.p,null,Al(X||(X=Ol`P \cdot A \cdot Q = L \cdot U`))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(Z||(Z=Ol`{\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)`))))),l(n.r,null,l(n.q,{title:l("span",null,"Fattorizzazione ",l(n.h,null,Al(K||(K=Ol`LDL^{-1}`))))},l("p",null,"È possibile ",l("b",null,"ridurre la complessità computazionale")," della fattorizzazione ",l(n.h,null,Al($||($=Ol`LU`)))," se la matrice dei coefficienti è ",l("b",null,"simmetrica"),":"),l(n.p,null,Al(ll||(ll=Ol`A = L \cdot D \cdot L^{-1}`))),l("p",null,"In questo caso, si calcola solo la matrice L, utilizzando il ",l("b",null,"metodo di pavimentazione"),"."),l(n.p,null,Al(il||(il=Ol`
\begin{cases}
d_{ii} = A_{ii} - \sum_{k=1}^{i-1} ( d_{kk} \cdot (l_{jk})^2 )\\
l_{ij} = \frac{A_{ij} - \sum_{k=1}^{j-1} l_{ik} \cdot d_{kk} \cdot l_{jk}}{d_ii}
\end{cases}
`))),l(o.a,null,l("p",null,"La prima colonna della matrice sarà:"),l(n.p,null,Al(el||(el=Ol`
\begin{cases}
d_{11} = A_{11}
l_{i1} = \frac{A_{i1}}{d_{11}}
\end{cases}
`))),l("p",null,"La seconda colonna della matrice sarà:"),l(n.p,null,Al(nl||(nl=Ol`
\begin{cases}
d_{22} = A_{22} - d_{11} \cdot (l_{21})^2\\
l_{i2} = \frac{A_{i2} - l_{i1} \cdot d_{11} \cdot l_{21}}{d_ii}
\end{cases}
`)))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(ol||(ol=Ol`{\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)`)))),l(n.q,{title:l("span",null,"Fattorizzazione ",l(n.h,null,Al(al||(al=Ol`\mathcal{L} \mathcal{L}^{-1}`))))},l("p",null,"È possibile dare ",l("b",null,"stabilità forte")," alla fattorizzazione ",l(n.h,null,Al(tl||(tl=Ol`LDL^{-1}`)))," se la matrice dei coefficienti è ",l("b",null,"simmetrica definita positiva"),":"),l(n.p,null,Al(rl||(rl=Ol`A = \mathcal{L} \cdot \mathcal{L}^{-1}`))),l("p",null,"Il ",l("b",null,"metodo di pavimentazione")," diventa:"),l(n.p,null,Al(ul||(ul=Ol`
\begin{cases}
l_{ii} = \sqrt{A_{ii} - \sum_{k=1}^{i-1} (l_{ik})^2 }\\
l_{ij} = \frac{A_{ij} - \sum_{k=1}^{j-1} l_{ik} \cdot l_{jk}}{l_ii}
\end{cases}
`))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(cl||(cl=Ol`O\left(\frac{n^3}{3}\right) + O\left(\frac{n^3}{3}\right) + 2 \cdot O\left(\frac{n^2}{2}\right)`))))),l(n.r,null,l(n.q,{title:"Trasformazione di Householder"},l("p",null,"Matrice ricavata dalla seguente formula:"),l(n.p,null,Al(sl||(sl=Ol`U(v) = I - \frac{1}{\alpha} \cdot v \cdot v^T`))),l(n.p,null,Al(dl||(dl=Ol`\alpha = \frac{1}{2} \| v \|_{(2)}^2`)))),l(n.q,{title:l("span",null,"Fattorizzazione ",l(n.h,null,Al(pl||(pl=Ol`QR`))))},l("p",null,"Metodo che fornisce una ",l("b",null,"maggiore stabilità")," a costo di una ",l("b",null,"maggiore complessità computazionale"),"."),l("p",null,"La matrice ",l(n.h,null,Al(ml||(ml=Ol`A`)))," viene ",l("i",null,"fattorizzata")," in due matrici, una ",l("b",null,"ortogonale")," ",l(n.h,null,Al(fl||(fl=Ol`Q`)))," e una ",l("b",null,"triangolare superiore")," ",l(n.h,null,Al(hl||(hl=Ol`R`))),":"),l(n.p,null,Al(bl||(bl=Ol`A = Q \cdot R`))),l("p",null,"Le matrici si ottengono dal prodotto delle trasformazioni di Householder (",l(n.h,null,Al(gl||(gl=Ol`Q`)))," sulle colonne della matrice ",l(n.h,null,Al(zl||(zl=Ol`A`))),", trasformandola in una matrice triangolare superiore (",l(n.h,null,Al(_l||(_l=Ol`R`))),")."),l("p",null,"Una volta fattorizzata, il sistema si può risolvere con:"),l(n.p,null,Al(ql||(ql=Ol`
\begin{cases}
y = Q^T \cdot b\\
R \cdot x = y
\end{cases}
`))),l("p",null,"Questo metodo ha costo computazionale:"),l(n.p,null,Al(vl||(vl=Ol`{\color{Yellow} O\left(\frac{2 \cdot n^3}{3}\right)} + 2 \cdot O\left(\frac{n^2}{2}\right)`))),l("p",null,l(n.u,null,"TODO: l'algoritmo con tau per ricavare la q se non è in memoria")))),l(n.r,{title:"Metodi iterativi"},l(n.q,{title:"Metodo di Jacobi"},l(n.u,null,"TODO")),l(n.q,{title:"Metodo di Gauss-Seidel"},l(n.u,null,"TODO"))),l(n.r,{title:"Problema: Ricerca degli zeri di funzione"},l(n.q,{title:"Descrizione"},l(n.u,null,"TODO")),l(n.q,{title:"Condizionamento"},l(n.u,null,"TODO"))),l(n.r,null,l(n.q,{title:"Metodi dicotomici"},l(n.u,null,"TODO")),l(n.q,{title:"Metodo delle approssimazioni successive"},l(n.u,null,"TODO"))),l(n.r,{title:"Metodi dicotomici"},l(n.q,{title:"Metodo di bisezione"},l(n.u,null,"TODO")),l(n.q,{title:"Metodo regula falsi"},l(n.u,null,"TODO"))),l(n.r,{title:"Metodo delle approssimazioni successive"},l(n.q,{title:"Metodo generale"},l(n.u,null,"TODO")),l(n.q,{title:"Metodo di Newton"},l(n.u,null,"TODO"))),l(n.r,{title:"Problema: Interpolazione"},l(n.q,{title:"Descrizione"},l("p",null,"Si vuole trovare una funzione in grado di ",l("b",null,"approssimarne")," un altra, di cui si conoscono però solo alcuni punti."),l(o.a,null,"È utile in un sacco di casi! Ad esempio, quando si vuole scalare un'immagine."))),l(n.r,{title:"Metodi di interpolazione"},l(n.q,{title:"Metodo dei coefficienti indeterminati"},l(n.u,null,"TODO")),l(n.q,{title:"Metodo di Lagrange"},l(n.u,null,"TODO"))),l(n.r,{title:"Resto di interpolazione"},l(n.q,{title:"Definizione"},l(n.u,null,"TODO")),l(n.q,{title:"Stima"},l(n.u,null,"TODO")),l(n.q,{title:"Fenomeno di Runge"},l(n.u,null,"TODO")),l(n.q,{title:"Nodi di Chebychev"},l(n.u,null,"TODO"))))}}.call(this,e("hosL").h)}}]);
//# sourceMappingURL=route-CalcoloNumerico.chunk.8b6a1.esm.js.map