You are on page 1of 36
L1. Interpolarea LL Polinomulde interpolare Lagrange LLL. Aspecte teoretice Una dintre cele mai vechi si generale formule de interpolare este cea datoraté lui Lageange. Mai mult decat in utilitatea practicd direct&, importanta ei consti tn consecintele teoretice. O intreaga clas& de formule de integrare numeric are la baz’ aproximarea functil or prin polinommul de interpolare al lui Lagrange. Pe de alt& parte, plecdnd de la acest interpolant pot A constmite scheme de derivare numeric& cu diferite ardine de precizie Sa prempunem 08, pentra functia f(x) care trebuie apronimaté, cunt cunoscate » valori corespuazatoare argumentélor zp x1, ... , % din intervalul [, 6]: fa) =y, FHL Y.sn Ne propunem construirea unui polinom P,/x) care sa ia in punctele de tabelare x, aceleagi valori casi functia ffx), Pelt) =e = 12, (1.1.1) In avestscop 0& constmiira mai intdi o familie de polinoame p(s), pentma care are loc af (112) fet Palsy unde 4; este simbolul lui Kronecker. Deoarece p(x) trebuie s& se anuleze in toate cele » puncte de tabelare cn exceptia punctulni x, el poste fi scris sub forma unui produs de factori de Forma (w-x,), din care, in particular, lipseste factorul (x - x): ‘I 6-») Bi(z)= Astfel efinit, p(x) este un polinom de ordinul (%-d). Ludad 2 = x si avand tn vedere ca 1 i) = 1, se gisesie coeficientul constant C; Cu acestea, pentru polinoraul pits) rerult’ expresia (x-a5) (13) en Revenind acum la problema initiala, polinomul Py(x) care satisface condtiile de intespolare (1.1.1) poate fi seris ca o combinatie liniara a polinoamelor px), pornind dela Faptul c& fiecare dntre acestea din uma se anuleazdin toate punctele de tabelare cu exceptia céte unuia singur - x. In plus, deoarece polinoamele p,(3) sunt de ordinul 7 - 1), Pp) este el tasusi de ordinul (2-1) si avern Ralz)= 2 pila)y, (14) a Uhilizand proprietaile (1.1.2), se peate arata usor ca sunt satisficute conditiile de intespolare (1.1.1): Drled= Dar a a Balas) Ie FEUD Inlocuind expresia (1.13) a polinoamelor a(x) in (1.14) rezulta polinomul de interpolare Lagrange 19 In general, numarul de puncte utilizate intr-o schem& de interpol are minus umn este numit ordinul intespolarii si tn caml de faj& acesta ests egal cu ordinul polinomului ce interpolare Pentru a demonstra unicitatea polinomului de interpolare Lagrange vom presupune contrariul, adic& faptul c& existd un polinom Pya(x) diferit de 2,(x), care satisface de asemenca condiiile de interpolare Prala)= a. 6 In consecinté, polinomul Quala)=Feale)-2(2) se anuleaziin toate cele 2 puncte de interpolare % Fiind fasdi de ordinul (x - 1), au are decd ( - J) cerowi, si deci reculta afi identic nul, Prin urmare, Pra(x)= ®4(x) In cazul particular = 2 formula lui Lagrange se reduce la Arm Rom Ya (1.1.6) MWR HOR i descrie dreapta care trece prin cele doud puncte de tabelare. Pentru » = J interpolantul Lagrange corespunde parabola definite de cele trei pancte de tabelars: 6 bomen), boonies oleae) Beet mara) ta Goa OM Unmatoarea fnctie implementeazA formula (1.15) a polinomului de interpolare Lagrange, include include double Legrange( double xf], double wif], inti, double x) * Svalueaza polnomul de interpolere Lagrenge vif] - sbscisele purceterintexpolate 1i{]- ordnatele punctelorinteapolate si mamacul panotlor interpoee ie atgunentsl polinomalta doutle 5 inti, y=00; fox G=0;j 0 si o subestimeaza tn caz contrar. Formula trapezului (2.2.3) nu prezinta interes ca atare, deoarece, implicand doar doua valori ale integrandului, ofera precizie satisficatoare numai pentru integrarea functiilor liniare, Utilizand iasa proprietatea de adiivitate a integralelor fat& de intecvalul de integrare, vom generalize acest rezultat in cele ce urmeaza penta a obtine o formula de cuadraturd de interes practic, PME) tae =e) 2 Figura 2.2.2, Formula trapezelor aprezimeaza integrand cu linia poligonala definita de abscisele st valorile corespunzatoare ale functiei In acest scop imparfim, aga cum se vede in figura 22.2, intervalul [2] tn (2-1) subintevalele egale de lungime 12 h=-a)ie-1) 25) prin intermediul punctelor echidistante +6-1%, (2.26) Desemnand prin ff = f(x;) valorile integrandului in nodurile retelei, aplicém formula trapezului 2.2.3) fiecdrui subinterval fuaal slagyyxg] £ Sloane 24 +f) Set A) +S Sa th) si, grupind termenii, obfinem forrada irepesston [edi] a5 5 4 (227 3 Geom etric, aceastii aproximatie implica tnlocuirea graficului functiei_ y= f(x) cu linia poligonala care uneste punctele (1,4), (ty. fy )-o%A) Resnil formule: trapezelor se compune din resturile corespunzatoare celor (@-l) subintervals de integrare, a apa) [4 3s 4] 1D IG) Wt hats (22.8) gi prezintd o dependenta tipicd deh?. Aceastd dependent are ca si consecint& faptul c4, spre exemply, psin reducerea lungimii subintervalelor la val oarea 2/2 sav, echivalent, prin dublarea aumérului de subintervale considerand (22-1) puncte de integrare, eroarea de integrare scade de 4 oti. Functia Trapez, prezentata ix continnare, calculeard integrale definite prin metoda trapezelor. Datele de intrare ale rutinei sunt limitele domeniului de integrare, a si 5, $1 aumarul punctelor de integrare, x. Numele functiei care trebuie integrat’ este transmis ca paramet corespunzator parametrului formal Func. Valoarea integralei este returnara prin aumele functiei. double Trapez (double a, double b, int n) /* Calculeaza integrala functiei Func pe intervalul [a,b] utilizand fommula trapezelor cu n puncte de integrare */ ( double hy 37 int i; h= (b-a)/ (N-D: s = 0.5 * (Punc(a) + Func(b)); for Gi = 1; i <= In - 2); itt) s 45 Func(a + i * hd: return h * 3; 13 ny =) o_o ny =8 Fignra 2.2.3, Schema de injum atitire a interval elor tn metoda trapezel or cu control automat al pasului. Prin cerin{e sunt figurate valorile care trebuie calculate in fiecare etapa Pentru generarea absciselor de integrare, adunarea repetatd a lungimii pasului, Na=% +h, poate proveca acumularea de erori in cazul numerelor mari de puncte de integrare, fiind deci preferabild utilizarea rel tei Hatin, 1=0,1,.2-1 In plus, valori generate cu ajuiorul acesteia cin urma pot fi comunicate direct ca argumente tn apehil fanctiei Fuze. Controlul pasului si implicit al preciziei de integrare se realizeazd in practic’ adesea prin proces de ,exprimare” numeric&. Acest proces implic& de obicei calculul integralei pentru o valoare oarecare # a pasului, corespunzénd unui numar de puncte de integrate, $i comparares valorii astfel obtinute cu valoarea rezultat’ pentru pasul #/2, corespunzand unui aumar de Qn-1) puncte de integrare. Injumatatrea pasului trebuie continuat’, ta principiu, pand cénd eroarea relativa pentru doud aproximatii consecutive ale integralei scade sub o valoare admisibild e. Caloulul integealei cu o precizie prestabilité prin metoda injumatatirii pasului poate f semnificatiy optimizat observind c4, potrivit figurii 2.2.3, care reprezinta retelele punctelor de integrate pentru primele patru etape ale procesului de injumatatire, nu este necesara evaluarea functiei in toate punctele de integrare, ci doar in cele (figurate prin cercuri) prin care au fost tnjumatatite subintervalele retelei utilizate tn etapa anterioar’. Restul valoriler functiei, deja calculate 12 pagii anteriori, sunt folosite implicit stabilind o relatie de recurent’ intre dow’ aproximatii consecutive ale inte gralei Primele aproximatii fumizate de formula trapezelor pot fi scrise gan 22. 20] hy=b-a a= hf |. A 420) 2 ek [20 | fle) y\ Et flat hy Ay =hg (2 (2.2.9) q =n] 22 ern) starz) loa) 20] ye 2 Se poate verifica fara dificultate c& acesta succesiune de aproxtmatit poate fi descrisa cu gjuterul procesului iterativ K=Ar@)+s 0). m=0-a.n=1 ea th [aatma$irort-.0] e212) a fi, = hag yf 2,ny = 2a) k= 12, (2.2.13) 14 unde A,=(b-a)/n, este lungimea subintervalelor dupa etapa &, iar m, = 2" reprezintaé aumarul corespunzator de subintervale sau, echivalent, numarul punctelor noi de integrare gi de tajumatatire a subintervalelor pentsu etapa urm dtoare. Procesul recurent (2.211) - (2.213) trebuie continuat pnd cand diferenta relativa dine doua aproximalii succesive ale integralei devine mai mica san egal cu o toleranta prestabilita ©, Pentmm a evita impértirea cu 0 implicaté de eveluarea eronii relative in cazul T, = 0, exprimam criteriul de convergenta sub forma fe - Tal Se|Z] (2.2.14) Algoritmul (2.2.11) ~ (2.2.14) al metodei trapezului cu control automat al pasului de integrare se regdse;te cub forma functiei TrapexControl care urmeazd #include #include #define pi 3.1415926535897922384626433832795 double Func (double x) ‘ return atan (x); ) double TrapezControl (double a, double b) /* Calculeaza integrala functiei Func pe intervalul [a,b] utilizand formula trapezelor cu control automat al pasului de integrare */ ‘ const double eps = le-6: const int kmax = 30; double h, sum, t, tO: long ip ni int kr h=b- a: nad: £0 = 0.5 *h* (Func(a) + Func(b)); (/aprox. initiala for (k = 1; k <= kmax; k++) t sum = 0.0; for (i = 1; i <= np itt) sum += Func(a + (i - 0.5) * hj? b= 0.5 * (0 +h * sun); if (fabs (t - tO) <= eps * fabs(t)) break; bh *= 0.5; 2 tr ) Gf (ke >= kmax) 15 printf("PrapezControl: nr. maxim = de iteratii depasit !\n") return t; ) void main () ( printf ("integrala functiei atan(x) pe intervalul [-pi/2 3pi/2] are valoarea: %.8f\n",TrapezControl (-Pi/2, 3*Pi/2))7 , Parametsi formali ai acestei rutine an aceeasi semnificatie on cei ai functiei Trapez Pentru ca numérul punctelor aoi de integrare n, ca putere alui 2, s4 nu depaseasca valoarea maximé de tip Jong reprezentabila (pentru majoritatea implementaril or limbajului C egald cu 23-1), numarul de injum atitiri ale subintervalelor este limitat prin wariabila damax 1a 30 Daca, datosita convergentei slabe a procesulni, se epuizeaza cele Jomar iteratii posibile fard a se fi atins precizia dorita eps ta calculul integralei, se iese din ciclul injumatatirilor cu variabila de control &incrementata la val oarea max+1 gi se emite un mesaj de eroare. 2.3. Formula lui Simpson 23.1. Aspecte teoretice Ofermuld de cuadcarurd cu un grad de precizie mai ridicat decét formula trapezului se obfine particularizénd formulele Newton ~ Cotes pentru =3, Se objin coeficienfi: Ctes: 1p 1 oo (Na 2)tg == @3.0 1 2 2 [jela-2ha=5 2.3.2) 1 2 #, =3fd-Dae= 23.3) si. avandin vedere cé b— a =x, — x, = 28. rezulta formula kui Sempson % h Tee sh + 4h) G34) Din punct de vedere geometric, aceast& formul’ implic& inlocuirea curbei_y=fla) cu parabola y= A(x) definita de puactele (x,.f,),(%2./2) si (3.4). Admiyaad ca /(e) apartine clasei functiilor continue fmpreun’ cu primele patru derivate ve bea] fcc [a,2]), se poate obfine o estimare a restului formulei lui Simpson printr-o 6 tehnica simil ara celei utilizatein cazul formulei trapezului, Ep Rae). ge lab] 235) Este important de observat c& restul formulei lui Simpson depinde de A°, in timp ce restul formulei trapezului depinde doar de #°. Se constatd c& formula Simpson este exact nu numai pentru polinoame de ordinul doi, ci si pentru cele de ordiaul trei Pentru a stabili o formula de interes practic, care si asigure o precizie sati sficdtoare penima un integrand arbitrar, se generalizeacd relatia (2.3.4), similar formulei trapezelor, 16 Pacdnd uz de aditivitatea integralei fata de intervalul de integrare. Astfel, diviznd intervalul [4,2] printe-un aumar impar, x=2m-+1, de puacte echidistante, +G-Nhk, f=1,2..9, caracterizate prin echidistanta n-1 dm se poate aplica formula lui Simpson (2.3.4) pentru fiecare din cele m subintervale duble de lungime 2h determinate de cele trei puncte de refea consecutive: [x, 5 b[3.25 b--L4 ae | Geometric, aceasta abordare revine la sprozimarea intograndului prin arce de parebola pe fiecare pereche de subintervale consecutive. Este evident c& pentru un xumar par de puncte de retea, formula lui Simpson nu poate fi aplicata de un numar intreg de ori. Cu toate acestea, integrala pe intregul interval [4,5] poate fi scrisa . h A a [FOS A HAG AA) HAN tS) ta teat Je) Regrupind termenii rezult’ de aici formula lui Simpson generalizatd, Laeernde, 440, +2a,+4,), 036) unde os eae Dhria S Dh (2.3.7) Suma oj, se compune din termenii de indice impar, in timp ce @, insumeaza termenii cu indice par. Admitiad ca f(x)eC a,b], restul formulei lui Simpson generalizate se obtine tnsum aad resturile de tipul (4.3.5) pentra fiecare din cele m subintervale de lungime 2h ale intervalului [a,b] @=ayet me), ¢elza) 2.3.8) Functia SimpsonO, listata tn continuare, codifica intocmai formulele (2.3.6) — (2.3.7) Semnificatia parametrilor este acceasi cu cea a parametrilor functiei Trapez, descrisa anterior, gi numele functiei utilizator este transmis gi aici prin lista de argumente. oy float Simpson0 (float Func(float), float a, Float b, int n) /* Calculeaza integrala functiei Func pe intervalul [a,b] utilizand formula lui Simpson cu n puncte de integrare */ t fleat h, sl, s2; int i, par = 0; if ((n/2) 42 n) nt+; //incrementeaza n daca este par h= (b- a) / (W- 1); sl = s2= 0.0; for (i = 1; i <= (m - 2); itt) { if (par) sl += Func(a + i * bh); else s2 += Funcla + i * h); par = ~par; 7 return (h/3) * (Func(a) + 4*s2 + 2*s1 + Func(b)); In situafiile in care in mod eronat numérul punctelor de integrare 2, comunicat rutinei, este par, el este incrementat Adunarea alternativ a termenilor la o suma sau alta este controlati de valorile variabilci intregi par, carc, prin actiuaca operatorului ,,~” de incrementare bit-cu-bit, ia altemativ valori mule si neaule Se poate realiza o codificare mai eficienta rescriind relatile (2.377) sub forma cat = DS Gan) rain = 4 +12) 239) es oa = f)+ & Flee) aay = Hea th @3.10) ia astfel Incdt num arul termeailor din cele dowd sume si fic egal, indicele i parcurgand acelasi sir de valori, In implementarea data mai jos au mai este necesard structura de selectieif, deoarece lafiecare iteratie este adunat céte un termen fiecdrei sume. float Simpson (float Func(float), float a, float b, int n) /* Calculeaza integrala functiei Func pe intervalul [a,b] utilizand formula lui simpson cu n puncte de integrare */ { float hy h2, sl, 82, a7 int is it ((n/2)*2 == n) nt /fincrementeaza n daca este par h= (b- a) / (n- 1); h2 = 2*h; sl = 0.0; 32 = Func(ath); for (i = 1s i <= (mn ~ 3)/2; itt) 4 ws at i*h2; sl += Func(x); s2 += Func(x+h); ) return (h/3) * (Func(a) + 4*s2 + 2*e1 + Fune(b)); Ca si in cazul metodei trapezelor, se poate concepe un algoritm avand la baza formula lui Simpeon, care s& realizeze in mod automat adaptarea pasului de integeare pentru efectuarea cuadraturii cu o anumitd precizie prestebilitd In esent’, trebuie comparate aproximatiile calculate recent ale integralei, corespunzdtoare valorilor # si #/2 ale pesului de integrare, injumatatind pasul pana cand eroarea relativa pentru doua aproximatii consecutive scade sub valearea s Avénd in vedere aprozimatiile dete de formula trapezelor pentru valor ale pasului de integrare injumatatite succesiv, se poate verifica fra dificultate c& aproximatiile formulei lui Simpson pot fi exprimate in raport cu cele dintai AUG) +4re+h)+ 0) Aq-% 3 L/@)+4sla +h,)+ 27 ath) +4y (2 +3%,)+p0)-BER (23.11) 18 Generalizand aceste rezultate, aver 40, - Th pa (23.12) Ch acestea, algoritmul pentri caleulul recursiv al aproximatiilor formule’ Ini Simpson poate fi descris cu ajutorul relatilor: Sy= Ue) +70). hy My 2313) Tea + SE sor-112%,.)] #12, (2.3.14) a s, =4ot — Iga hy l2, m= 2m (23.15) Acest proces este continuat pand cénd eroarea relativa in calculul integralei devine mai mic& sau egal cu tolerania prestabil:ta e. Ca si in cazul metodei trapezelor, pentra a trata unitar si situatiile in care S, =0, scriem acest criteriu sub Forma Ise -Seal etsy (23.16) Argamentele, variabilele si constantele locale ale functiei StrmpsonControl, sorisi pe baza acestui algoritm, pastrearA semnificatia pe care o au in cazul funchei TrapezControl. #include #include fidefine Pi 3.1415926535897932304626433832795 float func(float x) { return atan(x); ) float SimpsonControl (float Func(float), float a, float 5) /* Calculeaza integrala functiei Func pe intervalul [a/b] utilizand formula lui Simpson cu control automat al pasului de integrare */ ( const float eps = le-6; //precizia relativa a integralei const int kmax = 30; //mmar maxim de injumatatiri float h, s, s0, sum, t, tO; long i, ni int kj = 0.5 *h *(Punc(a) + Func(b)); //aprox. initiala for (k = 1; k <= lmax; k++) { sum = 0.07 for (i = 1; i <= nm; it) sum += Func(a + (i - 0.5) * h); £ = 0.5 * (tO + h*sum); 19 s = (4% — £0)/3; /{noua aproximatie if (fabs(s - 80) <= eps * fabs(s)) break (/testeaza convergenta h *= 0.5; n*= 2; s0=s; tO = te ) if (k >= kmax) printf ("SimpsonControl: nr. maxim de iteratii depasit!\n") ; return s; ) void main () t printf ("integrala functiei atan(x) pe intervalul [-pi/2 3pi/2] are valoarea: %.8f\n", SimpsonControl (func, ~Pi/2, B*PL/2)); 3 2.3.2. Desfasurarea laboratorului 1. Se va aplica algoritmul metodsi trapezelor gi algoritmul metodei Iui Simpson, ambele cu control automat al pasului de integrare, pentru a calcula valoarea integralelor de 1a punctele a)...2). Preciziarelativa vafi 6 zecimae iar rezultatele se vor afiga cu 8 zecimale. Se va alcatui un tabel cu diferentele fatre valoarea integralei calculaté dizect si cea rezultaté in urma aplicarii metodei trapezelor respectiv Simpson pentru fiecare din cele 5 integrale. 1 » [arto ») [ixtax= a o freee, a fein adx =~ cos? be By [pace adx = xarctanx “ass. 7 20 L3. Rezolvarea numeric a ecuatiilor diferentiale ordinare 3.1. Metoda Euler 3.11. Aspecte teoretice Problemele modelate cu ecuatii diferentiale ordinare se carecteri zeaz& printr-o singuré variabila independent gi una sau mai multe variabile dependente. fn aplicatiile stiintifice si tehnice, variabila dependenta este timpul (f) sen spatiul (). Indiferent de ordinul ecuatied diferentiale, care rezultd dn modelarea matematica a problemei, rezolvaree numerica se poate reduce intoideaunala o ecuatie difereatiala de ordinul L De exemplu, o ecuatie diferentiala de ordinul IL d?y ax* este echivalenta cu un sistem de doud ecuatii difcrenjiale de ordinul I +9 2= re) 2. z(x) S = (a) -geet2) in general, o ecuatie Gferentiala au are solutie unio’. fn aplicatiile concrete, se poate obtine solutie unic& dacd se cunosc valorle initiale ale functiei necunoscute (probleme Cauchy) sau velorile pe frontiera domeniului de definitie (problema Dirichlet) Formularea complet a unei probleme ce const&in rezolvarea nei ecuatii diferentiale de cedinul I (problema Cauchy) este: YatKy) V(X =o > unde x este valoarea initial a a veri abilei independente Metoda Euler este foarte importanté, nu até din punct de vedere practic (se acumuleazd erori mari de aproximare) cit mai ales conceptual, pentru intelegerea metodelor aumerice evoluate, de mare eficienta. Fie problema Cauchy: w= fy) m9) =o. 1) Denwoltimn functiay(x! in serie Taylor, intr-o vecinatate a punctului x : =H) 4G Ne— Hy) + ID ye) h=x-% Introducem pasul de discretizare termenii de ordin superior Ini 2 WD) = ¥(%) +") si rescriem relafie de mai sus neglijand Termenii din partea dreapid sunt cunoscufi din relafiile (3.1.1) iar valoarealui HD 0 aa BoM +h evalueaza ta *~ *0 au W% Fh) = YE)+R-F Fo.d0) 2O)= Yo, WotR May k= 12, Notam si objinem: Pasul 1 MaYoth £%.%), Pasul 2: ¥2 Vth FN) Pasul 3: Ys =Vath F(a) Pasul att: Yen Jat SG Ms) unde T= tH Functia necunoscuta ”) se determina astfel prin valorile sale in puncte echidistante Ve Var Var oe Va Programul in C++ care determina valorile fanctiei y() este istat mai jos include float f (float x, float y) //functia f(x,y) { return y / (y-x); ) int main (void) ‘ float x=0.0, y=1.0, h=0.5; // valorile initiale %,¥%.h int n=0; printf ("n=%3d 2=38.4f y=88.4f \n",n, ay)? for (n=lyn<=10;nt++) { yeyth*£ Gs y)i (¢ velatia Yau =a th fGeJn) meuth; printf ("n=83d 2=$8.4f y=88.4f \n")n, x,y)? } return 0; 3.2, Mewda Euler modificatt 3.2.1. Aspecte teoretice Dezavantajal principal al algoritmului Euler i constituie eroarea de calcul cumulaté (determinata de neglijarea termenilor de ordin superior lui 2). Pentru a reduce aceasti eroare se impune folosirea unui pas de discretizare J, foarte mic, ceea ce duce la cresterea timpulu de executie, Agoritrul tui Euler poate fi mai eficient dacé se utilizeaza in calcul, valoarea functiei f(xy) la ambele capete ale intervalui de discretizare # De fapt, la fiecare pas, valoarea Jyq se calculeard in doud etape, Prima clapaeste cea din algoritmul Euler iar in a doua etapa se efectneand o corectic a valorii obtinute 22 Pas 1 WHY th F%I0)+ m= SALAD, Pas 1 —corectie Mra Poth OF tye = SLD, Pas 2: Vy Mth A), a= FFI), Pas 2 —corectie Yate Opty )/2 | = fa). Pasnt1 Yan Ia te LCD, Yan = LOGI x), Yaw = Fn HH + Yh)! Yan = FC Jar), Pas n+1 —corectie unde x= mth In etapa a Iz, se corecteazi valoarea lui Yq considerind media derivetelor tn punctele 2x, $i my, - Pentra oresterea preciziei, secventa de corectie se poate reluaincd o data Cerinta de a folosi un pas de discretizare h, cat mai mic se mentine si in cazul metodei Euler modificate. Programul in C++ care determina valorile functiei (x) este listat tn continuare Problema Cauchy din program este J. re[0,0) vox Yo = YO) =1, (Golutia andlitica, exacta, este y(x) = xtax*+1). y // Algoritmul Buler -modificat #include #include float fifloat x, float y) ‘ return y/ (y-x) } int main (void) { float x=0.0, y=1.0, +05, yl, y2r int n=O; printf ("n=$3d x=38.4f y=88.4£ \n",n,x,y)i for (n=Lin<=S0;n++) { Gay)s 2 yeyth*t (xy) wouth y2-£ (x,y) 7 yeyth* (ylty2) /2 printf ("n=83d x=%8.4f y=88.4f val_ex%8.4f \n", n, xh, y, xtsqrt (x*x+1)) 7 ) return 0;} 3.3. Metode Runge — Kutta 33.1. Aspecte teoretice Se bazeazd pe evaluari ale functiei fy) (cunoscutd ca expresie enalitic’) si derivatelor sale in raport cu variabila independent x, tn mai multe puncte ale intervalului de integrare. Se asigurd astfel o precizie mai bund, ca urmare a faptului cd functia f(y) este data iar derivatele de ordin superior ale functici necunoscute p(x) sunt exprimate prin derivate parpale de ordia superior ale lui fly Gx) Fie problema Cauchy: YO=FE% 0%) = Yo Se evalueaza derivatele de ordin superior ale functiei (a): y'Q) = fe 3a a 33x OLE Se pay) th) 100) = ht iS ee x Gy dx wey OF, OF ay OY by PF (dy) ay _ YO)" Sa axa de Bx x aS) yar = Sat Sgt + Igo thy! + ho" ba t2By thy lf +h ltt y= B32) Sate thy hh tLhy Algoritmul Runge - Kutta de ordinul 2, se bezeara pe dezvoltarea functiei y(x) in serie Taylor Iuand in consideratie termenii pana 1a ordinul 2 de derivare, Formulele de baz, iterative, sunt: Ya taktbk, unde (3.3.3) fre) by Hf mba yy +B) Constantele a,b, a, 8, urmeaza a fi determinate din conditia ca (5.3.3) s& reprezinte o dezvoltare in serie Taylor a functiei y(x) ta jurul punctului 2, penta ae Gtr te Pa i 33.4) HRM ILA) Uy tele Hind + Soy He) Po =X Hon) = 2) Ma) + Gu indicele 7 la paranteze, am incicat ca evaluarea functei se face in (x.y) 24 Pe de alta parte, folosind dezvoltarea in serie Taylor pentru functii de doua variabile, tn jurul punctului (4,,y,), obtinem. Llu te B+ Ba) = Sry) tO, + BEL + SP ah 6 hfy tes, + unde toate derivatele au fost evaluate in punctul (x,.¥,) fn exprecia (3.3.3), inlocuim parametsi k, ,k, folosind expeesia (3.3.5) 35) rorr tere reels eH)" (Lh ramr Ley i 036 Comparfind expresiile (2.3.4) cu (2.3.6) 9i identificdnd coeficientii pentru h gi A? obtinem relatiile: ath G37) bea=b. B= 2 Sistemul G.3.7) are mai multe solupi, fiind format din trei ecuatii ca patru necunoscute, O solutie simpla si echilibrat este a=p (33.8) Algoritmul Runge — Kutta de ordinul 2: Pentru problema Cauchy: y= FY) Ya) = Yo: Se alege pasul de integrare h, xy valorile functiei y(a,) Ay = If lee) Ay = Aay th dy Fh) ta-# gi se calculeard pentru m=2, 2,3, . 1 i =r toh tok Yen = ath toh Algoritmul este de “ordiaul 2” pentru cA in seriile Taylor se iau in consideratie termenii ce contin derivate pana la ordinul 2, inclusiv. Algoritimul Runge — Kutta de ordinul 4 este similar dar se iau in consideratie termenii ce contin derivate pani la ordinul 4, inclusiv; tn final, din identificarca termenilor ce contin kJ? 2 JS, se obtin 11 ecuatii on 13 necunoscute, deci dowd necunoscute se aleg arbitrar Algoritmul Runge-Kutta de ordinal 4: Pentra problema Cauchy y= Fy) 20%) = Yas Se alege pasul de integrare #, x, =x) +n-h si se calculeazd pentra n=l, 2, 3, . valorile functiei y(x,) 25 Yana teh 42h + 2b +h) Algoritmul Runge - Kuta devine si mai performant prin controll adaptiv al pasului de iteratie, h; céind viteza de variatie a functiei y(x) creste, trebuie micsorat pasul iar cand functia are o varialic lenta, pasul poate fi marit. Vileza de variaiie a unci functii este data de valoarca derivatei sale. // Runge-Kutta ordin 2: #include #include float f (float x, float y) ( return y/ (y-x) i ) int main(void) t float x=0.0, int n=0; printf ("n=$3d x=$8.4f y=88.4f \n",a,x-y)i 0, +05, kL, k2 7 m<=S0;nt+) AE (Hey) F FE (eth, y+) yoyt (e142) /2; xexth; printé (" val_ex: $8.4f\n")n/x,y, xtsqrt (x*x41))7 ) return 0; // Runge-Kutta de ordin 4 #include #include float £ (float x, float y) ‘ return y/(y-x); ) 26 int main (void) { float x=0.0, y= int n=0; printf ("n-%3d e-$8.4£ y-%8.4f \n"/n, xy)? 0, +05, kL, k2, k3, k4 5 m<=SOint+) FE (ey ¥) 5 *E [xth/2.0,y4k1/2.0)7 *£ [xth/2. 0, y4k2/2.0); +E [xt+h, Y+K3) 7 Yayt (k1+2*K2+2*3+K4) /6.07 ckth; printf ("n=83d x=%8.4f y=88. 4 val_ex: $8.4£\n",n/x,y, xtsqrt (x*x41)) 7 3 return 0; ) 3.3.2. Desfésurarea laboratorului 1. Se va aplica algoritmul metodei Euler modificat& si algoritmul metodei Runge — Kutta penim a rezolva ecuatille diferentiale de la punctele a)...c). La fiecare ecuctie, pentru solutiile ultimiler 4 pagi, ce determind erocrea procentuala fat de valoarea exact’ dupa formula exact —aproa|, 4, exact 304 | ya) =-4; solutia andlitics: p(x) = 2-22 az 4 4x 2, y(Q)=-1; solutia analitic& y(2)= x? — 3 > procent = -e"*—2y, y(0)=1, solutia analitica: yaaitter 4 a 2 2 L4. Cuadraturi gaussiene 44. Formula Gauss-Legendre 4.1.1. Aspecte teoretice Calculul unei integrale cu ajutorul oncarei formule Newton-Cotes implica valori ale integrandului corespunzitoare unei setele de puncte echidistante. Scheme de ordin diferit se deosebesc in esentd prin numarul punctelor de integrare (nu prin modul lot de alegere) gi prin ponderile asociate. Prin comparatie, ideea de bard a metodelor de integrare gaussiene const atat tn alegerea optima a ponderilor, cat gi a nodurilor de integrare, astfel tncat si rezulte formule de cuadratura cu grad de precizie maxim pe anumite clase de functi (de exemplu, pe clasa polinoamelor algebrice). Avand la dispozitie un numar dubiu de grade de libertate care pot fi fixate (noduri gi ponderi), se pot obtine formule de cuadraturd cu ordin de precizie dublu fata de formulele Newton- Cotes cu acelagi numér de termeni Decarece orice integrala pe un interval finit [ab] poate fi transformat& printr-o schimbare liniard de variabild inte-o integral pe intervalul [-1,1], [r@ee (oe Ea (41.1) rezulté c& formulele de cuadraturd pentm intervale finite pot fi dezwoltate, far’ a le reduce generalitatea, pentru intervalul standard [-1,1] Ne punem problema alegerii punctelor de integrare xz x2, .. % $i a ponderilor WE, 2, wy Wy astfel tncdt formula de cuadratur’ if * [,f@ax Dy) 412) 38 fic exactd pentru toate polincamele de grad N ct mai mare posibil. Deoarece aceasta formula implict 2» coeficiengi care trebuie detenminati (Ws x # 1, 2, sees M) si acelasi numar de coeficienti caracterizeaz complet un polinom de grad (2n-i), este evident c& gradul maxim este N= 2r-1 Pentru ca formula de cuadratura (4.1.2) s& fie exact penirn orice polinom de grad mai mic sau egal cu (2n-J), este necesar si suficient ca ea sA fie satisfcutd pent sirul indamontal de fuactii 28 41.3) adica, sf aiba loc (ie dx = ae yA, k= OL 20-1 414) tntr-adevar, orice polinom de grad mai mic sau egal cu (2-2) poate fi reprezentat sub forma unei combinapii liniare a functiilor sirului fundamental (4 1.3): at OQ) = Sart a Integrand ambi membri ai acestei relatii intre -1 gi 1 gi tinand cont de formulele (4.1.4), se obtine succesiv: fi Oar = Sal's ‘dx= Sands a Saat a adic& fowax- Emo), ceea ce dem onstreazd propozitia. in principia, pentru determinarea nodurilor a; si a ponderilor w; ale formulei de cuadraturé (4.1.2), poate fi folosit sistemul neliniar (4.14), avand ca termeni liberi integralele i fpf pe Dac& » este mic, sistemal (4.14) poate fi rezolvat analitic tn schimb, pentru » mare, rezdlvarea analiticd prezinta dificultati deosebite. De aceea, vom utiliza o alt cale pentru determinarea nodusilor si ponderilor formulei de cuadratira (4.1.2) fn spajiul functiilor de patrat integrabil pe intervalul [-1,1], notar Z[-11] polinoamels Legendre Pa(x) (2=G 2, 2, «») joacd un rol cu totul deosebit, deoarece constituie un sistem ortogonal complet, sau o bazd. Ortogonalitatea polinoamelot Legendre se exprima prin anularea produsului scalar dintre douapolinoame de ordin diferit, 1 [ROAR @dr =0, dacd man, 41.5) iar completitudinea lor revine la faptul c& orice functie f € Z[-1,1] poate i dezvoltata tn mod unic intr-o serie convergentAin raport cu ele 29 In particular, orice polinom de ordiaul & poate fi scris ca o combinatie liniard de polinoame Legendre de ordin mai mic san egal cu &, £ Oe) = Zon Fn) 41.6) = fnmultind scalar ambi membri ai acestei dezwoltati cu polinomul Legendre Pax) de ordin nk si folosind proprietatea de ortogonalitate (4.1.5), objinem: [L@R@a= Te f ROROAR=0, ken Considerand in particular Q, (x) = x* ave [[*2@ae-0, RE a7 Pe de alté parte, find de ordin mai mic sau egal ou Zv-J, integrandul x*P,(s) satisface formula de cuadeatura (4.1.2), [Peed =ZtR@ 418) i, comparand (4.1.7) cu (4.1.8), rezulta sistemul DokR@)=0, k= 0h.0-1 419) zs Ecuatiile acestui sistem suat satisf’cute simultan pentru valeri arbitrare wy numai dacd Ria)=0 7 Prin urmare, pentru a obtine precizie maxima tn formulele de cuadratura (4.1.2), este suficient (4.1.10) 28 considerdim ca puncte de integrare x cele » zerouri ale polinomului Legendre Py(x), care sunt reale gi distincte si suat situate tn intervalul (-1,1) Pentru a determina ponderile wy asociate zerourilor x, punem polinomul Legendre P,(2) sub forma T]@- a) GAD ial A@= si definim polinomul de grad (2-1) T]@- 3). 4.1.12) af) a@ care se anuleaza pentru toate zerourile lui Paix) cu exceptia lui 7. Pe de alta parte, derivata lui Pa) este BG) eS Tex) Pie 30 si se observa cu upuringa cl pentra x i are loc relatia BG). (4.113) deoarece in expresia lui R(x,) se anuleara topi termenii care congin factorul (z~ 1) Formula de cuadratara (4.1.2) réméne exact’ pentru [O!%(2,)), cere este un polinom de gradul (2-2) gi se deduce succesiv: fave fers wlo%al = wlan? = wlecoP, @114) unde s-a tinut cont ca Ol!(2) se anvleaz& tn zerourile lui P(x) cu exceptia lui x, Pe de alta parts, utilizind (4.1.12) si integrand prin parfi, rezult: [lee fax= #O _ACD EOD oft ONE C)ax 4.115) tom lta Avénd in vedere proprietatea F2(1) = BY-1=1 si faptul cd Ol(2) P(x) este un polinom de ordinul (2n-2), pentru care esie exacta formula de cuadratura (4.1.2), relatiile (4.1.14) si (41.15) conduc la wl Rca = sau wl PoP = zt 2m ONC) Ar) Te: x Tinand cont de (4.1.13), cbtinem in final pentru ponderile ws 2 wR G)P Formula de cuadraturi (4.1.2), ou cele » puncte de integrare egale cu zerourile 4116) polinomului Legendre Fax) si ponderile asoviate date de relatia (4.1.16), se aumeste formate de cuadraturé Gauss-Legendre si este exactd pentru polinoame pina la ordinul (Za-2) Numele particular al acestei formule este menit si o deosebeasca de alte scheme din familia cuadraturilor gaussiene, construite pe baza acelorasi principii, tnsA pentru alte intervale de integrate gi utilizand proprietitile altor sisteme de polinoame ortogonale (Cebigev, Laguerre, Hermite etc.). fn cazul unui interval de integrare [a,b] oarecare (ca a gi b finite), formula de cuadratur Gauss-Legen dre ars forma a1 7 ‘ [.7@e6= SDs). @1in a unde punctele de integrare sunt definite in raport cu abscisele a din intervalul standard [-1,1] prin & fe gt 4.118) 2 4 2 Se poate demonstra cS restul corespunzitor are expresia na) Gl (8), éela,b] 119) Qn +l Qn)lP Tn tabelul de mai jos sunt cuprinse cAteva seturi de abscise si ponderi pentru cuadratura Gauss-Legendre. Trebuie notat faptul c& pentm orice » nodurile de integrare x sunt distribuite simetric fati de origine in interioral intervalului (-1,1), iar ponderile nodurilor simetrice sunt egale. In cazul valorilor » impare, originea insasi este punctul central de integrare (x pu2+1=0) " i xi » T T 0 2 2 12 £0.57735027 1 s 1,3 £0,77459667 055555556 2 0 0.888888) 4 14) £0,86115631 0,24785484 2.3 £0,22992104 0,65214516 1,5) £0,90617985 0,23682688 5 2.4 £0,53846931 0,47862868 3 uv U,56888889) Un prim exemplu de implementare este programul de mai jos in care functia Qcausshegé este folosita pentru a calcula [* arctan yay, utilizénd formula Gauss-Legendre cu 6 puacte de integrate. include fidefine Fi 3.141 5926535897032384626439832705 Aoat funeeflaat ) { : rehurn stent, Aout QG mussLegi(Floct Func(float), floc 9, float 8) Calculeaze integrala fimctiei Fune pe intervaltd [a,b] utilizand cuadratura GaussLegencke ou 6 puncte de integare */ t cons float x[ (0, 0.2386191861, 0.6612093865, 0.9324695142}; 32 cons float w[J=(0., 0.4679139346, 0,3607615730, 0.1713244924); float. sxc, ai: inti, F=0.5%(b—ayxe= O5¢bt); 5=05 for = Li epsttabstn): Wissel] 2 taerous simetsice WEl= whet] =2080.0-2%)°8G), ponten } i am I=) ( fre ar do prnctoinpa Legendre 00,69; HonH]= 00, w[n2+1 OK: } Fa 05%ba)x fostre I interrdul[4] for a ( = Pre] x6; vtil= Pi; , } Prin procedeul descris mai sus sunt determinate efectiv numai cele w/2 zerouri si ponderi corespunzitoare semi-intervalului (0,1), restul find completate tn tablourile x gi w prin simetrizare. Cazul numarului de puncte » impar este tratat separat, functia Leaendre fiind apelaté numai pentru calculul derivatei a in finalul rufine:, abscisele si ponderile corespunzatoare intervalului standard [-1,1] sunt scalate pentru intervalul [a,b]. 34 Programmul de mai jos exemplificd utilizarea rutinel xceuseteg pentru a calcula [arctan yay, utilizand formula Gauss-Legendre ou m puncte de integrate, Prograrmul afiseazd veloarea integralei calculatd atét numeric ct si prin tnlocuite in expresia analiticd rexultatd prin calcul matematic include include fidefine Fi 3.141 5926535897032384626439832705 Aoat funeCfloat y) { } retum stent), oat analiticoaty) { } ost QG mussLeg{loat Fun(fload, float, float b, ints) ( Caleuleare integrala functiei Fane pe intervalul [a,b] vtitcand cuadeatwra GauseLegencte own puncte de integrate "/ t retun vatar(y) -1.0/2.0"log O+u%); Aloats, *2, *w; inti, = oat") malloc(ntsizect(float));x--; w= (float) mallac(*aizeof{flot)); w- x anssl egg ahxat); 3=00; for L164) 9 4= whet: Sroo(atl), freaGirtl)s return s, t void mais) ( init "Tntegyale functieiarctany pe intervahd [-Pi/2, 3Pi/7] are valoareeWtcaloul mam exc: %.8Fat calcul metematic: % B20", QG aussLeg(fane Pi, 3*Pi/2,), anlitic(3"Pi/) ~ anditi-Pi2)), 1 4.1.2. Desfagurarea laboratorului Se va utiliza formula Gauss-Legendre cu 5, 10 apoi 25 puncte de integrare pent a calcula valcarea integralelor de la punctele 4)...2). Se va alcamui un tebel compasativ cu diferentele procentuale fnire valoarea exact (calcul matematic) si cea aproximativa (calcul numeric) a integralelorin fiecare dintre cele trei situatii. Procentele se detemina utilizind formula: -xact — aprox| procent x10 exact 2 ftdr=nfd 35 Xu x ni, oleae, a fsa xdx =~ cos a? b) [itax - aa be ¥ 2) [Farctan Se = = ind +x) i 36

You might also like