ETODE NUERICE Obectve curs Crearea, aalza ş mplemetarea de algortm petru rezolvarea problemelor d matematca cotuă Aalza complextăţ, aalza ş propagarea erorlor, codţoarea problemelor ş stabltatea umercă a algortmlor problemelor umerce Prezetarea metodelor umerce clasce ş a celor modere de rezolvare a problemelor ştţfce ş gereşt Alegerea celor ma potrvte metode umerce petru o problemă dată Coţut curs Reprezetare î vrgulă moblă. Stadardul IEEE 754 petru umere reale. Codţoarea problemelor ş stabltatea umercă a algortmlor. Rezolvarea sstemelor de ecuaţ lare pr metode gaussee. Pvotare parţală ş totală. Factorzare LU. Propagarea erorlor î rezolvarea sstemelor de ecuaţ lare. etode teratve de rezolvare a sstemelor de ecuaţ lare Iterpolare polomală. Polom de terpolare Lagrage. Dfereţe dvzate. Polom Newto. Eroarea terpolăr. Iterpolare cu fucţ sple. Iterpolare trgoometrcă. Aproxmare uformă. Poloame Cebâşev. Algortm lu Remes. Aproxmare cotuă ş dscretă î sesul celor ma mc pătrate. Rezolvarea sstemelor î sesul celor ma mc pătrate. Factorzare QR. etodele Householder, Gves, Gram-Schmdt Itegrare umercă. etode Newto-Cotes. etoda Romberg. Itegrare gaussaă. Poloame ortogoale. Itegrale mpropr. Itegrarea ecuaţlor dfereţale ordare. etode Ruge-Kutta. etode multpas explcte ş mplcte. Predctor-corector. Covergeţa metodelor multpas Valor propr ş vector propr. etodele puter Algortmul QR cu deplasare explctă. Descompuerea valorlor sgulare 1
Aplcaţ ale calcululu umerc 1. Determarea cureţlor îtr-u crcutul electrc î regm staţoar: I 1 I 1 R 1 = R 3 =4 R =3 E 1 =10 I 3 E =18 coduce pr aplcarea leglor lu Krchhoff, la u system de ecuaţ lare: I1 I I3 0 I1 4I3 10 3I 4I3 18 cu soluţa I 1 =1, I =, I 3 =3. odelul Leoteff cosderă ecooma formată d sectoare depedete: S 1,S,, S. Fecare sector cosumă buur produse de celelalte sectoare (clusve cele produse de el îsuş). Itroducem otaţle: m j = umărul de utăţ produse de sectorul S ecesare sectorulu S j să producă o utate p = velul producţe sectorulu S m j p j = umărul utăţlor produse de S ş cosumate de S j Numărul total de utăţ produs de S este: p 1 m 1 +p m + +p m Îtr-u system îchs (autarhc) dacă ecooma este echlbrată, tot ce se produce trebue cosumat, adcă: m11p1 m m1 p1 m 1 p p m m 1 p p p p 1 Adcă sstemul:.p = p sau (I-).p=0, care petru soluţ eule, coduce la o problemă de valor ş vector propr. Îtr-u model deschs de ecoome, uele sectoare îş satsfac uele cerţe d exteror, adcă: p = m 1 p 1 +m p + +m p +d care coduce la sstemul lar de ecuaţ: p =.p + d cu soluţa: p = (I-) -1.d
3. Coefceţ care apar î reacţle chmce se obţ aplcâd legea coservăr mase ecuaţe de echlbru chmc. Astfel arderea etaulu: xc H 6 + yo zco + th O dă sstemul de ecuaţ lare: x z 6x t y z t care are o soluţe îtreagă: x=, y=7, z= 4, t=6. dec ecuaţa chmcă este: C H 6 + 7O 4CO + 6H O. O problemă avâd o atură fzcă oarecare poate f studată expermetal sau pr smulare. Aceasta poate f trasformată, utlzâd legle fudametale ale fzc îtr-o problemă de atură matematcă P. Vom spue că problema este be pusă dacă admte o soluţe ucă. atematc aplcate Fzcã teoretcã Problemã matematcã P Problema fzcã PF Fzcã expermetalã Rezultate umerce Fg.1.1. odaltãþ de abordare a problemelor fzce Ca exemplu, vom cosdera următoarea problemă fzcă: P F : Să se studeze propagarea temperatur îtr-o bară AB de lugme l cuoscâd -temperaturle la mometul ţal î orce puct al bare 0 x, x 0, l -temperaturle la cele două capete t t t 0, t1 ş A î orce momet B A B A (t) 0 Fg.1.. Propagarea cãldur îtr-o barã B t 3
Problema matematcă corespuzătoare este: P : Să se determe fucţa: : x, t ( x, t 0, l 0, t1 )(1.43) care satsface următoarele codţ: 0 1 K x t 0 ( x, 0) 0 ( x) 3 0 (0, t) ( t) 4 0 ( l, t) ( t) A B ecuaţa lu Fourer codţle ţale codţle pe froteră 0 5 S, S = spaţul fucţlor de or dervable pe 0, l 0, t1 Î acest momet terve aalza umercă ş furzează metodele de calcul, care î urma uu umăr x, t, x, t x, t efectv ft N de operaţ elemetare furzează petru soluţa o aproxmaţe calculablă, astfel că: ( x, t) ( x, t). Preztă teres metodele de calcul î tmp ft, cu: 0 t t1 care furzează aproxmaţ uforme: N x, t, N. Problema cotuă P este trasformată îtr-o problemă asemăătoare P h pr dscretzare. Î acest scop se selectează u umăr ft de pucte x, t d domeul compact 0, l 0, t1 folosd o reţea de dscretzare cu paş: l x, t1 t. N ş se otează: ( x, t) Dacă se aproxmează dervatele parţale cu dfereţele fte: ( x, t) t t 1 1 1 ( x, t) x x se obţe următoarea problemă dscretzată: P h : 1 Să se determe cu 1 1, 0 N1, care satsface codţle: 1 0 1 t K 0 0 0( x) 0 3 0 ( t) A 4 0 B ( t) 5 0 t K ( x) 1 ( x) 1 4
Problema dscretzată P h costă î rezolvarea succesvă a N ssteme de ecuaţ lare trdagoale. Dfereţa: ( x, t) evaluează aproperea ître soluţa probleme dscretzate P h ş a modelulu matematc P î fecare puct al dscretzăr. Soluţa probleme dscretzate P h trebue să tdă spre soluţa probleme cotue P dacă h 0 ( h repreztă pasul de dscretzare î cazul probleme cosderate avem paş x 0, t 0 sau N, ); vom spue că trebue satsfacută o codţe de cossteţă: lm P P. h h0 O altă codţe mportată o repreztă stabltatea; aceasta mpue ca soluţa a probleme perturbate P (mafestată pr perturbarea parametrlor, A, B, K ) să fe apropată de soluţa a modelulu matematc P. Pe baza modelulu matematc dscretzat se va proecta u algortm, care va f aalzat pr prsma: - efceţe (resurse foloste: tmp de calcul ş memore), - covergeţe către soluţa modelulu matematc cotuu, - efectulu propagăr erorlor. Etapele eumerate evdeţază urmatoarele tpur de eror: - eror deproblemă (erete) care apar la trecere de la modelul fzc P F la cel matematc P, - eror de metodă troduse pr dscretzarea modelulu matematc, - eror de truchere prov d atura ftă a uor procese care descru soluţa probleme - eror de rotujre specfce rezolvăr probleme pe calculatorul umerc, care utlzează artmetca î vrgulă moblă moblă Problemă fzcă eroarea de problemã modelul matematc troduce poteze smplfcatoare Problemã matematcã eroarea de metodã problema matematcã este îlocutã prtr-o problemã aproxmatvã, ma usor de rezolvat Problemã dscretzatã eroarea de truchere procesele fte care descru soluta sut îlocute cu procese fte Algortm eroarea de rotujre umerele reale se repreztã î memore cu umãr ft de cfre semfcatve Program Fg. 1.3. Surse de eror 5
Reprezetarea î vrgulă moblă fl(x) = 0.a 1 a...a t e reprezetare ormalzată 1 a 1 < ş 0 a <, =:t L e U Sstemul de reprezetare î vrgulă moblă F(, t, L, U) cuprde: baza precza reprezetăr t lmtele (superoară ş feroară ale) expoetulu L ş U reprezetarea lu zero Exemplu: F(10, 1, 0, 1)={ 0.a 1 10 e }{0} cu a 1 {1:9} ş e{0,1}, î total 37 de umere. (-1) t-1 (U-L+1) valor dstcte a 1 poate lua -1 valor dstcte, restul de t-1 cfre poate lua fecare valor dferte, dec t-1, expoetul a U-L+1, ş semul două). Cel ma mare umăr reprezetabl, (realmax) are forma: = 0.(-1)(-1)...(-1) U = = [(-1)/ 1 +(-1)/ +...+(-1)/ t ] U = (-1)/(1- -t )/(1- -1 ) U = U (1- -t ) = U (1- -t ) Cel ma mc umăr poztv reprezetabl umt ş realm este: = 0.10...0 L = L /= L-1 = L-1 Surse de eror. U umăr real xf se repreztă exact, dacă suma se termă îate de t terme ş expoetul este cuprs ître lmte. Altfel, umărul real x se aproxmează prtr-o valoare fl(x)f Aproxmarea umărulu real x=(0.a 1 a... ) e =(a 1-1 +a - +...+a t -t +a t+1 -t-1 +...) e se poate face pr truchere sau pr rotujre. Aproxmarea pr truchere goră cfrele umărulu real d dreapta pozţe t. fl(x)=(0.a 1 a...a t ) e =(a 1-1 +a - +... +a t -t ) e Aproxmarea pr rotujre cosderă: fl(x)=(0.a 1 a...a t +1 ) e dacă a t+1 / fl(x)=(0.a 1 a...a t ) e dacă a t+1 < / O depăşre superoară apare dacă e>u. Ea declaşează o eroare la execuţe, care coduce la îtreruperea calculelor. O depăşre feroară apare dacă e<l; ea duce la îlocurea umărulu pr zero. Epslo maşă (otat eps î atlab sau ) repreztă cel ma mc umăr poztv cu propretatea că: fl(1+) > 1 De exemplu î F(10, 4, -3, 3) cu rotujre pr tăere (truchere): 6
fl(1+0.0009)=fl(1.0009)=1 fl(1+0.0010)=fl(1.0010)=1.001 > 1 aşadar tr =0.001=10-3 >=10-4. Dacă se foloseşte rotujre, atuc: fl(1+0.0004)=fl(1.0004)=1 fl(1+0.0005)=fl(1.0005)=1.001 > 1 cu rot =0.0005=1/.10-3 =1/. tr Eroarea absolută la rotujrea pr truchere: e x = x-fl(x)=(a 1 / 1 + a / +...+ a t / t +a t+1 / t+1 +...) e (a 1 / 1 + a / +...+ a t / t ) e e x = (a t+1 / 1 + a t+ / +...) e-t e x (-1)/ 1 +(-1)/ +... e-t = (-1) e-t (1/ 1 +1/ +...) (-1) e-t /(-1)= e-t e x e-t Dacă se foloseşte rotujrea atuc eroarea absolută este ş ma mcă: e x 1/. e-t Eroarea relatvă este: x = e x / x = x-fl(x) / x e-t /(0.a 1...a t... e ) x e-t /(0.10...0 e )= 1-t x 1-t la truchere x 1/. 1-t la rotujre Î geeral: x-fl(x) / x de ude deducem: fl(x) =x(1+), =K -t De exemplu F(10,4,-0,0),=10 0 (1-10 -4 ) =9.99910 19, =10-0-1 =1.010-1, r =1/.10-4+1 =510-4 umere aproxmatve -operaţ exacte operaţ aproxmatve - date exacte Propagarea erorlor 1.Rezultatul exact al aduăr a două umere x ş y, dacă operaţle se execută exact este x+y. Î realtate, se lucrează cu valorle exacte x ş y, î care: e x = x-x ş e y = y-y x+y=x+ye x+y =xe x +ye y =x+y(e x +e y ) e x+y =e x +e y x+y =e x+y / x+y =(e x +e y )/ x+y =( x x + y y )/ x+y x+y = x / x+y x + y / x+y y =k x x +k y y 7
Petru scădere: x-y=x-ye x-y =xe x -(ye y )=x-y(e x +e y ) de ude: e x-y =e x +e y x-y = x / x-y x + y / x-y y =k x x +k y y Î acest caz coefceţ de poderare: k x = x / x-y ş k y = y / x-y pot lua valor foarte mar dacă xy, dec î cazul scăder umerelor apropate ca ord de mărme se pot comte eror foarte mar Î cazul îmulţr: xy=xye xy =(xe x )(ye y )=xyxe y ye x +e x e y xy(xe y +ye x ) e xy =xe y +ye x xy = x + y. Dacă operaţle se repreztă aproxmatv, ar umerele sut reprezetate exact, aduarea a două umere x=f x.b ex ş y=f y.b ey presupue aducerea celu ma mc (fe acesta y) la expoetul celu ma mare, producâdu-se o deormalzare fl(x+y)=fl(f x b ex +f y b -(ex-ey) b ex )=fl[(f x + f y b -(ex-ey ) ) b ex ] fl(x+y)=fl[(f x +f y (1+))b ex ]=fl[x+(1+)y] Rezultatul operaţe este ormalzat: fl(x+y)=[x+(1+)y](1+) Deormalzarea uua dtre terme poate f evtată dacă se păstrează rezultatul termedar îtr-u acumulator cu lugmea t (acumulator dublu) Î acest caz uma rezultatul fal va f afectat de truchere la t cfre semfcatve ş ormalzare, dec: fl (x+y)=(x+y)(1+) Aularea catastrofală La scăderea a două umere apropate ca ord de mărme, cfrele semfcatve se aulează recproc, rezultâd o eroare relatvă mare. fl(x)=0.a 1 a...a p-1 a p...a t e fl(y)=0.a 1 a...a p-1 b p...b t e fl(y)-fl(y)=0.0 0...0 c p...c t e =0.c p...c t e-p Iţal avem o sgură cfră exactă, î pozţa t, cu eroarea relatvă 1-t După scădere, btul exact trece î pozţa t-p cu eroarea relatvă 1-(t-p) adcă amplfcată de p or. Să cosderăm scăderea umerelor x=0.10 ş y=-0.119 î sstemul F(10,,-10,10): fl(x)=-fl(y)=0.10 = ((x+y)-fl(x+y))/(x+y) =(0.001-0)/0.001=1! eroarea este de 100%! Se evtă scăderea umerelor apropate ca ord de mărme pr: îmulţre cu cojugatul, dezvoltare î sere Taylor, 8
rearajarea termelor etc. Pr rearajarea termelor evtăm aduarea umerelor foarte dferte ca ord de mărme. Astfel î sstemul F(10, 3,-10,10) cu rotujre suma: 1+0.00+0.00+0.00 calculată fl(fl(fl(1+0.00)+0.00)+0.00)=1 î tmp ce asocerea: fl(1+fl(0.00+fl(0.00+0.00)))=1.01. Î artmetca î vrgulă moblă, asocatvtatea u se ma păstrează. Astfel: fl(fl(x+y)+z)fl(x+fl(y+z)). De exemplu: fl(fl(1+/)+ /)= fl(1+/)=1, î tmp ce: fl(1+fl(/+/))= fl(1+) > 1 Reprezetarea umerelor reale (stadardul IEEE 754) Permte reprezetarea reallor î: 1) precze smplă F(, 4, -16, 17), folosd 3 bţ ) precze dublă F(, 53, -10, 103); se folosesc 64 bţ: 3) precze extsă F(, 65, -1638, 1638); se folosesc 80 bţ: Îtrucât a 1 =1, acesta u se ma repreztă (este ascus), câştgâdu-se astfel precze suplmetară. Btul ascus este evdeţat î reprezetarea: fl(x)=(-1) s e.(1.+.f) Precze smplă reprezetare pe 3 bţ baza = precze t= 4 bţ (umerele ormalzate păstrează uma 3 bţ) Numărul real este păstrat pr 3 compoete: semul: 1 bt expoetul: 8 bţ matssa: 3 bţ (logc4) Ce 8 bţ permt: 8 = 56 valor dferte. Domeul [0, 55] este trasformat î [-17, 18] La expoetul (poztv sau egatv) se adaugă o valoare costată care duce la u expoet deplasat sau caracterstcă poztvă. Factorul de deplasare petru precze smplă este17. Domeul deplasat [0-55] repreztă expoeţ î domeul [-17, 18] expoet_deplasat = expoet + 17 Valoarea umărulu este: V=(-1) s. e.(1.+.f) 1=(-1) 0. 0.(1.+.0) 0+17 0 01111111 00000000000000000000000 S e(8) f(3) 0 011 1111 1000 0000 0000 0000 0000 0000 9
3 F 8 0 0 0 0 0-6.5=(-1) 1..(1.+0.65) +17 1 10000001 10100000000000000000000 S e(8) f(3) 1 100 0000 1 101 0000 0000 0000 0000 0000 C 0 D 0 0 0 0 0 U umăr ma mare decât cel ma mare umăr reprezetabl (cuoscut sub umele de modulul reprezetăr) se obţe î urma ue depăşr superoare (de regulă o împărţre pr 0: 1/0 =, -1/0 = - ) va f desemat pr ft If, ar edetermărle 0/0, / etc, vor f desemate ca NaN (Not a Number). Petru toate acestea se rezervă î reprezetare cel ma mare expoet posbl 18 (adcă expoetul deplasat 55). Precze smplă S E (8bt) e= E-17 H f (3bt) Valoare NaN 0 11111111 18 1 0 +If 0 11111111 18 1 000 000 (-1) 0 18 0x7F800000 Ω 0 11111110 17 1 111 111 (-1) 0 17 (- -3 ) 3.4E38 0x7F7FFFFF... 1+ε 0 01111111 0 1 000 001 (-1) 0 0 (1+ -3 ) 0x3F800001 ε = -3 1.9E-7 1 0 01111111 0 1 000 000 (-1) 0 0 =1 0x3F800000 0 00000001-16 1 000 000 (-1) 0-16 = -16 1.18E-38 0x00FFFFFF ax 0 00000001-16 0 111 111 (-1) 0-16 (1- -3 )= -16 - -149 D... 0 00000001-16 0 000 001 (-1) 0-16 -3 = -149 1.4E-45 0x00000001 D +0 0 00000000-17 1 000 000 (-1) 0-17 = -17 0x00000000 Precze dublă S E(11b) E-103 H f(5bt) Valoare NaN 0 11 11 104 1 0 +If 0 11 11 104 1 000 000 (-1) 0 104 Ω 0 11 10 103 1 111 111 (-1) 0 103 (- -5 ) 1.8E308 1+ε 0 01 01 0 1 000 001 (-1) 0 0 (1+ -5 ) ε= -5 1.1E-16 1 0 01 01 0 1 000 000 (-1) 0 0 =1 0 00 01-10 1 000 000 (-1) 0-10 = -10.E-308 axd 0 00 01-10 0 111 111 (-1) 0-10 (1- -5 )= -10 - -1074 D 0 0 001-10 0 000 001 (-1) 0-10 -5 = -1074 5E-34 +0 0 0 000-103 1 000 000 (-1) 0-103 = -103 Cel ma mc umăr ormalzat este -16 1.175E-38 Cel ma mc umăr deormalzat este.00 1 * -16 = -149 1.4E-45 10
Ift rezultă d calcule precum: 1/0 =, -1/0 = - Se repreztă cu expoetul deplasat 55, (edeplasat 18), ş fracţa 0. 0 Cel ma mare umăr = 1.111 1* 17 3.4E38 NaN ( ot a umber ) Apare câd se îcearcă o operaţe elegală (ca sqrt dtr-u umăr egatv) Orce exprese care coţe u terme NaN este evaluată ca NaN Exstă cazur î care aparţa uu NaN u declaşează c o îtrerupere (excepţe) NaNs este lştt U NaN semalzat declaşează o excepţe (de exemplu o valoare eţalzată) Alte NaN semalzate: sqrt(umăr egatv) 0 *, 0 / 0, / x % 0, % x, - Codţoarea problemelor Codţoarea ue probleme caracterzează sesbltatea soluţe î raport cu erorle d datele de trare. O problemă este be codţoată dacă eror mc î date produc de aseme eror mc î rezultate. Codţoarea este o propretate a probleme, depedetă de soluţa aleasă. O problemă rău codţoată este aproape erezolvablă î practcă (char dacă problema este rezolvată exact, soluţa poate f lpstă de semfcaţe). De exemplu, la evaluarea fucţe y=f(x), o perturbare a datelor x+x produce o perturbare a soluţe y+y = f(x+x), î care: eroarea absolută y f' x x y fx x eroarea relatvă x y fx x f' x Problema este rău codţoată dacă factorul Lpschtz L x este mare. fx Stabltatea umercă a algortmlor Stabltatea umercă caracterzează erorle umerce troduse de algortm, î poteza uor date de trare exacte. Se referă la precza algortmulu. U algortm este stabl dacă erorle de rotujre produc eror mar î rezultate. U algortm umerc stabl u troduce o sesbltate suplmetară la perturbaţ. U algortm stabl dă rezultate apropate de soluţa exactă petru o problemă be codţoată. U algortm stabl u poate rezolva o problemă rău codţoată, dar u algortm stabl poate da soluţ slabe char petru o problemă be codţoată. Dacă f: X Y este o problemă ş f : X Y este u algortm, atuc acesta este umerc stabl dacă petru xx, x X, astfel îcât: f x fx O m ş x x O m 11
Algortmul f destat rezolvăr probleme f este umerc stabl, dacă este îdepltă ua d codţle: 1. f (x) f(x), adcă soluţa calculată aproxmează be soluţa exactă. exstă x apropat de x astfel îcât f (x)=f(x ) soluţa calculată de algortm cu date de trare exacte este soluţa exactă cu date uşor perturbate. Exemple de algortm stabl: versarea de matrce folosd determaţ rezolvarea sstemelor lare pr factorzare LU fără pvotare utlzarea factorzăr Cholesky î metoda celor ma mc pătrate (rezultate mult ma bue furzează factorzarea QR). calculul valorlor propr ca rădăc ale polomulu caracterstc Bblografe V.Iorga, B.Jora etode Numerce,Ed.Albastră,005 C.Popeea, B.Jora, B.Dumtrescu Calcul Numerc Algortm fudametal, Ed.ALL C.oler Numercal Computg wth atlab V.Iorga, F.Pop etode Numerce Îdrumar de laborator 1