UNIVERSIT DEGI STUDI DI CGIRI FCT DI INGEGNERI Corso d ure Igeger Elettroc Clcolo umerco Prof. Guseppe Rodrguez ls mtrcle: le Fttorzzzo cur d: ur rcs 3794 Rt Perr 38796 o ccdemco 8/9
Idce Rsoluzoe d sstem ler. Sstem ler semplc... Il metodo d Guss.. Il metodo d Guss co pvotg pg.3 pg.4 pg.5 pg.8 Fttorzzzoe U pg. 9 Fttorzzzoe PU. ltre fttorzzzo U. Fttorzzzoe QR trc elemetr d Householder. Fttorzzzoe QR d Householder. trce elemetre d Gves... Fttorzzzoe QR d Gves.. Cofroto tr lcu lgortm d tl e corrspodet d o mplemett pg. pg.6 pg.9 pg. pg.3 pg.8 pg.3 pg.3
3 Rsoluzoe d sstem ler I mtemtc, e pù precsmete lger lere, u equzoe lere è u equzoe d prmo grdo co u certo umero d cogte. U sstem d equzo ler (o sstem lere) è u seme d equzo ler, che devoo essere verfcte tutte cotemporemete: ltre prole, u soluzoe del sstem è tle se è soluzoe d tutte le equzo. soluzoe è, qud, l'seme d vlor che, sosttut lle cogte, rede le equzo delle dettà. U sstem d equzo ler cogte può essere scrtto el modo seguete:... dove,..., soo le cogte, umer j, soo coeffcet e soo term ot. U -upl (,..., ) è u soluzoe se soddsf tutte le equzo. Usdo le mtrc ed l prodotto fr mtrc e vettor s possoo seprre gevolmete coeffcet, le cogte ed term ot del sstem, e scrverlo el modo seguete: I modo molto pù strgto, s scrve: dove è l mtrce de coeffcet, è l vettore delle cogte e è l vettore degl term ot. U sstem lere mmette u e u sol soluzoe se e solo se è verfct u delle seguet propretà equvlet: l determte d è dverso d zero; l rgo d è ugule ; l sstem omogeeo mmette l sol soluzoe le, ovvero co,,,.
Sstem ler semplc Defmo sstem ler semplc quell dott d u struttur tle d redere mmedt l rsoluzoe. Retro tle clsse sstem dgol, ortogol e trgolr. Vedmol dettglo: u sstem dgole h l seguete form: D dove D dg(d,,d ) co d,,,. soluzoe è dt d: u sstem ortogole h l seguete form: d Q dove Q è u mtrce ortogole tle che Q T Q QQ T I. soluzoe è dt d: Q T oss q j j j co,, u sstem trgolre, l mtrce de coeffcet è trgolre ferore ( j per < j) o superore ( j per > j). Nel cso d mtrce trgolre ferore s h: l j per < j Il prmo psso è quello d rsolvere l prm equzoe, che è u sol vrle, l vlore otteuto vee sosttuto ell secod equzoe per rcvre l secod vrl, e così v. S trtt d u lgortmo d sosttuzoe vt, detto d Forwrd Susttuto. Nel cso d mtrce trgolre superore s h: U u j per > j S rsolve dpprm l ultm equzoe e po s procede rtroso verso l prm equzoe, questo cso s prl d lgortmo d sosttuzoe ll detro, detto d Bcwrd Susttuto. 4
5 Il metodo d Guss mo vsto come sstem trgolr soo d fcle rsoluzoe, l metodo d Guss cosete propro d trsformre u geerco sstem lere u sstem trgolre superore d esso equvlete. e operzo cosette per otteere u sstem equvlete quello dto soo: - scmre tr loro due equzo - moltplcre u equzoe per u costte dvers d zero - sommre u equzoe u ltr equzoe Descrvmo l lgortmo utlzzdo come dce d terzoe, così d crtterzzre l mtrce de coeffcet ed l terme oto l psso. ll zo vremo: () e () qud l sstem lere s rppreset el seguete modo l prmo psso dell lgortmo cosste ell elmre l prm vrle dll secod fo ll ultm equzoe, così d vere l sstem ell form equvlete: questo prmo psso può essere ftto ell potes che, sottredo l prm equzoe dlle successve dopo verl moltplct per opportu sclr m, dove : m grtsce l ullrs de coeffcet dell vrle elle equzo otteute. Questo psso vee eseguto fo qudo s resce portre l sstem form trgolre superore:
6 Il metodo geererà u successoe d mtrc { () },, e d term ot { () },.., co l rchest che og sstem () () s equvlete l sstem d prtez e () s trgolre superore. lzzmo l struttur dell mtrce del sstem e del terme oto l geerco psso [ ],,,,,,, mtrce è stt przlmete trgolrzzt e pss precedet, l psso deve ullre gl elemet dll rg -esm fo ll -esm post ell colo -esm, sottredo l -esm rg, moltplct per opportu sclr m, dlle rghe co dce compreso tr e. Restero mmutte le prme rghe e s modfchero soltto gl elemet dll rg -esm fo ll -esm e dll colo -esm fo ll -esm. l terme del psso l mtrce ed l terme oto vro l seguete struttur: [ ],,,,,, Gl elemet dell mtrce () soo deft dll regol: j m j j opp j j j j,,,,,,,,,,,,.,,,,
e l uovo terme oto è dto d: ( ) ( ) ( ) ( ) m,,,,,,, ( ) dove m ( ) ( ). elemeto è detto elemeto pvot l psso, e le terzo possoo prosegure solo se tutt gl elemet pvot rsulto essere o ull. lgortmo term dopo pss co u mtrce U () trgolre superore. Questo lgortmo dovrà sure delle modfche per poter essere pplct tutte le mtrc o sgolr, quto l o sgolrtà d u mtrce o grtsce che tutt gl elemet pvot so o ull. Il metodo d Guss è pplcle ell form sopr ctt el cso d mtrc smmetrche defte postve, mtrc dgolmete domt per rghe cu elemet verfco l seguete codzoe: j,,, e mtrc dgolmete domt per coloe, defte modo logo. IPEENTI GRIT DI GUSS IN TB: j j 8; rd() sol oes(,); sol for :- for : m (,)/(,); for j : (,j) (,j) - m(,j); ed (,) ; () () - m(); ed ed % dmesoe dell mtrce % geermo u mtrce csule d % dmesoe % mpomo che l soluzoe s u % vettore utro % l vettore de term ot è dto % dl prodotto tr e l vettore % sol % mplemetzoe dell'lgortmo mtrce csule geert e l vettore de term ot zl soo:.655.4984.5853.66.9597.38.9.344.753.7387.346.7 7
l oettvo dell lgortmo d Guss è quello d trgolrzzre l mtrce de coeffcet del sstem lere, l lgortmo modfc oltre l vettore de term ot otteedo u sstem trgolre equvlete quello d prtez, l mtrce trgolre superore e l uovo vettore de term ot soo:.655.4984.5853.836.785.65.7387.946.65 come s può otre dll mtrce e dl vettore che mo otteuto, l prm rg d etrm rsult essere ugule quell dell mtrce e del vettore de term ot d prtez. Il metodo d Guss co pvotg lgortmo d Guss precedetemete descrtto può essere pplcto solo se tutt gle elemet pvot,,, - soo dvers d zero. Questo rsult essere vero per mtrc smmetrche defte postve o dgolmete domt o sgolr, m o per tutte le mtrc vertl. S dmostr che se è o sgolre llor esste, l psso, lmeo u dce l compreso tr ed tle che l. Srà qud suffcete scmre le rghe ed l per evtre che l lgortmo s locch. Iftt se l psso rsultsse co,, l lgortmo d trgolrzzzoe potree dre vt semplcemete sltdo l psso come coseguez però l mtrce U () preseteree u elemeto dgole ullo e qud sree sgolre. Quest procedur cosete d mpedre l locco dell lgortmo presez d u mtrce o sgolre, motv d stltà umerc suggerscoo però u scelt pù ccurt. Iftt, dl mometo che l elemeto pvot s trov deomtore ell espressoe d m uo scmo delle rghe che port mssmzzre questo elemeto può rdurre l propgzoe degl error dovut ll rtmetc d mcch ed evtre, cs estrem l verfcrs d overflow. Quest ed ltr motv coducoo ll strteg del pvotg przle o d colo.. l psso ( ) ( ). trov l tle che m l,..,. scm l rg co l rg l 3. scm le compoet ed l del terme oto. Tle procedur grtsce l vlore pù sso possle per moltplctor m ust ell lgortmo, prtcolre s h m. IPEENTI GRIT DI GUSS CN PIVTING PRZIE 4; rd() sol oes(,); sol for :- % Pvotg [pv, l] m(s((:,))); 8
ed f (l ~ ) % Scmo rghe temp (l-,:); (l-,:) (,:); (,:) temp; tempor (l-); (l-) (); () tempor; ed % lgortmo d Guss for :: m (,)/(,); (,) ; for j :: (,j) (,j) - m(,j); () () - m(); ed ed mtrce d prtez e l vettore de term ot geert soo seguet:.58.38.4795.5439.547.9.6393.7.8699.9398.5447.55.648.6456.6473.9937.937.3.877.553 mtrce trgolre superore e l uovo vettore de term ot otteut soo:.8699.9398.5447.55 -.465.37.3963.74.4.67.877-3.3445-5.474 -.33 Fttorzzzoe U o scopo dell fttorzzzoe è quello d scomporre u mtrce u prodotto d mtrc vet u struttur pù semplce. 9
Il metodo d Guss oltre trsformre u sstem lere u sstem trgolre forsce che l fttorzzzoe U dell mtrce del sstem. mtrce è u mtrce trgolre ferore cu elemet soddsfo l seguete relzoe: l j mj, > j, j, < j dove m j soo moltplctor clcolt durte l esecuzoe dell lgortmo d Guss. mtrce U è u mtrce trgolre superore cu elemet soddsfo l seguete relzoe: u j j, j, > j dove j soo coeffcet del sstem trgolre superore fle. S dmostr che tl mtrc soddsfo l uguglz: U Not l fttorzzzoe dell mtrce l rsoluzoe del sstem lere vee effettut rsolvedo due sstem trgolr csct, oss: y U y tl clcol l fttorzzzoe U d u mtrce co l comdo: [,U] lu() e s può procedere ll rsoluzoe del sstem trmte comd: y \ U\y IPEENTZINE IN TB DE FTTRIZZZINE U 3; % dmesoe dell mtrce rd(); % geermo u mtrce csule d dmesoe '; % codzoe per cu l mtrce s smmetrc deft % postv e oes(,); % geermo u vettore colo co elemet tutt utr
e; % vettore de term ot [, U] lu(); % comdo per l fttorzzzoe U dell mtrce y \; % soluzoe del prmo de due sstem trgolr csct U\y; % soluzoe del sstem l mtrce geert è:.978.4555.75.4555.5946.367.75.367.587 le mtrc ed U soo: U..7358..8857.387..978.4555.75.538.77.53 come possmo vedere l prodotto tr l mtrce e l mtrce U c resttusce l mtrce : U s.978.4555.75.4555.5946.367.75.367.587 IPEENTZINE IN TB DE FTTRIZZZINE U CN GRIT REIZZT D NI 3; rd() sol oes(,); sol ; eye(); for :- for : m (,)/(,); f > (,) m; ed for j : (,j) (,j) - m(,j); ed (,) ; () () - m(); ed ed U tru(); for : for j : f < j (,j) ;
ed ed y \; U\y; ed mtrce csule d prtez è:.39.76.46.6555.38.97.7.769.835 e mtrc ed U, rspettvmete trgolre ferore e superore, soo: U..67..4364.7..39.76.46 -.48..88 come s può vedere l prodotto tr l mtrce e l mtrce U resttusce propro l mtrce d prtez: U s.39.76.46.6555.38.97.7.769.835 Fttorzzzoe PU Defmo mtrce d scmo quell otteut scmdo l rg e l rg s u mtrce dettà che può essere rppresett el seguete modo: P (, s) (rg ) (rg s) mtrce P (,s) è ortogole smmetrc, e l suo determte vle -.
pplcre tle mtrce d u vettore h l effetto d scmre le compoet e s, qud premoltplcre per u mtrce d scmo (P (,s) ) equvle scmre tr loro due rghe, vcevers moltplcre per u mtrce d scmo (P (,s) ) equvle scmre due coloe. S defsc mtrce d permutzoe l prodotto d pù mtrc d scmo: P P (, s ) (, s ) ( s ) m m P P m m, P è u mtrce ortogole vete u solo elemeto pr og rg o colo e gl ltr elemet ull. Il suo determte vle (-) #(P), dove #(P) dc l umero degl scm che compogoo l permutzoe P. lgortmo d Guss co pvotg d colo s può rppresetre ell form: P U S trtt dell form pù geerle dell fttorzzzoe U ed è pplcle d og mtrce o sgolre. rsoluzoe d u sstem lere, trmte l fttorzzzoe sopr ctt, s rcoduce ll rsoluzoe d due sstem trgolr: y P U y tl clcol l fttorzzzoe P U d u mtrce co l comdo: [, U, P] lu(); e s può procedere ll rsoluzoe del sstem: y \(P); U\y; IPEENTZINE IN TB DE FTTRIZZZINE P U 4; % dmesoe dell mtrce rd(); % l comdo rd geer u mtrce csule d dmesoe e oes(,); % l comdo oes(,m) geer u mtrce d dmesoe m e; % è l vettore de term ot [, U, P] lu(); % comdo per l fttorzzzoe y \(P); % soluzoe del prmo sstem trgolre U\y; % soluzoe del sstem l mtrce csule geert è l seguete: 3
.676.68.8444.67.89.548.3445.6.678.4.785.3868.695.6678.6753.96 e mtrc e U soo: U..976..458.394..9664.746 -.47..695.6678.6753.96 -.586.875 -.884.56.56.787 mtrce P è: P s.695.6678.6753.96.676.68.8444.67.89.548.3445.6.678.4.785.3868 che come possmo otre è ugule l prodotto tr l mtrce e l mtrce U: U s.695.6678.6753.96.676.68.8444.67.89.548.3445.6.678.4.785.3868 IPEENTZINE IN TB DE GRIT P U IPEENTT D NI 3; rd() sol oes(,); sol ; P :; for :- % Pvotg [pv, l] m(s((:,))); f (l ~ ) % Scmo rghe u P(l); 4
P(l) P(); P() u; temp (l-,:); (l-,:) (,:); (,:) temp; tempor (l-); (l-) (); () tempor; ed % lgortmo d Guss for :: m (,)/(,); f > (,) m; ed (,) ; for j :: (,j) (,j) - m(,j); () () - m(); ed ed ed for : for j : f j (,j) ; else f < j (,j) ; ed ed f < j U(,j) (,j); else U(,j) ; ed ed ed P o è l mtrce d permutzoe m solo u su rppresetzoe el seso che è u vettore che dc qul soo gl scm delle rghe dell mtrce dettà d fre. mtrce geert d prtez è:.89.499.39.5386.5358.494.695.445.853 mtrce trgolrzzt è:.695.445.853.99 -.75.67 Il vettore rsult essere: P 3 5
Questo sgfc che l mtrce d permutzoe P co cu moltplcre l mtrce d prtez srà: P Verfchmo come P moltplct per l mtrce d prtez è pr d U: P U.695.445.853.5386.5358.494.89.499.39.695.445.853.5386.5358.494.89.499.39 ltre fttorzzzo U fttorzzzoe U esste se e solo se l mtrce è o sgolre e tutt suo mor prcpl soo o ull. D questo dscede l esstez ed uctà dell cosdett fttorzzzoe DR (o DU). S U, se pomo D dg(u,,u ) e R D - U, l mtrce può essere decompost ell form DR dove è u mtrce trgolre ferore, R u mtrce trgolre superore, l r,,,. Se l mtrce è smmetrc è fcle osservre che rsult R T e d coseguez D T lgortmo d Guss può essere modfcto modo opportuo per costrure queste fttorzzzo. S defsce erz d u mtrce hermt l ter d umer turl Ierz():{π,υ,δ} che dco rspettvmete l umero d utovlor postv, egtv e ull d. EGGE DI INERZI DI SYVESTER. So e B due mtrc hermte. Esste u mtrce o sgolre C tle che B C C se e solo se 6
Ierz() Ierz(B) Se l mtrce è smmetrc deft postv, pplcdo questo teorem ll fttorzzzoe D T possmo cocludere che tutt gl elemet dgol d dell mtrce D soo postv e possmo defre l mtrce ( d ) D / dg, e l mtrce R D / T co r > modo che s, d D / D / T R T R fttorzzzoe R T R dell mtrce deft postv prede l ome d fttorzzzoe d Cholesy. Il sstem è rcodotto ll rsoluzoe d due sstem trgolr csct: ls del prodotto mtrcle: R T y R y R T r R r r r r r r j r jj r r permette d esprmere gl elemet del trgolo superore d fuzoe degl elemet d R: j r r j j Dstgumo due cs < j e j per l ultmo terme dell sommtor: r j j r rj < j r 7
/ j j r jj jj r j fuzoe utlzzt tl per l fttorzzzoe d Cholesy è l fuzoe chol 4; rd(); '; sol oes(,); sol; R chol(); y R'\; R\y; z orm(-sol); % dmesoe dell mtrce % rd geer u mtrce csule d dmesoe % deve essere hermt % oes(,m) geer u mtrce d d dmesoe m % vettore de term ot % fuzoe che resttusce l fttorzzzoe d Cholesy % soluzoe del prmo sstem trgolre % vettore soluzoe % errore mtrce geert è:.7994.79.949.378.79.673.569.689.949.569.559.775.378.689.775.4586 mtrce R otteut co l fttorzzzoe d Cholesy è: R.894.785.66.459.675.636.593.853 -.5.739 fttorzzzoe m dce che R T R verfchmolo: R'R s.7994.79.949.378.79.673.569.689.949.569.559.775.378.689.775.4586 U mplemetzoe per coloe dell lgortmo d Cholesy, oss che costrusce l mtrce R colo per colo è descrtt el seguete lgortmo:. for j,,. for,, j- 8
. r. r j j r rj r jj jj j r / j IPEENTZINE IN TB DE GRIT DI CHESKY PER CNNE fucto [R] fuzchol() [,] sze(); R zeros(,); for j : f ((j,j)-sum(r(:j-,j).^)) < ed % defmo u uov fuzoe % chmt fuzchol che h come % put l mtrce e geer % l mtrce R % verfchmo che l mtrce s % smmetrc e deft postv error (' mtrce o è deft postv') else for :j- R(,j) ((,j)- sum(r(:-,).r(:-,j)))/r(,); ed R(j,j) sqrt((j,j)- sum(r(:j-,j).^)); ed Fttorzzzoe QR fttorzzzoe QR è possle per qulss mtrce d dmesoe m, dove Q è u mtrce ortogole m m, tle per cu Q T Q QQ T I, e R è u mtrce trgolre superore co dmeso pr quelle d. Cosderdo u mtrce qudrt o sgolre, llor l fttorzzzoe QR può essere utlzzt per rsolvere l sstem lere. Qud sosttuedo ll mtrce l su fttorzzzoe QR s otterro due sstem: Qc R c soluzoe del prmo sstem è dt d c Q T, che forsce l terme oto del secodo sstem che drà rsolto per sosttuzoe ll detro. Per l clcolo d quest tpolog d fttorzzzoe soo preset dvers lgortm co complesstà dfferete. Per trodurre quest lgortm è ecessro defre due tp d mtrc elemetr: - trc elemetr d Householder - trc elemetr d Gves 9
trc elemetr d Householder Defmo l mtrce elemetre rele d Householder el seguete modo: H I ww T dove w ϵ R e w, oltre ww T è u mtrce d rgo. S dmostr che l mtrce H è u mtrce smmetrc e ortogole, ftt per quto rgurd l smmetr, fcedo l trspost dell mtrce H ottemo l stess mtrce H: H T (I ww T ) T I ww T H Per quto rgurd vece l ortogoltà, domo dmostrre che: H T H I spedo che w T w w llor: H T H (I ww T )(I ww T ) I ww T ww T 4ww T ww T I 4ww T 4w(w T w)w T H T H I 4ww T 4w w w T I 4ww T 4ww T I Prededo u vettore voglmo determre w modo tle che: H e dove e è l prmo versore dell se coc d R e ϵ R. costruzoe d H cosste tre fs:. Poché H è ortogole segue che: percò ± σ. Dll defzoe d H s h: σ H e H (I ww T ) ww T w(w T ) essedo (w T ) uo sclre, H (w T )w e llor: w e e T w e quto w orm utr. 3. Dll relzoe T H T ( ww T ) T T ww T
( T w)(w T ) σ (w T ) qud σ (w T ) T (e ) σ (w T ) ( T e ) σ (w T ) dove è l prm compoete del vettore dll ultm relzoe l uc cogt è: w T percò: ( w T ) σ ( w T ) σ w T σ e ( ) l uso d quest espressoe permette d rdurre l crco computzole rchesto per l ormlzzzoe d w. Per evtre percol d ccellzoe è ee sceglere l sego d, lscto fo or rtrro, modo tle che s postvo, questo port lle due espresso: lgortmo che e rsult è l seguete:. σ. sg( )σ 3. λ [σ(σ )] / 4. w ( e )/λ 5. H I ww T sg( )σ e [σ(σ )] / I geere s prefersce scrvere l mtrce H u ltr form, modo d elmre l rdce qudrt e l ormlzzzoe del vettore w, e d coseguez s rdurro che gl error trodott dll lgortmo, vedmo come: T ( e ) ( e ) T T ww λ λ vv λ Qud l mtrce H: H I vv β T
essedo: v e e β σ(σ ) λ lgortmo ell su form equvlete rsult:. σ. sg( )σ 3. λ [σ(σ )] / 4. w ( e )/λ T 5. H I vv β Ioltre, o è dspesle costrure esplctmete H, dto che l cooscez d w o d v, l determ uvocmete. Può essere utle pplcre l mtrce H d u vettore y, questo può essere ftto el seguete modo: dove γ w T y. Utlzzdo l secod rppresetzoe d H: Hy (I ww T )y y ww T y y γw Hy I vv β T y y δv co δ v T y. β IPEENTZINE IN TB DE GRIT PER CSTRUZINE DE TRICE DI HUSEHDER H fucto [H,] housemt() sze(,) sgm orm(); f ()> -sgm; else sgm; ed et sgm(sgms(())); e [;zeros(( - ),)]; v - e; H eye()-(/et)vv';
Fttorzzzoe QR d Householder e mtrc elemetr d Householder permettoo d costrure l fttorzzzoe QR d u mtrce. Cosdermo che s u mtrce qudrt, geereremo u successoe d mtrc (),,, modo tle che () s u mtrce trgolre superore. lzzmo psso per psso l lgortmo. - psso : scrvmo l mtrce term delle sue coloe () [ () () () ] pplcdo l tecc vst precedetemete è possle costrure l mtrce elemetre d Householder H modo che H () e oltplchmo quest mtrce per l mtrce () per costrure l prossm mtrce dell successoe ( 3) H T v ( H ) H T () H () [ () () () ] co () e, j () H j (), j,,. mtrce () h l struttur seguete: T v ( ) dove è u vettore colo d dmeso pproprte che h tutte le compoet ulle e  è u sottomtrce d dmesoe ; - psso : cosdermo zlmete l sottomtrce [ ] 3 3
4 Prosegumo co l costruzoe dell mtrce d Householder Ĥ d dmesoe - tle che e H dove l vettore e h lughezz. questo puto, ggugmo ll mtrce Ĥ u rg ed u colo dell mtrce dettà modo d che l mtrce rggug l dmesoe s otterrà percò l seguete mtrce: H H H T quest mtrce verrà moltplct sstr per () otteedo: ovvero 3 3 Il psso successvo opererà sull sottomtrce 3  d dmesoe. - psso : l mtrce prodott dll terzoe precedete srà ell form dove gl stersch dco elemet dell mtrce che o verro pù modfct metre l sottomtrce  è del tpo: 3 H v v H H T T T
5 [ ] cremo qud u mtrce Ĥ d dmesoe tle che e H dopo ver gguto ll mtrce Ĥ - rghe e coloe dell mtrce dettà s vrà: oss Qudo l mtrce è qudrt, l lgortmo term l psso co l mtrce trgolre superore: R H tero lgortmo formto mtrcle s può rssumere el seguete modo: R () H - (-) H - H - (-) H - H - H () Q T essedo l mtrce Q H H H - ortogole, quto prodotto d mtrc ortogol, l precedete relzoe mplc: QR ovvero l fttorzzzoe QR dell mtrce. H H I H
Nel cso cu l mtrce s rettgolre d dmesoe m, co m >, l uc dfferez rspetto l cso precedete è che è ecessro u ulterore psso che zzer gl elemet dell -esm colo d. Dopo pss otterremo l mtrce: R ( ) R co R mtrce trgolre superore, o sgolre se l mtrce è rgo peo. Il legme tr R e è: d cu: R H H - H QR co Q H H..H fttorzzzoe QR d Householder el cso m è deft dl seguete lgortmo:. put,. Q I 3. for,,-. costrusc H. Q QH 3. H 4. output Q, ( cotee l fttore trgolre R) IPEENTZINE IN TB DE FTTRIZZZINE QR DI HUSEHDER (TRICE QUDRT) 5; rd(); Q eye(); % dmesoe dell mtrce % geero u mtrce csule d % dmesoe % zlzzo l mtrce Q for :- % l cclo for è costtuto d % pss sottomtr housemt((:,)); % sottomtr è l'output dell fuzoe % housemt 6
% che prede gresso l % colo -esm dell mtrce % e le rghe dll ll for j : (:,j) sottomtr(:,j); ed H eye(,); % ggoro l mtrce % preprmo l mtrce H el cso % cu s ecessr % u' "orltur" ed [m,m] sze(sottomtr); % dmesoe dell mtrce sottomtr f m ~ H((-m):,(-m):) sottomtr; % domo verfcre se l dm.dell % mtrce sottomtr % è pr, cso % cotrro domo "orlre" l % mtrce sottomtr seredo % tte rghe e coloe dell % mtrce dettà modo d % otteere l dm. else H sottomtr; ed Q QH; % se m o occorre essu % orltur % Q è dt dl prodotto delle % mtrc H otteute % R è ugule ll mtrce mtrce otteut dll fttorzzzoe è: -.6536 -.45 -.569 -.757 -.833..966.634.98.7639. -. -.886 -.3885.77 -. -...784.77 -. -. -. -. -.996 Come s può otre è u mtrce trgolre superore e cotee l mtrce R, essedo questo cso l mtrce qudrt, R cocde propro co. Se l mtrce fosse stt rettgolre vree vuto l form: R ( ) R 7
Verfchmo che che Q è u mtrce ortogole: QQ' s.. -.. -.... -. -. -...... -... -. -... trce elemetre d Gves Nello spzo R u rotzoe p è rppresett dll mtrce: G ( θ ) cos s ( θ ) s( θ ) θ cos θ se quest mtrce vee moltplct per u vettore, quest mtrce ruot d u golo θ seso orro. mtrce elemetre d Gves G j ( < j) oper R m u rotzoe che lsc lterto l sottospzo ortogole l po defto d vettor e e e j dell se coc. mtrce è deft come segue: G j c s s c rg rg j co c s. Per pplcre quest mtrce d u vettore o è ecessro esegure esplctmete l prodotto mtrcle poché: y G j y c s s, j c,, j j, j 8
9 S possoo determre prmetr c e s modo tle d ullre l compoete j-esm del vettore, modfcdo solo l compoete -esm e lscdo lterte tutte le ltre. Iftt, mpoedo y j s ottee: s c c s j s c c s j c c c s j j j j c c s j j c c s d cu rsult: j c j j s dcdo co: j σ s h σ c e σ j s CC DEI PRETRI DI UN RTZINE DI GIVENS fucto [c,s] GIVRT(, j ). f j. c, s. else f j >. t / j, z ( t ) /. s / z, c ts 3. else. t j /, z ( t ) /. c, s tc mplemetzoe tl dell fuzoe che clcol prmetr dell rotzoe d Gves è l seguete: fucto [c,s] GIVRT(, ) f c ; s ;
else f s() > s() t /; z sqrt( t^); s /z; c ts; else t /; z sqrt( t^); c /z; s ct; ed ed Trmte u opportu successoe d mtrc elemetr d Gves s può trsformre u vettore d R m logmete ll zoe d u mtrce elemetre d Householder. Fttorzzzoe QR d Gves lgortmo d fttorzzzoe QR d Gves cosste ell zzerre tutt gl elemet del trgolo ferore dell mtrce prtre dl secodo elemeto dell prm colo e proseguedo dpprm verso l sso co gl ltr elemet dell prm colo, e po co le successve coloe. Se l mtrce è qudrt c s ferm co l ultmo elemeto dell peultm colo, e l procedmeto s rppreset ell seguete form mtrcle: G -, G -, G -,- G G 3 G G 3 G R Se l mtrce è rettgolre co m rghe e coloe (m > ) occorre zzerre che gl elemet sudgol dell ultm colo, e l lgortmo dvet: G,m G, G,m G 3 G m G 3 G R dove R è u mtrce trgolre superore. I etrm cs l prodotto delle mtrc d Gves G j forsce l fttore Q T dell fttorzzzoe QR d. Tle fttore può essere costruto esplctmete, oppure possoo essere memorzzt prmetr c j e s j che defscoo cscu mtrce d rotzoe G j, e che cosetoo qud, ll occorrez, d clcolre l prodotto Q T rpplcdo l vettore tutte le rotzo gà pplcte ll mtrce. R FTTRIZZZINE QR DI GIVENS (m > ). put, m,. for,,. for,, m. [c,s]givrt(, ). for j,, 3
. t c j s j. j -s j c j 3. j t 3. c c, s s 3. output (cotee l fttore trgolre R) C, S (cotegoo prmetr delle rotzo) IPEENTZINE IN TB DE FTTRIZZZINE QR DI GIVENS m 6; 3; rd(m,); for : for : m [c, s] gvrot((,), (,)); ed ed for j : t (c(,j)) (s(,j)); (,j) (-s(,j)) (c(,j)); (,j) t; Q eye(m); G eye(m); G(,) c; G(j,j) c; G(,j) s; G(j,) -s; Q GQ; ed % umero rghe d % umero coloe d % geermo u mtrce % csule % geermo prmetr d % rotzoe d Gves Eseguedo l lgortmo l mtrce fttorzzt rsult:.4959.635.389.933.44 -.475. -... -. -. Verfchmo cor che Q è ortogole: QQ' s...... 3
Cofroto tr lcu lgortm d tl e corrspodet d o mplemett FTTRIZZZINE U for :; rd(); '; sol oes(,); sol; % Rsoluzoe co l fuzoe "lu" d tl [, U] lu(); y \; U\y; % Errore usdo usdo l fuzoe "lu" d tl errore() orm( - sol); % Rsoluzoe co l'lgortmo mplemetto eye(); for :- for : m (,)/(,); f > (,) m; ed for j : (,j) (,j) - m(,j); ed ed ed U tru(); for : for j : f < j (,j) ; ed ed ed y \; U\y; % Errore usdo usdo l'lgortmo d o mplemetto errore() orm( - sol); ed %Grfco errore t lspce(,, ); semlogy(t,errore,'r-',t,errore,'-o'); leged('lgortmo tl','lgortmo mplemetto'); lel('dmesoe trce'); ylel('errore'); ttle('fttorzzzoe U'); Il grfco mette cofroto l errore tr l soluzoe e mpost d o e l soluzoe otteut eseguedo gl lgortm cosderdo s l lgortmo esstete gà tl s 3
quello mplemetto d o. Come s può veder due dmet soo pressoché ugul e l errore è molto sso oscll u rge tr -3 e -5. -5 Fttorzzzoe U -6-7 -8 Errore -9 - - - lgortmo tl lgortmo mplemetto -3 4 6 8 4 6 8 Dmesoe trce Utlzzmo desso u mtrce d Hlert, che per defzoe è ml codzot, l comdo mtl che geer l mtrce d Hlert è: hl(), cosdermo come esempo u mtrce co dmesoe che vr tr 3 e 3: 4 Fttorzzzoe U - Errore -4-6 -8 - lgortmo tl lgortmo mplemetto - 4 6 8 4 Dmesoe trce 33
FTTRIZZZINE DI CHESKY for : rd(); % poché co l comdo rd s ottee u mtrce smmetrc % deft postv, srà scurmete rspettt l codzoe % esplctt qudo mo defto l fuzoe: fuzchol '; e oes(,); e; % Rsoluzoe co l fuzoe "chol" d tl R chol(); y R'\; R\y; % Errore usdo usdo l fuzoe "chol" d tl errore() orm( - e); % Rsoluzoe co l'lgortmo mplemetto R fuzchol(); y R'\; R\y; % Errore usdo usdo l'lgortmo d o mplemetto errore() orm( - e); ed %Grfco errore t lspce(,, ); semlogy(t,errore,'r-',t,errore,'-o'); leged('lgortmo tl','lgortmo mplemetto'); lel('dmesoe trce'); ylel('errore'); ttle('fttorzzzoe d Cholesy'); tl c resttusce l seguete grfco, come s può osservre lo scostmeto tr due lgortm è mmo, co u errore che oscll tr -6 e -6. -6 lgortmo tl lgortmo mplemetto Fttorzzzoe d Cholesy -8 - Errore - -4-6 3 4 5 6 7 8 9 Dmesoe trce 34
FTTRIZZZINE QR DI HUSEHDER for :; rd(); sol oes(,); sol; % Rsoluzoe co l fuzoe "qr" d tl [Q, R] qr(); c Q'; R\c; % Errore usdo usdo l fuzoe "qr" d tl errore() orm( - sol); % Rsoluzoe co l'lgortmo mplemetto Q eye(); for :- sottomtr housemt((:,)); for j : (:,j) sottomtr(:,j); ed H eye(,); [m,m] sze(sottomtr); f m ~ H((-m):,(-m):) sottomtr; else H sottomtr; ed Q QH; ed R ; c Q'; R\c; % Errore usdo usdo l'lgortmo d o mplemetto errore() orm( - sol); ed %Grfco errore t lspce(,, ); semlogy(t,errore,'r-',t,errore,'-o'); leged('lgortmo tl','lgortmo mplemetto'); lel('dmesoe trce'); ylel('errore'); ttle('fttorzzzoe QR d Householder'); come s può vedere dl grfco che segue l dmeto dell errore prodotto d due lgortm è smle, che se l lgortmo reltvo ll fuzoe d tl produce u errore leggermete pù pccolo, questo è dovuto che l ftto che mo utlzzto u mtrce rdom che rsult essere u mtrce e codzot, cò vuol dre che u errore gresso o vee mplfcto eccessvmete sul rsultto. 35
-8-9 Fttorzzzoe QR d Householder lgortmo tl lgortmo mplemetto - Errore - - -3-4 3 4 5 6 7 8 9 Dmesoe trce Se vece d utlzzre u mtrce rdom utlzzmo u mtrce d Hlert, che per defzoe è ml codzot ottemo u errore usct molto elevto, come s può otre dl seguete grfco, cu l errore oscll tr -5 e. 5 lgortmo tl Fttorzzzoe QR d Householder lgortmo mplemetto Errore -5 - -5 4 6 8 4 Dmesoe trce 36