P. 1
Manual a Clasa a 12-A Port

Manual a Clasa a 12-A Port

|Views: 855|Likes:
Published by vikzwery

More info:

Published by: vikzwery on Dec 13, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/02/2013

pdf

text

original

~apitolul III.

REZOLV AREA NUMERICA A ECUAIIILOR ALGEBRICE SI lRANSCENDENTE

,

3.2. Izolarea radacinilor

Se considera ecuatia de forma

f(x) = 0, (3.2.1)

unde functia f: I -+R, I c R este continua pe intervalul I.

Realizarea izolarii tuturor radacinilor ecuatiei (3.2.1) se incepe, in cazul general, cu divizarea domeniului de definitie I al functiei f(x) intr-un numar minimal de sub intervale astfel, incnt in fiecare din ele sa se contina nu mai mult de 0 radacina real a; in continuare, are loc izolarea propriu-zisa, adica selectarea dintre aceste subintervale pe ace lea care contin cate o singura radacina,

Deseori, la izolarea radacinilor se aplica metoda graficii. Pentru aeeasta, se construieste graficul functiei y = f(x) si, daca S este abscisa punctului de intersectie al grafieului eu axa Ox, atunci f(s) = o.

y

y =f(x)

a

o

ib x

Fig. 3.2.1

De exemplu, in cazul figurii (3.2.1), abseisele punctelor de intersectie (Sl. S2 si S3 ) ale curbei y = f(x) cu axa Ox, reprezinta radacinile ecuatiei f(x) = O.

Daca ecuatia nu poseda radacini foarte "apropiate" intre ele, atunci, folosind metoda in studiu, putem indica efectiv pereehi de valori a, si b, intre care sunt situate care 0 singura radacina Si.

Foarte freevent, pentru izolarea grafica a radacinilor, e mai comod de inloeuit ecuatia (3.2.1) printr-o ecuatie echivalenta ei de forma

g(x) = tp(x) , (3.2.2)

apoi de construit graficele functiilor y = g(x) si y = tp(x) in acelasi sistem de coordonate.

b x

Fig. 3.2.2

Abscisele punctelor de intersectie ale acestor 2 grafice ( Sl si S2, in cazul figurii 3.2.2) vor reprezenta radacinile ecuatiei (3.2.2).

36

CapitolullII. REZOL VAREA NUMERIC,'\' A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

Apelarea la aceasta varianta a metodei grafice este rezonabila in cazurile cand cercetarea functiei y = f(x) este dificila, iar construirea graficelor functiilor y = g(x) si y = rex) nu prezinta dificultati. De exemplu, pentru f(x) = x2 - cosx, se construiesc curbele y ::; x si

y = cosx. Abscisele punctelor de intersectie ale graficelor obtinute vor reprezenta solutiile ecuatiei transcendente x2 - cosx = o.

Se mentioneaza, ca metoda grafica de izolare a radacinilor nu intotdeauna permite separarea sigura a lor, de exemplu, pot fi chiar si cazuri de "pierdere" a unor solutii, De aceea, in continuare, radacinile izolate grafic trebuie validate prin cercetare suplimentara, utilizand unele proprietati ale functiilor, care se studiaza in cursu] de analiza rnatematica. In acest scop poate fi utila

Teorema Bolzano-Cauchy. Dacii functia y = f(x) este continua pe [a,b] si la extremitiitile acestui interval are valori de semne opuse (adica f(a)· f(b) < 0 ), atunci pe \ a, b) existii eel putln 0 riidiicinii a ecuatiei f(x) ::; o.

In ipoteza teoremei formulate, in interiorul intervalului [a, b) existd un numar impar de radacini ale ecuatiei f(x) = 0 ( Fig. 3.2.3 ), mai mult, radacina ~ vafi unica pe (a, b), daca _:le aeest interval f(x) este monotond, in particular, daca exista ~i isi pdstreazii semnul ,ierivatafO\x), adica f(!)(x) > 0 sau f(l)(x) < 0, V x E (a, b) (Fig.3.2.4).

y

y =f(x)

a

x

o

Fig. 3.2.3

y f(a) >0

f(J)(x) < 0 V x E (a, b)

a

x

.Fig.3.2.4

in cazul existentei derivatei [unctiei f(x) pe [a,b], pentru izolarea radacinilor poate fi

coma metoda analiticii, care presupune urmdtoarea succesiune de actiuni: 1) se afla derivata f(1)( x);

2) se rezolvd ecuatia f(J)(x) = 0;

3) se alcatuieste tabelul semnelor valorilor funciiei f(x), utiliriind sirul lui Rolle: ,;1 orile critice (radacini ale derivateii sau valor; foarte apropiate de aces tea;

. .ilorile marginale ale domeniului de definitie alfunctiei ftxv;

~ \ se determina intervalele, La extremitatile carora functia are valori de semne opuse . . 'c' intervale con/in in interiorul lor elite a singura radacina a ecuatiei in studiu.

~~ exemplu, pentru configuratia 3.2.5 a graficului functiei y = f(x), prin metoda ::23. trebuic sa obtinem urmatoarele intervalele "suspecte": [a ,ttl , [td2], [t2,(3], [t3,t4], .. ., _ :t5.t6], [t6,b], iar dupa validare -jntervalele de izolare a radacinilor reale: [a,tIl, [td2],

37

Catlitolul III, REZOI,VAREA NUMERIC.i\. A ECVATm~f.,GERRICE SI TRANSCENDENTE

pIJ(tS) == 0 -~')(")=O

its it6 :b x

--,~-+--,-,-----~.---'-~""'-+-

y =j(x)

Fig, 3.2.5

Evident, aplicarea mctodei descrise este eficienta daca realizarea p.2) nu prezinta dificultati.

Exemplul 1. Folosind metoda grafica, sa se izoleze radacinile reale ale ecuatiei

f(x) == x3 + 3x -, 6:::: 0 . (3.2.3)

Rezolvare. Scriern ecuatia (3.2.3) sub forma x3:::: -3x + 6, apoi construim graficele functiilor y:::: x' ~i y :::: .,_ 3x + 6. Conform figurii 3.2.6, ecuatia (3.2.3) are 0 singura radacina reala 1;E(L2). Verificarn aceasta afirmatie. Pc intervalul [1,2J functia f(x) :::: x' + 3x - 6 este continua ~i Ia cxtremitatile lui primeste valorile f( 1) :::: -2 si f(2):=: 8, care sunt de sernne opuse. Mai mull, j(])(x) = 3x2+ 3> 0, V xE(-·=,+oo). Deci, inrr-adevar unica radacina a ecuatiei (3.2.3) este situata pc intervalul (1,2).

y = - 3x + 6

y

,

-_ v = 3x--l

- __ - y =x3

......................... 2 .

Fig. 3.2.6

Fig. 3.2.7

Exemplul 2. Folosind metoda grafica, sa se izoleze radacinile reale ale ecuatiei

3 2 '

f(x) == x - 3x + 1 :::: O.

(3.2.4)

38

Capitolul m. REZOLVAREA NUIVrERICA A ECUATHLOR ALGEBRICE 81 TRANSCENDENTE

~ .. :F,h are. ~nlocuind ecuatia (3.2.4) prin echivalenra ei x'::: 3x2 -- 1. construim curbele

.:: - y = 3x": .. 1 ( Fig, 3.2.7 ). Conform desenului, toate 3 radacini ale ecuatiei in studiu

.. : -: situate astfel: ~!E t·1,O), ;2E (0,1), ;,E (1,+00). Verificam uceasta afirmatie: flO) >0, j(1) <0, limf(x)=: +=. Evident, intervalul de izolare a radacinii ~3

'" =- ::1tial restrans. Prin probe constatam ca j(3) >0. deci ~3E (1,3).

: ecuatia polinorniala de gradul trci poseda exact 3 radacini, iar in cazul dat toate ::::,'C::. decade necesitatea dcmonstratii unicitatii lor pe intervalele respective.

:. ve ruplul 3 Prin metoda analitica sa sc localizeze radacinile rcalc ale ecuatiei

f(x) = xi + 3x2 - 1 :::: O. '

(3.2.5)

k e zolvare. Functiaj(x, este definite si derivabila pe lntreaga axa numcrica.

• .: ."t.)::: 3x~ + 6x. Rezolvam ecuatia j(:)(X) =: 0: 3x2 +6x ::: 0; x(x+2)::: 0; Xl =: 0;

• = -: ':'.:_:."ituim tabelul sernnelor functiei:

Dcoarece au loc trei alternatii de sernne ale functici f(x) , conch idem cit ecuatia (3.2.5) are :ci radacini reale. Luand de proba x::: --3, aflarn f(-3) =: -3 < O. Prin urmare, radacinile .,uatiei in studiu se contin respectiv in inrervalele: (--3, -2), (-1, 0): (0, J).

Pcntru localizarea unci radacini, pornind de la inrervalul la, b], uneori este utila metoda »robelor, realizata conform urmatorului algoritrn. Se alege pasul initial It = (b - a)in, IlE N·". ::~ilialjzand x::: a, se calculeaza succesiv valorilejtx) ell pasul h pana cand valoarea Fx)

:·.u·~i schimba semnul. Astfel primim extremitatea din drcapta a intervalului restrans:

b' = a + i-h, unde i - numarul de pasi parcursi. In continuare, pasul h se rnicsoreaza, .alcularea valorilor f(x) decurge in directia opusa ell semn negauv al pasului. Procesul .ontinua pana cand I(x) nu-si schimba din nou sernnul. in asa mod, extrernitatea stanga a .ntervalului restrans va fi a * = b * -j'h/m, unde m este coeficicntul de rnicsorare a pasului .nitial Iz. Daca pc intervalul [a*, b"] functia f(x) este monotone. atunci [a*, b*] la sigur, va reprezenta intervalul de izoiare a unci radacini. Depistarea radacinii va putea esua, daca pasul h va depasi distanta dintre careva radacini vecine.

In scopul izolarii unei radacini a ecuatiei I (x) :;:: 0, pornind de la intervalul indicat [a, bl, po ate fi utilizata schema logica din figura 3.2.8. care descrie algoritmul prezentat mai sus.

CapitolullII. REZOL V AREA NUMERICA A ECUATlILOR ALGEBRICE SI TRANSCENDENTE

Serie: 'NDR'

Nota: 'NDR' -'Nu-i depistata radacina !'.

Intrebari si exercitii

Fig. 3.2.8

1. Pentru simplitate, in schema logica reprezentata in figura 3.2.8, nu a fast prevazut cazul eventualei depistari a unei radacini exacte. Care pot fi consecintele ? Dati propuneri in vederea perfectionarii schemei in cauza.

2. Transcrieti schema logica, reprezentata in figura 3.2.8, intr-un program Pascal, destinat localizarii uneia dintre radacinile reale ale ecuatiei I(x) = 0 pe intervalul specificat la, b].

40

Capitolul Ill. REZOL V AREA NUMERIC~ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

3. De elaborat un program Pascal, destinat localizarii tuturor radacinilor reale ale =,-::uatiei !(x)==O pe intervalul specificat [a, b].

4. Subiecte pentru sarcini individuale:

a) Sa se izoleze prin metoda grafica radacinile reale ale urmatoarelor ecuatii neliniare:

1) x3 + 3x + 1 = 0; 5) x3 + 8x - 6 = 0; 9)x3+2x +3,5=0;

2) x3 + 2x + 4 = 0; 6) x3 + X - 3 = 0; 10) x3 +13 x - 15 = 0;

13)x3- 4x + 1 =0; 14)x3-12x +9=0; 17) x3 - lOx + 7 = 0; 18) x3 - 6x - 1 = 0;

21) x3 - x2 + 3 = 0; 25) x3 + 2x2 + 1 = 0; 29) X4 - 2x - 1 = 0;

22) x3 - x2 - 5 = 0; 26) x3 + x2 - 3 = 0; 30) X4 + 4 x2 - 2 = 0;

3) x3 + 4x + 1 = 0; 7) x3 + X - 5 = 0; 11) x3 + 3x - 2 = 0;

15) x3 - 4x - 2 = 0; 19) x3 - 6x + 3 = 0;

23) x3 - 2x2 - 1 = 0; 27) x3 - 3x2 + 1 = 0; 31)x4 +X2 - 3 =0;

4) x3 + 3x - 1 = 0; 8) x3 + 4x + 2 == 0; 12)x3 + lOx - 9 = 0;

16) x3 - 5x - 3 == 0; 20) x3 - 7x - 2 = 0;

24) x3 + x2 + 5 = 0; 28) x3 + 3x2 - 3= 0; 32) X4 - x3 - 8 = 0;

35) 2cosx - x2 +3 = 0; 36) sinx - x + 2 = 0;

39) 2x - 4x = 0; 40) 2x - 2x2 -1 = 0;

33)cosx+x+l =0; 34) x2+2sinx-l=0; 1

38) 19x - -7 = 0;

x-

Comparati rezultatele izolarii prin metoda :- rogramului, elaborat conform exercitiului 3.

37) x + 19x = 0,5;

graficd cu eele obtinute eu ajutorul

b) Sa se izoleze prin metoda analitica radacinile reale ale urmatoarelor ecuatii neliniare:

1) x3-6x2+9x-3=0; 2)x3+4x2-6==O: 3)2x3_9x2 -60x+l =0;

4) 2x4 _x2 -10 == 0; 5)x4 -18x2 + 6 == 0; 6) 3x4 + 4x3 -12x2_ 5 == 0;

7) 3x4 + 4x3 -12x2- 5 == 0; 8)x4 + 4x3 - 8x2 -17 == 0; 9)x4 _x3 - 2x2+ 3x - 3 = 0;

10) 2x4 - 8x3 + 8x2 - 1 == 0; 11) 2x4 + 8x3 + 8x2 - 1 == 0; 12) x4 - 4x3 - 8x2 - 17 == 0; 13) X4_ 2x3 - 2x2 + 6x + 1 = 0; 14) x4 - 2x3 - 8x2 + 24x + 1 == 0;

15)x4 _x3 +2x2_ 3x -1 == 0;

16) 2x + 5x - 3 == 0; 19) 2arctgx -x + 3 == 0; 22) eX + x - 2 == 0;

17) 5x - 6x + 3 == 0;

20) arctg(x - 1) + 2x == 0; 23) In(x+l) -4x == 0;

18 ) 3x + 2x - 2 == 0; 21) 2arctgx - 3x + 2 == 0; 24) cosx + 2x - 5 == 0;

Comparati rezultatele izolarii prin metoda analitica eu cele obtinute eu ajutorul - rogramului, elaborat conform exercitiului 3.

Capitolul III. REZOLVAREA NUMERIC\ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

Precizarea radacinilor

In continuare vom exam ina cele mai uzuale metode numence de precizare a radacinilor reale ale ecuatiilor neliniare: dihotomia. metoda coardelor, metoda Newton, metoda rnixta a coardelor ~i tangentelor.

3.3. Metoda injumatatirii ( dihotomiei) intervalului

Fie functia j'(x) este continua pc [zz, b], radacina ]; a ecuatiei f(x) = 0 este izolata pe acest interval, iar b - a > 2E, unde E este un numar pozitiv suficient de mic. Elaboram algoritmul de calcul al radacinii I; ell precizia data E, utilizand 0 variants a metodei probelor, ~i anumc, metoda injumiitiuirii intervalului, care se realizcaza dupa cum urmeaza.

Divizam intervalul [a, bl In doua jumatat! prin punctul c = ( a + b)/2 si calcularn valoarea fCc). Daca fCc) = 0, atunei e este valoarea exacta a radacinii si procesul de caleul stopeaza. Insa daca f(e) -.:f:: 0, din cele doua jumatati [a, e] si le, b 1 0 alegern pe aceea, la extremitatile careia functia prezinta valori de semne contrare( in fig.3.3.1 acesta e intervalul [c, b] ), il renotam r aI.bI ]. Daca bI - aJ> 2E, repetam aceleasi rationamente pentru intervalul nou [at.bI [.Capatam [a2,b2J de lungimea (b -a)/22.

Continuand procesui injumatatirii intervalului, vom obtine, sau ca la un careva pas mijlocul intervalului va fi radacina ecuatici ( caz ce sc inralneste foarte rar in practica ), sau un sir de intervale incluse unul in altul { fall. bnl: [all, bll] c [an-hbn-ll. n = 1,2,3, ... ; ao = a, b., = b}, pentru care

o

(3.3.1)

(3.3.2)

y

x

f(b»O

b

a

Fig. 3.3.1

Extremitatile stangi ao, ah ... , an, ... ale intervalelor construite formeaza un sir mono ton crescator marginit superior(de exemplu, de b), iar extremitatile drepte b-; b-, ..• , b.; ... - un sir monoton descrescator margin it inferior (de exemplu, de a). Deci sirurile {an},{brz} sunt convergente si, in baza egalitatii (3.3.2), conchidem ca ele au limita cornuna:

lim an = lim bll = I •.

Trecand la limita in (3.3.1), in virtutea c2ntin~itatf(fill~tieif(x), obtinem [f(A)]2 ::; 0. Deci f(A) = 0, adica A este radacina ecuatiei f(x) = 0; in baza unicitatii radacinii pe [a, b], rezulta

ca 1.=1;.

42

CapitolullII. REZOLVAREA NUMERIC'\' A EClJATIILOR ALGEBRICE SI TRANSCENDENTE

( Begin)

11 :=[Ln( (b-a )/eps)/Ln2]; L Fa:=:f(a);

Da

Nu

e:=(a+b)!2; Pc i« !(c);

Nu

a :=c; Fa:=Fc;

b:=c;

Nu

c :=(a + b)/2

zit radacina!'

Fig. 3.3.2

43

Capitolul III. REZOLV AREA NUMERIC~ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

Intrucat ~E [an, bnL In cali tate de aproximatie pentru ~ poate fi acceptat orice numar X E [an, bn]. Dar este rezonabil sa luam x = (an + bn)/2, deoarece daca b., - an S; 2E, atunci I ~ -- x I :::; (bn - an)/2::; E, adica X va fi aproximatie cu exactitatea solicitata.

Estimarea aposteriori a erorii

Din cele expuse urrneaza, ea daca dorim sli obtinem solutia aproximativa a eel/ariel j(x) = 0 cu eroarea e, estimatii aposteriori, trebuie sa continuam procesul injumatiuirii pan a la obtinerea unui interval (an. bll] de lungimea (bn - an) :::; 2E. in rezultat, vom capata:

~ = (an + bn)12 ± E.

Metoda injumatatirii, cu estimare apostcriori a erorii, poate fi realizata conform schemei logiee din figura 3.3.2.

Estimarea apriori a erorii

Pentru estimarea apriori a erorii, pornim de la egalitatea (3.3.2). Rezulta, ca pentru calculul rddacinii cu preciria e, proeesul injumauuirii intervalului trebuie continuat pdnd fa prima valoare a lui n, care satisface inegalitatea

(b-a)I2":::;2E, (3.3.3)

adica

11 = [In((b - a)/E)/ln2].

(3.3.4)

In ehenarul ce urrneaza este prezentata in limbajul Turbo Pascal unitatea de program REAT in care este inclusa functia Bisect, destinata calculului cu aproximatia E a radacinii ~, izolata pe [a, b], aplicand estimarea aposteriori a erorii:

Interface {**********************************************************************}

. Unit Reat;

{Rezolvarea ecuatiilor algebriee si transcendente }

Type Func = Function(x:Real):real; {Declarare tip funetic}

Function Bisectra.b.eps.real; f.Func; afis.boolean; Var nc,n:byte):real;

{n-numarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale; f -numele functici din ecuatia f(x) = 0; afis -confirmare pentru afisarea aproximatiilor succesive anterioare celei finale}

Implementation {**********************************************************************} Function Bisect;

Var c, Fa, Fe.real; { Declararea variabilelor locale, auxiliare ]

Begin

n:=Trunc(Ln( (b-aj/eps )/Ln(2»; Fa:=f( a); { Calculul aproximatiilor succesive } Repeat

c:=(a+b )12; Fc:=f( c);

44

CapitolullJI. REZOL V AREA NUMERICA A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

If afis then WriteLn('x=',e:O:ne,' f(x)=',Fe:O:ne); If Fe<>O then

If Fa*Fe<O then b:=e

else Begin a.ec; Fa:=Fe; End; Until (abs(b-a)<=2*Eps) or (Fe=O);

If Fc<>O then e:=(a+b)/2;

Biseet:=c;

End; {Bisect}

!**********************************************************************}

End.

Exemplu. Fie ecuatia f (x) == x3 + 3x2 - 1 = O. Functia f (x) este continua pe intreaga - \3 numerics, iar radacinile ecuatiei date sunt izolate dupa cum urrneaza: ~1 E [-3, -2]; ~~ E [-1, 0]; ~3E [0, 1]. Aplicand programul atasat mai jos P_3_3_l Ia determinarea - ~jacinilor ecuatiei in stu diu ell preeizia eps = 0.0001, dupa 13 iteratii pentru fiecare din _:estea, se obtin rezultatele:

~1 = -2.87933 ± 0.0001; ~2 = -0.65265 ± 0.0001; ~3 = 0.53204 ± 0.0001

{Far-directiva de eompilare}

Program P _3 _3 _1 ; Lses Crt, REAT;

Function F(x:real):real; Far; Begin

F:=x *x*x+3*x*x-l; end;

Procedure Rezolvareta.b.cps.Real.nc.k.byte): {k-numarul radacinii ] Var x.real; n:byte;

Begin

If f( a)*f(b )<0 Then Begin

x.eB isectra.b.eps.f, false.nc,n); \VriteLn(,x',k,'=',x:O:nc,' f(x',k,')=',f(x):O:nc); Writelru'n'ik,'>',»);

End

{Metoda injumatatirii}

Else Writel.nr'Nu este izolata radacina ',k);

End; Begin ClrSer;

Rezolvare( -3, -2,0.0001,5, 1);

Rczolvarct -L, 0, 0.0001,5,2): Rezolvare (0,1,0.0001,5,3);

Readln; . End.

Vom spune ca radacina ~ a unei ecuatii jtx) = 0 este simplii daeaf(~) = 0 si f (1)( ~):;t: O. ~~ exemplu, functia y =jtx), graficul careia are aspectul din figura 3.3.3, In intervalul [a, b] _:~ 0 radacina simpla. In figurile 3.3.4 si 3.3.5 sunt reprezentate graficele a doua functii ce __ radacini multiple.

Capitolul m. REZOLVAREA NUMERIC,\ A ECUATIILOR ALGEBRICE Sf TRANSCENDENTE

y

f(})( .r ) > 0:

11"( ') ,., x) > t;

V XE la. bj

o a

Fig. 3.3.3

Fig. 3.3.4

Fig. 3.3.5

Dihotomia este 0 metoda destul de clara sub aspect algoritrnic ~i sigura In aplicare: in cazul radacinilor simple ea genereaza siruri convergente pentru orice functii continui. posedand stabilitatc la erori de rorunjire. Desi viteza de convergentd a rnetodei este redusa ( la executia unui pas precizia dour se dubleaza ), in multe cazuri aceasta metoda are 0 cornplexitate temporal a acceptabila in context practic, Mentionarn, de asemenca, ca metoda injumatatirii nu poate fi aplicata In cazul radacinilor de multiplicitate para (Yezi cazul radacinilor ~2 ~i C,3 din figura 3.3.4 ).

Intrebari si exercitii

1. Care sunt conditiile suficiente pentru aplicarea metodei injumatatirii intervalului la rezolvarea ecuatiilor algebrice ~i rranscendente ?

2. Po ate oare fi aplicata metoda dihotomiei pentru precizarea radacinilor multiple?

Argumentati raspunsul. Indicatie: examinati figurile 3.3.4 ~i 3.3.5.

3. Care pot fi consecintelc la aplicarea metodei dihotomiei, daca apriori nu a Iost specificat corcct intervalul [a, b] de izolare a radacinii ? Indicatie: analizati cazurile:

1) pe [a, b] nu se contine nici 0 radacina;

2) pc la, b J sc contin mai mult de 0 radacina:

a) un numar par de radacini;

b) un numar impar de radacini.

4. Care pot fi consccintele daca la aplicarea metodei dihotomiei nu se va examina cazul j(c) = O?

5. Elaborati un program pentru aplicarea metodei dihotomiei in cazul estimarii apriori a erorii. Indicatie: utilizati formula (3.3.4).

6. Deterrninati numarul de operatii aritmetice utilizate la efectuarea calculelor dupa programul elaborat conform p.4.

7. Elaborati un program Pascal care va realiza metoda dihotomiei, fiind dat numarul de divizari n; programul va determina si eroarea s a rezultatului obtinut. Indicatie: utilizati relatia (3.3.3).

8. Sa se realizeze printr-un program unie atat localizarea radacinilor pe intervalul speeifieat [a, b], cat si determinarea lor cu exaetitatea prescrisa E.

9. Subiecte pentru sarcini individuale:

Sa se rezolve prin metoda dihotomiei ecuatiile neliniare, propuse la sfarsitul

paragrafului 3.2, eli precizia prestabilita E.

46

Capitolul III. REZOLVAREA NUMERIC.~ A ECUATHLOR ALGEBRICE Sl TRANSCENDENTE,

3.4. Metoda secantelortcoardelor)

-~.ccr3. ecuatia j(x) == o.

__ :.~epuL vom cere indeplinirea acclorasi conditii ca si la metoda dihotorniei: .,. c. h] - ... R este continua pe intervalul [a, bj:

.. _._:_ ina ]: a eciuuiei j(x):::: 0 cste izolata pe [rz, bL deci lea) 'f(b) < O .

. i~", _, dctcnninat radacina ~ ell exactitatea E.

, ". dihotomie, in calirate de aproximatie a radacinii se va cauia un punct interior al __ . _" [a, b], dar 111 acest caz el nu neaparat va fi mijlocul scgmentului.

" ~ecr geometric metoda ill studiu este echivalenta cu inlocuirca curbei y :::: f (x) pc ..iul [a, b] prin segmentul de dreapta ce unestc punctele (a,fea)) ';ii (b,f(b)) (Fig.3.4.1) .

.. _ -\lmfmd astfel solutia S prin punctul de intersectie C1 al sccantei ell axa Ox. La alegerea . .niervalului urmator [ahbd se foloseste conceptul metodei dihotomiei: cxtrernitatea In care - :--:nul functiei coincide ell semnul valoriij'(c.), trece III Cl- In cazul fjg,3,4-.1 b a trecut in Cl. ~ __ j procedeul va putea fi continuat prin constructia secantci corespunzatoare intervalului _: .b, j. Procesul se repcta, pfina nu obtinem 0 apropiere suficienta de solutie.

y

o a

! (b,J(b))

b x

Fig. 3.4.1

Sa deducern acum expresia analitica a aproximatiei solutiei ~. In aces! scop pomim de la :~.;a~ia dreptei care trece prin punctele (a,/(a) si (b,f(b»:

y-f(a) x-a

---=. _ _o_ __ =

f(b)-f(a) b-a

Intersectia secantei cu axa Ox se obtine substituind in ecuatia de mai sus y = 0 si _ - .and prin CI valoarea corespunzatoare a lui x:

- f(a) _ c1 -~

f(b)-f(a) b-a'

'::Jnde

C = a __ _;:_f_(a) - (b -a),

1 f(b)-f(a)'

(3.4.1)

.:_. in forma simetrica,

47

anf(bn) -bnf(an)

Cn+l = .,

f(bn) - f(an)

an+1 :::: an ~I bn+1:::: CII+I, dad! f(all)' f(CII+l)<O, an+1 = CII+i si bn+1 :::: b.; daca f(all)' f(Cn+l»O ( n =0,1,2, ... ).

CapitolullII. REZOLVAREA NUMERICA A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

af(b)-b/(a)

C1 = .'

feb) - /(a)

Asadar, algoritmul de construire a sirurilor {a,,}, {bn}, {cn+d este similar celui folosit la metoda dihotomiei: initializand ao:::: a, b« = b, se aplica rcpetat urmatoarea secventa de formule recurente:

(3.4.2)

Este demonstrat ca sirul {C,,+I}, construit conform algoritmului prezentat, converge catre radacina ~. Daca pentru estimarea erorii se accepta una din relatiile 1/(CII+I) I ~ E sau Icn+l - C" I ~ E, (care, la general, nu sunt echivalente ell relatia definitorie I ~ - C"+l I ~ E ), atunei aceasta interpretare a metodei secantelor fumizeaza rezultate satisfacatoare.

Estimarea erorii

Acurn, in plus la conditiile impuse fa inceputul paragrafului curent, vom cere ca functia f(x) safie derivabild pe [a, b] si sa existe un numdr m >0 astfel, incdt I/(])( x) 12m. Atunci conform formulei generale (3.1.3), pentru estimarea aposteriori a erorii aproximatiei Cn+l poate fi folositii formula:

unde m = infl/w( x)1. xE [a, b].

Observatie, In calitate de m poate fi acceptata valoarea minima a expresiei If (1)( x)1 pe intervalul [a. b], iar pentru a obiine solutia ~ cu precizia prescrisa E, procesul de ealeul at termenilor sirului {Cn+I} se intrerupe cdnd se va satisface relatia

(3.4.3)

Prezentam In limbajul Turbo Pascal functia Secante, destinata caiculuJui cu precizia E a

radacinii , izolata e la, b], a licand estimarea a osteriori a erorii, conform relatiei (3.4.3) Function Secante(a, b, m, eps:Real; f: Func; afis.boolean; Var nc,n:Word):Real; {n-numarul de iteratii; nc-numarul de zecimale Ia afisarea valorilor reale; f -riumele functiei din ecuatia f(x) = 0; afis -confirm are pentru afisarea aproximatiilor

succesive anterioare celei finale}

Var c, c1, Fa, Fb, Fc, Er: Real; { Declararea variabilelor locale, auxiliare}

Begin

Er:= eps * m; Fa:= f(a); Fb:= feb); n:=1;

cl:= (a*Fb - b*Fa»/(Fb - Fa); { Initializarea aproximatiei solutiei }

{ Calculul aproximatiilor succesive }

Repeat

If afis Then WriteLn('x=', cl :O:nc,' f(x)=', f(cl):O:nc); c t= c l ; Fc:=f(c);

If Fe<> 0

Then Be in

48

CapitolullII. REZOLV AREA NUMERIC,~ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

If Fa* Fe <0 Then Begin b: = C; Fb:= Fe; End Else Begin a:= c; Fa:= Fe; End;

cl:= (a*Fb - b*Fa)/(Fb - Fa); Inc(n);

End;

L'ntil abs(f( CI» <= Er; 5 ecante.ecl ;

End. {Secante}

t-~::> atie. in continuare vom considera ca functia Secante este inclusa In unitatea REAT.

Exemplu_l. Fie ecuatia f(x) == x5 + 7x + 5 = 0, care are radacina ~ izolata pe -';;;-valul [-1,0]. Vom evalua valoarea In, conform relatiei (3.4.3). Dcrivata functiei este .: : x) = 5x4 + 7, iar valoarea minima a modulului derivatei pe intervaluI [-1,0] este 7, -==ci putem accepta In = 7.

Exemplu_2. Se considera ecuatia f(x) == 20x + sine 6rrx) + 100 = o.

:>;:>terminam f (1\ x) = 20 + 6rrcos( 6rrx). Tinand cont de domeniul de variatie al functiei ." = COSX, constatam ca f ~J)( x) >0 \:!XE (-oo ,+(0), deci functia f(x) este mono ton . .escatoare pe intreaga axa numerica. In baza monotoniei functie f(x) ~i justetei relatiei . -5.2)1(-4.4)<0, rezulta: unica radacina a ecuatiei 'in studiu este situata 'in intervalul -5.2, -4.4]. Cercetand variatia functiei f(J)( x) pe intervalul restrans, obtinem:

f ')(x)1 >1, \:!XE [-5.2, -4.4], deci putem accept a In = 1.

Pentru rezolvarea ecuatiilor examinate eu precizia prestabilita E, s-a aplieat programuI P _3_4_1.

Readln;

End; {Rezolvare} Begin

Clrscr;

Program P _3_4_1; { Metoda Secantelor }

Uses Crt, REAT;

Function Yl(x:real):real; Far; {Far-directiva de compilare}

Begin Yl :=x *x*x*x*x+ 7*x+5; end; {Definirea primei funetii }

Function Y2(x:real):real; Far; {Definirea funetiei a doua }

Begin Y2:=20*x+sin(6*Pi*x)+IOO; end;

Procedure Rezolvare(a, b, rn, eps:ReaJ; F:Fune;afis:boolean;ne,k:byte); Var x:Real; n:byte;

Begin

ClrScr; Writel.nr'Rezolvarea ecuatiei ,',k,':'); If F(a)*F(b)<O Then

Begin

x:=Seeante(a, b, m, eps, f, true, nc, n); Writel.nt'Aproximatia finala: ');

WriteLn('x=' ,x:O:ne,' f(x)=' J(x):O:ne); Writeln('n=' .n); End

Else Writel.nr'Nu este izolata radacina');

49

Capitolul IIi. REZOLVAREA NL1MERiC.~ A ECUATJILOR ALGEBRICE SI TRANSCENOENTE

r==-=========~===~~-=--

II RezolvareCLO.7, O.OOOl,yl,true, 1J, 1);

ii Rezolvaref-S.Z. -4,4. 1,0.0001. y2. true, 11,2);

Ii Readln:

L End. ==~=

Analizand secventele aproximatiilor radacinilor ecuatiilor in studiu, prezentate in acest iabcl, conch idem ell prirnul sir converge monoton catre radacina din partea dreapta a ei, pe cand eel de-al doilea sir, este convergent, dar nu si monoton. Cauzele acestei divergente vor putea fi motivate, studiind In coniinuare 0 alta varianta a metodei secantelor - metoda coardelor.

Metoda coardelor, Acum. in plus La conditiile impuse La inceputul paragrafului curent, vom cere ca [unctia f(x) si'i fie de doua ori derivabild pe !a, b], iar derivatele f (1)( x) si f(2\ x) sa nu se anuleze sijiecare sa-si pdstreze semnul pe acest interval. In acest ca: putem aplica () variantd mai rapidd a metodei secantelor.

Restrictiile formulate suplimentar specifica patru tipuri posibile de configuratie a graficului Iunctiei f(x) pe intervalul la, b] ( Fig. 3.4.2 ), fiecarc din care corespunde unuia din urmatoarele cazuri:

I. f(1)( x) > 0; f(2)( x) > 0; [unctia e strict cresciitoare, graficul ei este convex in jos; II. j 1l( x) > 0; f(2\ x) < 0; functia e strict cresciitoare, graficul ei este convex ill sus; III. fW( x) < 0; 1(2)( x) > OJ [unctia e strict descresciitoare, graficul ei este convex in

jos;

IV. f(o( x) < 0; f(2)( x) < 0; functia e strict descresciitoare, graficul ei este convex in

sus.

50

f:apitolullII. REZOLVAREA NUMERJCA A ECUATJILOR ALPEBRICE SI TRA~SCEl\ilml\TE

I y

o

f(I)( x) > 0; I'": x) > 0

III y

f(I)( x) < 0; rUle x) > 0

x

f(I)( x) > 0; f'\x)<o

o

x

IV y

r1)( x) < 0; fi'2\x) <0

o a

Co

Fig. 3.4.2

Cercetand constructiile din figura 3.4.2, conchidem ca unul din punctele a si b. pe tot rcursul de caleul al aproximaiiilor Ck (k = 0,1,2 .... ), este fixinemiscaty, acesta fiind acea +einitate a segtnentului [rz, b], En care semnul functiei coincide cu semnul derivate; de .iinul doi, adicd fixii este extremitatea pentru care are loc relatia: f (X)1(2)( x) > O.

Astfel putem face urmatoarea concretizare:

in cazurile I si IV fixa este extremitatea b, iar formula f(cn)

Cn+1 = cn - -(b -cn) (Co = a; n = 0,1,2, ... ), (3.4.4)

f(b)-f(cn)

- ~ .nuta prin inductie, pomind de la formula (3.4.1), genereaza un sir monoton crescator ':'~ginit superior: a = CQ < c) < C2 < ... < Cn < Cn+1 < ... < ~ < b;

in cazurile II si III extremitatea fixa este a, iar formula

cn+1 = cn - f(c,J (en -a) (Co = b; n = 0,1,2, ... ), (3.4.5)

j(cn)-f(a)

-::nuta din (3.4.4) prin interschimbul lui a eu b, genereaza un sir monoton descrescator

- ~ginit inferior: b = Co> C\ > C2 > ••• > c; > Cn+l > ... > ~ > a.

Deoarece orice sir crescatortdescrescator) marginit superior(inferior) este convergent, _-~'::3Za ca sirurile generate de formulele (3.4.4) si (3.4.5) sunt convergente, iar valoarea de

51

Capitolul III. REZOL V AREA NUMERICA A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

Iimitat 1 ) a fiecarui din ele este radacina a ecuatiei respective. Intr-adevar, tinand cont de continuitatea functiei j'(r), trecem la limita in formula recurenta (3.4.4):

f(lim cn)

I· I' n-"~ (b I' )

Imcn+! = Imcn - • - Imcn '

11->= n-->= f(b)- f(hmcll) n-.=

n.......,oo

sau dupa inlocuire,

1..=A.- ICA.) (b-'J...),

I(b) - I(A.)

de un de rezulta f( A) = 0, iar, in virtutea unicitatii solutiei pe [a, b], conchidem ca A. = ~, ceea ce trcbuia de demonstrat. In cazul formulei (3.4.5), demonstratia este analogica.

Notand prinp capatul jbzzr, reunim formulele (3.4.4) si (3.4.5) in una singura, pe care, dupa analogie eli (3.4.2),0 reprezentam in forma simetrica:

cnf(p)- p : f(cn)

cn+l = , (3.4.6)

f(p)-f(cll)

(n = 0,1,2, .. ; Co= b si p = a, daca J(a) 1(2)( a) > 0; Co= a si p = b, daca feb) 'f(2)( b»O) Formula (3.4.6) si reprezinta "miezul" algoritmului metodei coardelor.

Estimarea erorii. in ipotezele impuse de metoda coarde/or, se demonstreaza cii estimarea aposteriori a erorii este conformd relatiei

I ~ - cn+ll::; ( M2 - ml)/ m-: len+l - Cn 1 '

unde

m, = inflf(I)( x)1 ~i M2 = suplf(l)( x) I.

xE [a, b] xE [a, b]

Deci pentru a obtine solutia ~ cu precizia E, procesul de calcul al termenilor sirului {ell+]}, dupa formula (3.4.6), se va intrerupe cdnd va [i satisfdcuta relatia (M2 - ml)/ m» lell+l - cllls E, sau

I CIl+] - cllls E' m, / ( NI2 - ml). (3.4.7)

Mai jos se prezinta functia Coarde( considerata components a unitatii REAT). destinata ealculului ell preeizia [; a radacinii ecuatiei f(x) = 0, izolate pe [a, b], aplicand formula recurenta (3.4.6) eu estimare aposteriori a erorii:

Function Coarde (a.b.rn 1,m2,cps:real; f,f2:Func; afis.boolean.Var nc,n:bytc):rcaI; 1 {n-numarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale:

f-numele functiei din ecuatia f(x)=O; f2-numele derivatei a doua a functiei f(x); afis-confirmare pentru afisarea aproximatiilor succesive anterioare celci finale}

Var c.c l.p.Fa.Fp.Fc.Er.real; {Declararea variabilelor locale auxiliare} Begin

Er:=eps*m1/(M2-ml); Fa.efra); n:=O;

[Determinarea extremitatii fixe si initializarea celei mobile} If Fa*F2(a»0 Then Begin p:=a; Fp.ef'a; e1 :=b; End

Else Begin :=b; F :=F(b); e1 :=a; End;

52

Capitolul HI. REZOL V AREA NUMERIC;\' A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

{Calculul iterativ al aproximatiilor succesive} Repeat

If afis Then

Writel.nr'xe',«! :O:nc,' f(x)=',f(c 1):O:nc); c:=c1; Fc:=F(c);

c1 :=(c*Fp-p*Fc)/(Fp-Fc); inc(n); Until abs( c l-c )<=Er;

Coarde.ec l ;

End; {Coarde}

Exemplu. Fie ecuatia I(x)=, x3 - 4x + 1 = 0, care are radacinile.Le [-3,-21. ~2 E [0.1,11, ~,E [l,2]. Vom verifica posibilitatea aplicarii metodei coardelor pentru precizarea radacinilor ecuatiei date.

Derivatele functiei sunt: I (1\ x) = 3x2 - 4; / (2)( x) = 6x. Examinant semnele acestor derivate pe intervalele de izolare ale fiecarei radacini si determinam marimile m, si M2:

1) /(1)( x) = 3x2 - 4> 0, 1(2\ x) = 6x < 0, V x E [-3,-2]:

cazul II:co==b = -2,p = a == -3, m, = minl/W( x)1 == 1f(I)( -2)1 = 8,

M2= maxI/U)(x)1 = 1f(J)(-3)1 = 21 pentru xE [-3,-2];

2)/(l)(x) =3x2-4<0,/(2)(X) =6x>0, V xE [0.1,11:

cazuIIII:co=b=L p=a=0.1, m,=I/U)(l)l =1, 1/(1)(0.1)1<4,M2=4;

3) Constatam ca derivata / (1)( x) = 3x2 - 4 nu are semn constant In intervalul [1,2]. Deci .:ste necesar de restrans intervalul de izolare a radacinii ~3' Prin injumatatirc, obtinem noul subinterval de izolare, si anume [l.5, 2], pentru care avem:

r 1)( x) == 3x2_ 4> 0, /(:)( x) = 6x > 0, V x E [1.5,21:

cazull: cs=« = 1.5,p == b == 2, m, == minl/(Il( x)1 == 1f(J\ 1.5)1 == 2.75. M2= max 1/(1)( x)1 = =1/'\ 2)1 == 8, Vx EI1.5,2j.

Pentru rezolvarea ecuatiei date s-a aplicat programul P __ 3_ 4_2.

Program P _3_A_2; {Metoda_Coardelor}

Uses Crt, Rcat;

Function F(x:real):real; Far; [Far-directiva de compilare} Begin F:==x*x*x-4*x+l; End; {Definireafunctiei f(x)}

Function F2(x:real):real; Far; [Definirea derivatei a doua a functiei f(x)}

Begin F2:==6*x; end;

Procedure Rezolvarera.b.m l ,m2,eps:Real; F,F2:Func;afis:boolean:nc,k:byte):

Var x:Real: n.byte; Begin

ClrScr;

Writel.nr'Precizarea radacinii_',k, ': '); If F(a)*F(b)<O Then

Begin

xc=Coarde (a.b.m l ,m2,eps,f,f2,true,nc,n); WriteLn(,Aproximatia finala: '); WriteLn('x=',x:O:nc, ' f(x)=',f(x):O:nc);

53

Capitolul m. REZOLVA REA NUMERICA A En)A lHLOR ALGEBRICE SI TRANSCENDENTE

Readln;

End~ [Rezolvare} Begin

Rezolvare(·3,2. 8, 21,0.0001. L 1"2, true, 5, 1); Rezolvarett). L l , 1, 4, (lOOO L f. . true. 5,

Rezultatele obtinute I a executia programului P .. 3_A __ 2, sunt prezentate in urmatorul

tabel :

If=~"=~~~~~='="==-- ... ~===.==~~~-=~=~~~~=~-.-=~~=-===~=~~="==~

il,[= .-=.=~=~~, - =. - j(-;)::: 7:=;d~;!~~!j (Tt(~~) =~~6;~"='=~~-~~==-~~~~- 11

,I ';

l~=-~===--~--~~ - ,I = -- ~=-~'===~-='-'=====~-~~--" '="===~=~II

I' I ii n ~ III !

I~-===--- -- ---==~F'~=='=-----~==~=-'"1~=~'~~~~=-.=====;i

Ii a z: .- 3; b:= - 2; In 1=8; ~ a z: 0, 1; b "" 1; '": ::: 1; II a:;;: 1. ~; b= 2; m i, =2,75; II

Ij 1\,12 1; eps ::: O.ODU 1, ~ M2 =4; eps := d.UUO 1; II 1\1: =8; cps = O.O()O! ; Ii

I' afis - t-I'lIC'" n"-'''' k-- 1 It afis - true 1IC-I::· 1_') 1,1, afis - true: nc-'')· k-'i Ii

I .l>~ - \. .. "'_.-oJ, --.i_ 11 c ;~ -. '~. -_J" l\,,~... II . "0' -...1. " ~-. 'j -_.. Ii

"" _ ,_~._.=,=-·~~,~~=dh.==~~~=,=-< .. 11

Ic~ire Ii

r=:=~~"'====~==~~"'= .~=~- -==~~=~ --11'--, -- "- .. - ,,-"=~ - ~~

~h -2.0~~)OO - .i 0 ;-==ro6ooo===irg-t----=1.~5goOC)-= --'-\1 rll------2.06667 ---·1~i-'t-----·O·.36;:T96 ---·-'-Tl·-r---''-1~8095-i-- .. ----11

~2 t=---::2~09_~09 ===td_ (l}5552-==-_:_-p--t=-=-l_c~93 ~

IW. -=?_lg_68!. __ . __ -{~~_+__------Q}-?414.--------1~_L_ ._. _ 1. 860 l~ _

L :LL----.----=-?::.1J-!§_, 3, -----J~, H O.25~ 1 O "_j,l~--J---.--1.8607}------

_. ~~1_135 ~-------_j~-~ 0.2541 0 ~8-+ 1.8608Q_ _

G6 I :;: j.~,,~- + fr·y------1.8608.Q__-

1 -2.11482 ---jr1- ------

~t . -2.11487 T i _.. --I

t=== Solutiile

IL ~I =-2.11487±0.OOOl J C" = 0.25410± 0.0001 \I ~,= 1.86080± 0.0001

Analizand secventele aproxirnatiilor radacinilor ecuatiei In studiu, prezentate in tabelul atasat, ne convingem ca toate trei siruri converg monoton catre radacinile respective conform cazurilor specificate in analiza anterioara,

~ :,.2. III. REZOL VAREA NU,\fFJUC;\ AECUATHLOR AI-GERRICI': 51 TRANSCENDENTE

eve rcirii

;,.:ntrt' aplicarea metodei secantelor. este suficienta doar continuitatea .r ;'C iniervalul de izolarc a radacinii ecuatiei j(x) =0 ?

_.: 0:.: cxemplului __ 2 prin programul P_3_ 4_1 S-3. obrinut un sir alternativrci nu 2~ .iproximatii ale radacinii. Explicati fenomenul.

- JJ consecintcle, daca la aplicarea mctodei coardelor nu va fi coree: specificat

., :~,1 fix? (Indicatie: Vezi sectiunea J a figurii 3.4.2);

) ~l <c fadi 0 analiza cornparativa a celor 2 variante ale metodei secantelor. [inand cont

de urmatoarele:

a) conditiile suficiente de aplicare;

b) modalitatile de estirnarc a erorilor:

c) modurile apropiere de radacina;

ell avantajele ~i dezavantajelc fiecarei din variante.

5. Elaborati un program care va metoda coardelor fiind dat nurnarul de divizari programul va deterrnina si eroarea G a rezultatului obtinut. Indicatie: utilizati relatia .~-+7).

6. Rcalizati un program carcva efectua alternativ un pas al mctodei dihotomiei ~j un pas _II, metoda coardelor;

7 S:5. se realizcze printr-un program unic atf~t metoda ~j metoda coardclor,

;;lic8te dependent una rap. de alta. Ambele meiode vor folosi estimarea apostcriori a crorii, Prograrnul va Iolosi acelcasi date de intrare pentru 811!bc1e metode. Faceti 0 analiza .omparativa a rezultatelor obtinute prin metodele studiate:

8. Subiecte pentru sarcini individuale:

Sa se rezolve prin metoda coardelor ccuatiile neliniare, propuse la sfarsitul paragrafului . 2, ell precizia prescrisa E.

3.5. Metoda lui Newton

Fie ecuatia

f(x) = 0, I: [a.bl-~R la,b] cR

(3.5.1)

Vom cere indeplinirea acelorasi conditii ca ~i la metoda coardelor: l)func{ia f(x) este de doud ori dcrivabila pe intervalul !a, b]; 2)f(a) ·f(b) < 0;

3) derivatele f (J)( x) ,~i f (2)( x) nu se anulearii si fiecare isi pdstreara semn constant [a,bl·

Aceste conditii garanteaza existenta si unicitatea radacinii ~ a ecuatiei (3.5.1) pc [a, b], .: . ai mult, restrictia 3) specifica unul din cele patru tipuri posibile de configuratie ale ;~aficulni functieijtx) (vezi fig,3.5.1), cunoscute deja de la metoda coardelor.

Un procedeu efectiv de precizare a radacinii ~ este metoda lui Newton. Constructia care ,:.1 la baza acestei metode 0 apropie de metoda coardelor, inlocuind coarda eu tangenta ~3sata la graficul functiei y =.f(x), asa cum se vede In sectiunile Iigurii 3.5.1.

o

Capitol"l III. REZOL V AREA NUMERIC':\ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

I y

/(1)( x) > 0: /(2)( X) > 0

y =/(x)

o

x

III y

IV y

(tof(to»

/(1\ X) < 0; /(2)( X) > 0

o

b

o a

X

Fig. 3.5.1

II y

/(1)( x) > 0; /(2)( x) < 0

x

(1o,f(4»

/0)( x) < 0; /(2)( x) < 0

4 x

b

a

Pomind de la 0 aproximatie initiala ~E [a,b]. eonstruim t, ea punet de intersectie al tangentei, trasata la grafie prin punetul (t., /(10», eu axa Ox. Pentru a determina analitic acest punct, seriem ecuatia respeetivei drepte tangenta:

y - /(to) =/(1)( to) (x - to).

Substituind in aceasta ecuatie y = 0

~i notand prin t, valoarea respectiva a lui x, obtinem: -- /(to) = /(I)(~)( tl- to),

t =t _ /(to)

I 0 / (l)(tO) .

de unde rezulta

In general, repetand constructia de mai sus prin intersectia dreptei tangents, trasata la grafie prin punetul (tn,f(tn», cu axa Ox, se obtine:

/(tn)

tn+l = tn - (1) ( n = 0,1,2,3, ... ) (3.5.2)

/ (tn)

Aceasta si este constructia care poarta numele de metoda lui Newton sau metoda tangentelor.

Urmeaza de rezolvat intrebarea initializarii sirului {t,}. Cercetand constructiile din figura 3.5.1, observam ca to a fost initializat prin una din extremitatile segmentului [a, b]. De regula, asa si se accepta: to = a sau ~ = b, in dependents de faptul, in care din aceste puncte are lac 56

Capitolul III. REZOLV AREA NUMERIC~ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

inegalitatea f(to) f (2)(to) >0. Daca insa, vom pomi de la cealalta extremitate, tangenta construita poate genera parasirea intervalului (cum ar fi in sectiunea I a figurii 3.5.1), caz In care consecintele sunt imprevizibile.

Teorema 3.5.1. Fie functia f(x) cu proprietiitile 1) -3), formulate la inceputul temei curente. Atunci, pentru convergenta sirului {tn+Il, generat de formula recurentii (3.5.2), ciitre riidiicina ~ este suficient de pornit de la acea extremitate (to = a sau to = b ) a intervalului rap], pentru care este satisfiicutii rela(iaj(to)f(2l(to»O.

*Demonstra{ie. Examinam cazul I(celelalte eazuri se examineaza analogie):f(J)( x) > 0, f(2}( x) > ° Y X E [a, b]. Fie tn >~. Scazand din (3.5.2) egalitatea

f(~)

~=~- f(l)(tn)'

apoi aplicand formula Lagrange, obtinem egalitatile

t .:» =t .:» _f(tn)-f(~) (t _~)(1 __ f(l)(11» ):

n+1 ~ n ~ f(1)() n ~ f ( ) , ~ < 11 < tn. (3.5.3)

tn (u tn

Deoarece, dupa ipoteza f (1)( x) > 0, f (2)( x) > ° Y X E [a, b), din (3.5.3) rezulta o <I'": 11 )/ f(l)( tn)<1. De aici urmeaza ca 0< tn+1 - ~ < t, - ~, adica

~ < tn+1 < tn. (3.5.4)

Intrucat pentru n = ° are loe relatia to = b > ~, In baza inductiei matematice complete, inegalitatea (3.5.4) este justa pentru toate valorile n = 0,1,2, ... , mai mult, aceasta relatie confirma ca sirul { tn+l} este monoton descrescator si marginit inferior de numarul ~. Urmeaza ca sirul generat de formula (3.5.2) este convergent, iar valoarea lui de limita( A ) este radacina ecuatiei (3.5.1). Intr-adevar, tinand eont de continuitatea functiei f(x), tree em la limits In formula recurenta (3.5.2):

A=J __ f(')..) f(1)(')..)'

.ie unde f(A) = 0, iar in virtutea unicitatii solutiei, eonchidem ca ').. = ;, ceea cesi trebuia iii.iernonstrat.

In baza teoremei 3.5.1 si analizei constructiilor din figura 3.5.1, generalizam urmatoarele: in cazurile I si IV ( f(b)1(2)(b»0 ), initializdnd to= b.formula (3.5.2) va genera sirul

b = to> t, > ... > t, > tn+1 > "', convergent din dreapta catre radacina ;;

In cazurile II si III ( f(a)1(2)(a»0 ), initializ/ind to= a, formula (3.5.2) va genera sirul a = to < t, < ... < tn < tn+1 < ... , convergent din stdnga cdtre radacina ~.

Estimarea erorii

Pentru estimarea aposteriori a erorii aproximatiei to+1 po ate fi adaptata formula generala, .onform teoremei 3.1:

.... nde m, = in~f(I)( x)l, xe [a, b).

In conditiile de aplicare a metodei Newton, este dedusa Inca 0 formula pentru estimarea .::.~osteriori a erorii aproximatiei tn+t. si anume

57

Capitol"l III. REZOLV AREA NUMERICA A ECIJA TIlLOR ALGEBRICE SI TRANSCENDENTE

I ~ I M,.. ·2

tll+1 - I; $ -z: ( tn+l - til) , ~ml

unde m, = inflj(IJ( x)I si M2 = suplj(2)( X) I.

xE la, hi XE la, bi

Conform acestei inegalitati, procesul de calcul of aproximatiilor tn+l ( n = 0,] .2.3 .... )

dupaformula (3 5.2) se va intrerupe atunci cdnd vafi satisfiicuta inegalitatea

I I ' f2mlE

ttl'"! -tn S ./--. - . (3.5.5)

V M2

Mai jos este prczentata functia Newtoni considerata cornponenta a unitatii REA T). destinata calculului cu aproximatia E a radacinii ecuatiei j(x) = 0, izolate pe la, bJ. aplicand estimarea aposteriori a erorii conform relatiei (3.5.5).

III i;'unction Ne~rt~n(a,b.m 1.m2,cps:real: f.f Lfz.Func; afis.boolean.Var nc,;:byte):reaJ; i {n-numarul de iteratii: nc-numarul de zecimale la afisarea valorilor reale;

.1 f-numele functiei din ecuatia f(x)=O; f1 ,f2-numele primelor doua derivate ale functiei ~ ftx); afis-confirmare pentru afisarca aproximatiilor succesive anterioare celei finale} Ii Var :,tl,Er:reai: {Declararea variabilclor locale auxiliare}

II Be~~::::sqrt(2~'m 1 *cps/M2); nr=O;

~ { Initializarea aproximatiei solutiei }

il If F( a)*F2(a»0 Then t l i=a;

~ Else u :=b;

Ii {Calculul iterativ al aproximatiilor succesive ]

Ii Repeat

1

Ii If afis Then

Ii

ii

~

II ,I

II

ii Ncwton.=t 1:

II End.{Newton]

~. ~ .. ,=.=---~==~~==.~::-

WriteLn( 'x::::',t 1 :O:nc,' f(x)=',f(t 1 ):O:nc); l:::::t1: tl:=l-F'(I)/(Fl(t): inc(n);

Until abs(tl-t)<=Er;

Exemplu. Vom verifica posibilitatea aplicarii metodei Newton pentru precizarea radacinilor ecuatiei

j(x)=::; x3 - 4x + 1 :::: 0, care are radacinile: ~IE [-3,-2], ~2 E [0.1,1], ~lE [1.5,2]:

1) j(l)(x)=3x2-4>0, j(2)(x)=6x<0, 'If xE [-3,-21: cazuIII:to::::a=-3,m,=8, M2= 18;

2)j(J)(x)<0,jU\X»0, 'If xE(O.l, J]: cazul Hlr t.e c e O, Ill,::::l, M2=6;

3) j(l)(x) >0, .j2J(x»O, 'If xEI1.5,2]:cazuII: ~::::b=2, ml=2.75, M:=12.

Pentru rezolvarea acestei ecuatii s-a aplicat programul P _3_5_1 de mai jos

Program P _3 _5 _1 ; Uses Crt, Reat;

Var x,a,b,ml,rn2,e s.Real.n.byte;

,

[MetodajNewton]

58

Capitulul II1. REZOLVAREA NUMERIC'\' A ECUATlILOR ALGEBRICE SI TRANSCENDENTE

~=======

Function F(x:real):real: Far; {Far-directiva de compilare}

Begin F:=x*x*x-4*x+l: end; [Definirea functiei f(x)}

Function FI (x.realj.real; Far; [Definirea primei derivate a functiei [(x)}

Begin FI :=3*x*x-4: end; Function F2(x:real):real; Far; Begin F2:=6*x; end; Procedure Rezolvarera.b.m Lmz.eps.Real; F,Fl,F2:Ful1c;afis:booican:nc,k:byte); Var x:Real; n.byte:

Begin

ClrScr: Writcl.nt 'Precizarea radacinii_' .k,': '); If F(a)*F(h)<O then

{Definirea derivatei a doua a functiei [(x)}

Begin

x:=Newton(a,b,ml,m2,eps,f,fl J2,true,nc,n):

WriteLn(,Aproxirnatia finala:'); WriteLn(,x=',x:O:nc, ' f(x)=',f(x):O:nc):

Writeln(,n=',n); End

Else WriteLn(,Nn este izolata radacina');

Readln;

End; {Rezolvare} Begin

Rezolvare( -3, -2, 8, 18, 0.0001, f, fl , f2, true, 5, I);

Rezolvare(O.1, L 1, 4, 0.0001, f, fl, f2, true, 5, 2);

Rezolvare( 1.5, 2, 2.75, 8, 0.000 I, f, f1, f2, true,S, 3); Readln;

I I

====J

End.

Rezultatele, obtinute la executia programului P 3 5 1, se daLl 111 unmltorul label:

I

a = -3; b = -2; III 1 = 8; \1: =18; eps = 0.0001; afis = true; nc=5; k=l

a==O.I; b=l;ml=l; M2 =6; eps = 0.0001; afis = true; nc=5; k=2

a = l.5; b == 2; 1111 = 2.75; M2 =12; cps == 0.0001;

afis = true; nc=5; k=3 I

=:1

II X Il X Il x II
~
II -3.00000 0 0.10000 0 2.00000
1 -2.39130 1 0.25139 1 1.87500
, -2.15496 2 0.25410 2 1.86098 ~I
-
:- -2.11595 3 1.86081 I
~ -2.11491 --I
Solutiile m1
,
~ + + +
_- = = Iesire

~I 2.11491_0.0001 S2 0.25410_0.0001 IL S3 1.86081_0.0()Ol I,

Analizand secventele aproximatiilor radacinilor ecuatiei in studiu, prezentate 111 acest _ - e . _ ne convingem ca toate trei siruri converg monoton catre radacinile respective conform 59

Capitol"1 III. REZOLV AREA NUMERIC:\ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

cazurilor specificate in analiza anterioara. Mentionam, de asemenea, ca datele de intrare pentru programele P _3_5_1 si P _3_ 4_2 sunt identice si, dupa cum si era de asteptat, aproximatiile finale ale solutiilor, obtinute prin ambele metode, coincid in limitele exactitatii solicitate, diferenta fiind totusi in vitezele de convergenta: metoda tangentei poseda viteza mai mare dedit cea a cooardelor.

*

Estimarea vitezei de convergenta a metodei Newton.

in baza, asa numitei formule Taylor, dedusa in cursurile avansate de analiza matematica, are loc relatia: f(~) =Rt,,) + f(l)( tll)( ~- tll)+~f(2)( lln) (~- t1l)2, (11n este situat intre ~ si til)

Prin urmare,

In asa mod, se obtine inegalitatea

I 1M2 I 12 tll+l - ~ ::;:; -2-- ttl - ~ ,

III I

unde: m, = inflf(l)( x) I, M2=suplf(2)( x) I.

xE [rz, b] xE [a, bJ

(3.5.6)

Din relatia (3.5.6) se vede ca eroarea aproximatiei curentc, obtinute dupa formula (3.5.2), este proportionala patratului erorii aproximatiei precedente, de aceea se spune ca metoda Newton poseda convergenta de ordinul doi sau patratica. Daca intervalul [a, bJ este ales intr-atdt de mic, incdt are loe inegalitatea

M,

q= -_- (b-a)<l,

2mJ

atune! formula (3.5.6) asigurd 0 vitezii rapidd de convergentd a procesului Newton. Intr-adevar, in asa caz, aplicand succesiv inegalitatea (3.5.6) pentru n = 0,1,2'00" obtincrn estimatia

~"--l

I t,,+1 - ~ I < q- (b - a),

(3.5.7)

care indica 0 viteza rapida de convergenta a sirului { tll+1 }. De exernplu, daca la pasul n s-au obtinut k cifre sigure, at unci pasul (n + 1) va da aproximativ 2k cifre sigure.

Rapiditatea convergentei si este acea caracteristica care promoveaza metoda Newton in rangul celor mai cfective metode de precizare a radacinilor.

Mentionam, de asemenea, ca formula (3.5.7) reprezinta, de fapt, estimarea apriori a erorii. Modul de utilizare al acestei inegalitati este cel cunoscut: daca dorim sa obtinem solutia S cu precizia ~:. va trebui sa calculam t,,+1 pana la acel n, care satisface inegalitatea

2" 1

q - (b-a) < E,

(3.5.8)

60

Capitolul III. REZOLV AREA NUMERIC'\ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

.: - :-:1ai mica valoare a lui 11 fiind

11 = [In(ln_E_llnq + 1)/ln2J +1 . b-a

(3.5.9)

Inrrebari si exercitii

1. Sa se faca 0 analiza cornparativa dintre metoda coardelor si metoda tangentelor, facand

referinta la urmatoarele momente:

a) conditiile suficiente de aplicare;

b) modalitatile de estimare a erorilor:

c) modurile de apropiere de radacina:

d) avantajele si dezavantajele fiecarei din metode.

"' Dati exemple de consecinte posibile, daca la aplicarca metodei tangentelor nu va fi .orect ales punctul de start ftJ. Indicatie: vezi sectiunea I a fig.3.4.2.

3. Elaborati un program care va realiza metoda Newton, fiind dat numarul de iteratii 11; programul va determina si eroarea E a rezultatului obtinut, Indicatie: utilizati relatia (3.5.8).

·t Elaborati un program pentru aplicarea metodei Newton 'in cazul estimarii apriori a erorii.

Indicatie: utilizati formula (3.5.9).

5. Subiecte pentru sarcini individuale:

Sa se rezolve prin metoda Newton ecuatiile neliniare, propuse la sfarsitul paragrafului 3.2. cu precizia prescrisa E.

3.6. Metoda mixta a coardelor ~i tangentelor

Fie ecuatia

f(x) = O, f: la.bl~R, la,b] c R.

(3.6.1 )

Yom cere indeplinirea acelorasi conditii ca si la metoda Newton: l)ful1c{ia .f(x) este de doua ori derivabild pe intervalul la. b]; 2)f(a)i(b) < 0;

3) derivatele f (jl( x) si f (c)( x) nil se anulearii }i [iecare L)i pastreazii semn constant ne fa, b].

Aplicand in mod alternativ metoda coardelor si metoda tangentelor, obtinem 0 metoda .nixta, care genereaza doua siruri de aproxirnatii, convergente catre radacina ~ a ecuatiei fix) = 0 din directii opuse. In rezultatul restrangerii, la ficcare pas din ambcle capete, a intervalului de izolare a radacinii. lungimea acestui interval va constitui 0 eroare absoluta a aproximatiei radacinii, iar precizarea radacinii va decurge suficient de rapid.

In asa mod, la aplicarea metodei mixte, se va simplifica esential problema estimarii erorii care. in cazurile aplicarii independente a metodclor componente, impune cercetari -uplimentare, cum ar fi determinarea valorilor extremale ale modulelor functiilor f \!)( x) si ( 2)( x).

£1

CapitolulllI. Rl<:ZOLVAREA NUMERIC' A ECI1ATHLOR ALGEBRICE SI TRANSCENDENTE

tY

I I f(i\X»O;fi2\x»O

C

a!

,~~ ,~~~~ __ ~. ~ __ ~b~_-4

to

o

Fig. 3.6.1

IT
I
I
0 tu
a b x

Co

,Fig. 3.6.2

In scopul elaborarii algoritmului de realizare a meiodei mixte, revenim din nou la cele parru tipuri posibile de configuratie ale graficului functiei y = ftx), prezentate la studicrea variantei a doua a metodei coardelor ~i a metodei tangentelor. lntrucat, la aplicarea metodei in studiu, cazurile I si IV respectiv II si III sunt similare, ne limit am eli interpretarea geometries a cazurilor I si II (figurile 3.6.1 si 3.6.2).

Examinant cazul I (j,(l)( x) > 0; 1(2)( x) > 0), Initializand Co = a si t, = b, din considerente didactice, aplicam mai intai metoda coardelor

co/(to) -tof(co)

c1 == . - -,

f(to)- f(co)

Capitol"1 Hl._ REZOLVARE.,4 NUl'vIERICA A EClJATHLOR ALGEBRICE SI TRANSCE1\DENTE

'-', ctoda tangcntelor

f(to)

t I = t 0 ,~--------f (I) (t i') .

~~lPd primul pas al rnetodei mixte. obtinern subintcrvalul restrans Ic,Jd, in care este ,'.:::Cl radacina ~. Aplicand ill mod similar aceasta metoda pentru subintervalul Icl,t.j, - - :'tm till nou subinterval - [C2.U 7i a.rn.d.

in general, aplicand metoda mixia pentru intervalul lc.; tnl, obtincm

(3.6.2)

fUn)

t = t --.- .. -----."

11,1 1/ r«:

"' . II

(n = 0, J ,2 •... ).

Obscrvarn ca forrnulcle (3.6.2) si (3.6.3) sunt valabile ~iill (,lUU! II (fll)( x) > O: '( x) < 0 ). ell cxcepiia iniiializarii: Co = b si to::::: a, iar radacinu ~E I til' en J.

In ban celor cxpusc ~i analizci constructiilor din figurilc 3.6.1 ~i 3.0.2, gencralizam ~.,trel:

daca f(a)/\2\a) >0, atunci [orniulcle recurcnte (3.62):;;i n 6.3) vor genera intervale ulnse unul til ultul: {[tll+1, CII+ll: Ie,!!. end] c It". en!. n =: 0, I ,1" .. ; t.= a, c, = b}, pcntru care - .. trcmitiitile stdngi: a = to < t, <, ... < tIl <, 1"e1 <: , .. , formeaJj ill1 sir convergent dill suinga catre .idacina E" iar cxtrcmitaiile drepte: b :.:: ('o> c, > ... > c; > CII+1 > ... , ·-un sir convergent din

.rcaptu ciitre radacina ~;

daca fl/sa .f~a)I(2\a) <: 0, [ormulelc numite For genera intervale inclusc uI/II1 In altul [cll+!, 'It.d: !CII+h tll+I!clcn, in!' 11 = 0,1,2, ... : Co ::..--::- 0, ~,= h}, pentru core cxtrcmit/itilc =tinut« prin metoda tangentelor isi schimba rolul Cit ce!e obiinute prin metoda coardelor: procesul de aplicare alternativii a metodelor coardelor si tangentelor, prin intermediul 'ormulelor (3.6.2) # (3.6.3) se va intrerupe atunci cdnd va fi satisfiicutii inegalitatea

(3.6.4)

: :-; rezultat vom capata

Este evident, ca ordinea aplicarii Iormulelor (3.6.2) si (3.6.3) nu este principiala, dar

'l[a~i este mai efectiv de pornit ell metoda tangentelor. intrucat valoarea obtinuta prin

.ceasta metoda se va folosi deja la prima aplicare a metodei coardelor.

In figura 3.6.3 este reprezentata schema logicii de realizare a metodei mixte a eoardelor 51 tangentelor.

CapitolullII. REZOLV AREA NUMERIC'\ A ECUATIILOR ALGEBRICE SI TRANSCENDENTE

t :=a; c :=b

Nu

t :=b; c :=a

c* f(t)-t* f(c)

c '- _ _:___-_:___

.- f(t) - f(c)

Nu

Fig. 3.6.3

Da

x := (c + t )/2

In eontinuare se prezinta functia Mixta( considerata componenta a unitatii REA T), destinata ealeulului eu aproximatia e a radacinii ecuatiei f(x) = 0, izolate pe [a, b), aplicand metoda mixta a coardelor si tangentelor.

£illlilnilli m. REZOLVAREA NUMERIC" A EClJATJILOR ALGEBRICE SI TRANSCENDENTE

'l7;nction ~'1ix(a(,~~t)-,eps:r~.a!: fJl,f2:Func; afis.boolean.Var nc,n:byte):r~aJ; [n-numarul de iteratii; nc-numarul de zccimale la afisarea valorilor reale:

f-numcle functiei din ecuatia f(x)=O; fl ,f2-numele primelor doua derivate ale functiei

I'(x ); afis-confirmarc pentru afisarea aproximatiilor succesive anterioare celei finale} Var t, c, Ft, Fe.real; {Dcclararca variabilelor locale aux iliare}

Begin n:={);

{ lnitializarea aproxirnatiilor initiale aJe solutiei If Fa*F2(a»O Then Begin t:=a; c:::::b; end Else Begin t:=b: cr=a; end:

{Calculul iterativ al aproximatiilor succcsive} Repeat

Ft:=f(t); Fc:=f(c):

If afis Then

WriteLnCt=',t:O:nc,' f(t)=',Ft:O:nc,' c=',C:O:11C,' f(c)=',Fc:O:nc); t:=t-Ft/(fJ (t)); Fr=ftt);

c:=(c*Ft -t *Fc )/(Ft - Fc):

inc(n);

Until abs(t-c)<=Eps;

Mixta:=(t+c)/2; WriteLn('t=',t:O:nc,' f(t)=',Ft:O:nc,' c=',c:O:nc,' f(c)=',Fc:O:nc);

~ __ En<l_;_{ Iv!_~~} __ =.~=

Exemplu, Fie ecuatia f(x) 0", x' -- 4x + 1 = 0, radacinile carcia sunt izolate dupa cum

urmeaza: ~IE [-3,-·21, ~2 E fO.I,!], ~3E [1.5,2]. Folosind metoda mixta a coardelor ~i

tangentelor, sa se prccizeze ell cxactitatca prescrisa ~ radacinile ecuatiei date.

Rezolvare. In paragraful precedent aceasta ecuatie a fost deja rezolvata prin metoda \'ewton, unde preliminar a fost confirrnata posihilitatea aplicarii acestei metodc. Dar. dupa cum se stie, conditiile suficicnre de aplicare a metodci iangentelor sunt in vigoare ~i pentru metoda mixta.

_Pcn.1!L1 rezC?_lvarea ccuatici S-;1 aplicat programul P _3_=§~1=. =======~~===~

r----Progra~.;i P_3_6_1; . - {Metod<;-mixtaacoardelorsi tangentelor}

Uses Crt, Reat;

Var x.a.b.eps.Real.n.byte; Function F(x:real):real; Far:

Begin F:=x*x*x-4*x+l; end;

Function Fl(x:real):rcal: Far; Begin Fl :=3*x*x-4; end:

Function F2(x:real):real; Far; Begin F2:=6*x; end:

Procedure Rezolvarera.b.eps.Real: F,Fl ,F2:Func;afis:boolean:nc,k:byte); Var x.Real: n.byie;

Begin ClrSer;

Writef.nrPrecizarca radacinii j'.k,'.'): I

. If F(a)*F(b)<O then ,I

,~~~=~~~~~~"~=~_~~_~="~_._~., .. "=.-. __ ... ~~~=~_. "=__ _=~._._~~= ~JJ

{Far-directiva de compilare} {Definirea functiei f(x)}

{Definirea primei derivate a functiei f(x)}

{Definirea derivatei a doua a functici f(x)}

fdlJillillul m. REZOLVAREA NUl\H~RJCA A ECl]ATHLOR ALGEltHJCE SI TRANs'.rE]\1)fu'iTE

ohtinute h. exccuria programului :P_3_6_1, sunt prczentate

Begin

x: ::::}\;I ixtat a.b.eps.f, fl ,f2, t rue.nc,n); Writel.nr'Aproxiruatia Iinala:'):

WriteLn(,x=',x:O:nc,' f(x)='.f(x):O:nc); Writelnf'n='in};

End

Else WriteLn('Nu este izolata radacina');

Readln;

T/ .. d: I' f( i? 7 'J 1 vare }

F':""li!(, ..• {~ __ L~"' __ '\~.""",

Begin

RClolvare(-3.-2, 0.0001, Ln, fl. true, J;:

l~c~:o)vare(O.l, I, (LOOn I. f

true, S~ ~_-):

Rewlvare( 1.S. RCHJlll;

OJ)OO 1, f Il , rz, true, 5. 3)'

tabei :

eps e )UI

afis::: true: nc='-;"

1C

difcrenta

doai in vitezele

vucza mctodei mixtc

ilor radacinilor

converg moncton catre radacinile orm

cazurilor specificate III analiza anterioara. Mentionam, de aserncnea, c;'i daicle de intrarc pentru programelc P 6 I, P __ 3_5_1 si P __ 3_ 4_2 sunt identice si, dupa cum ~l era de asteptat, aproxnnariile finale ale solutiilor, obtinute prin [oate feci metode. coincid III limitele

nr[lmai marc ca cea a coardelor ~;j mal mica ca cea a iangcntelor.

Caoitolul m. REZOLVAREA NUMERIC\ A ECOATIILOR ALGEBRICE)~i TRAJ',fSCENDENTE

Intrebari si exercitii

1. Sa se faca 0 analiza cornparativa dintre metoda dihotomiei si metoda mixta a

_ ':trdelor ~i tangentelor facand referinta la urrnatoarele:

1) conditiile suficiente de aplicare;

2) modalitatile de estirnare a erorilor:

3) modurile de apropiere de radacina;

4) avantajele si dezavantajele fiecarei din metode.

2. Dati exernple de consecinte posibile, daca la aplicarea metodei mixte nu vor fi corect - __ ,e punctele de start to si Co-

3. Elaborati un program care va realiza metoda mixta a coardelor ~i tangentelor, fiind nurnarul de pasi n; programul va detennina si eroarea E a rczultatului obtinut, Indicatie: - .: .izati relatia (3.6.4).

4. Subiecte pentru sarcini indivlduale:

Sa se rezolve prin metoda mixta a coardelor ~i tangentelor ecuatiile neliniare, propuse la . _:~ltul paragrafului 3.2, eu preeizia prescrisa E.

Capitolul IV. REZOLVAREA NUlVIERICA

A SISTEl\IELOR DE ECUATII ALGEBRICE LINIARE

4.1. *Matrice

in acest paragraf se vor reaminti unele notiuni din algebra matricialii, studiate in cursul de matematicii pentru clasa a Xl-a.

Definitie. Numim matrice de dimensiuni (de tip) n x.m tn , mE N*) un tablou dreptunghiular

A=

all aI2 ••• aIm an an ... aun

(4.l.1 )

format din n x m numere reale aranjate 111 n linii ~'i m coloane, Numerele aij se nuniesc elementele matricei. Prescurtat, matricea sc mai noteazii prin (ai;)n x m-

Cazuri particulare:

10. Matricea pentru care n = 1 se numeste matrice -linie ( vector -liniei. iar matricea pentru care m = 1 se numeste matrice -coloanii ( vector =coloanii ). Dec; un vector

n -dimensional poate avea urmatoarele reprezenuiri:

x = (XI. X2, ... ,XII) - vector -Iinie,

Y=

-vector -coloanii.

( 4.1.2 )

Yn

2° ,0 matrice A = (aiJ )11 XII, ell acelasi numar de linii si CO/OUllC, se numeste matrice piitraticii, iar n este ordinul matricei: 0 1101(/111 inai simplu A = (aiJ )/1' Elementele a.], i =1 +n.formeaza diagonala principalii, iar clementele ai.n-i+J, i =1 +n.jormeaui diagonala secundarii a matricei pdtratice.

3". 0 matricc patratica III care toate elementele situate deasuprairespectiv dedesubtuli diagonalei principale sunt egale cu 0 sc numeste inferiorirespectiv superior) triunghiulard. 4() , Matricea pdtratica, La care toate elemeutele situate In afara diagonalei principale SUIl! egalc cu zero, se numeste matrice diagonalii. Aceasta mat rice areforma

d, 0 0 0

o d, 0 0

D=

o 0 0 ... d;

5° . Matrical diagonald ell, toate elementele situate pe diagonala principala egale ell 1 se numeste matrice unitate; se noteaza prin 1/1 sau En.

68

Capitolul IV. REZOLVAREA NUMERICA A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

Definitie. Matricea AT, obtinuta din matricea (4.1.1) prin schimbarea liniilor ell coloanele si reciproc, se numeste transpusa matricei A:

all an··· ani 1

T a12 a02••• an2

A = .

. . . . . . . . . . . .

aim aUIl ••• alll1l J

In particular, transpusul vectorului -coloana (4.1.2) este un vector -Iinie:

T

Y = (YhY2,'" ,Yn).

Exemple:
2 0 3 5 [~ 0 0 ~l [~ 7 1 ~l 1 0 0 0
2 7
.\ = 5 -1 4 AT = 6 1 0 8 1 14 = 0 1 0 0
o -1 '1 5 o ' 0 4 3 ' 0 0 1 0
7 6 8 "'-
3 4 8 2 3 4 0 0 0 1 0 0 0
\Iatrice patratica Transpusa Matricc inferior Matrice superior Matrice unitate
de ordinul 3 matricei A triunghiulara triunghiulara de ordinul 4 Egalitatea matricelor. Doua mal rice A ::: (aij )l1xm si B = (bi.; )Ilxm, ambele fiind de . eleasi dimensiuni n x.m, sunt egale dacd aiJ = bi,;. i =1 +Tl, j =1 +Jtl .

Operatii cu matrice:

I) Suma matricelor A = (aij )Ilxm si B::: (biJ )nxm. ambele fiind de aceleasi dimensiuni 0( Ill, este matricea C = (Cij )lIxm, elementelc careia se calculearii conform [ormulei

Cij= ai,j + bij' i =1 + n.] =1 + m.

2) Fie A =: (aiJ )nxl1I si H :::: (hi,; )1I1X[" doua matrice astfel incdt numarul de CO/O{/IlC ale "}lIei sd [ie egal ell numdrul de linii ale celei de a doua. Prill produsul C = A·B se »inselege matricea

t11

_ = (CiJ)IlXp, clcnientcle careia se calculeaza astfel CiJ= Laikb,,;, i =1 +11, i=' +]7. k=l

Exemplu:

~ ~ A [2 01]

~IJca =5-10

103

~l B = 5 -1 4 atunci 7 1 0

-=A.B= [2.1+ 0·5+ 1·7 2·0+ 0(-1)+ 1·1 2·3+ 0-4 +1.0] [916]

5·1+(·-1).5+0·7 5·0+(-1).(-1)+0·1 5·3+(-·1)-4+0·0 = 0 I II'

Consecintii. Pentru orice Ina trice patraticd A = (aij)n cste justa relatia: A·IIl = Ifl·A = A.

3) inmul(irea cu scalari a matricelor. Produsul dintre numiirul a (sau scalarul a )~i - .. uricea A = (aij )flXlIl este matricea B = (biJ )Ilxm, elementele cdreia se calculcaza dupa =ula bij= a'aiJ' i =1 + ll,j =1 + m . Se noteazii B = a·A.

£illill.9Iu1 IV. REZ;OLVAREA Nl'MERICA :\ SISTE'\lELORDE ECUATH ALGEBRICE LINIARE

I Definitie. 0 m~ltrjcl.' p'l!~'atict'i A-.I·e nunieste inversabilii dacii exista 0 asa matrice,

i notata prin A-i incdt arc foe relatia A·A-1 =: /\,'-'·A ::;: 111, Matricca A-I se numeste in versa

l n~a:!icei A.

De exernplu, matricelc

[')-5]

A == :1 ;

[3 51

~l B = 1 2 J

sunt reciproc inverse. Intr-adevar.

A.B == [ 2 __ ,C:,' ]. Il':; 5]:::. (2.3 +(-5) 1 2.5+(-5",).2J:::.: [1 0]= I,.,

-1 3 1 2 L(-1)-3 +3·1 (-1).5 +:<·2 0 1 ~.

In mod similar obtinern relatia B·A = h Deci B == A'I si A == B" .

4.2. *Determinanti

,

Prezentul paragraf este consacrat repetiirii unor elemente din teo ria determinantilor, studiate in cursul de matematicii pentru clasa a XI-a.

Vom reaminti mai intfii formulele detcrminantilor de ordinul 2 si 3:

(4.2.1)

all a12 au

a21 an a23 = all ana3l + aI2a21a31 + aLla2i a32 - ana22a,] - all a21 a33- all a23a32· a3l a32 a«

( 4.2.2 )

Constatam ca termenii acestor 2 determinanti sunt produse de elemente ce apartin la linii si coloane distincte. In plus, oriee astfel de produs este termen in formula determinantului respectiv.

In continuare vom urmari scopul de a da definitia detcrminantului unei matrice patratice de ordinul n in asa mod, incat pentru n = 2 ~i 3, sa obtinem determinantii definiti prin formulele (4.2.1 ) si respectiv ( 4.2.2 ).

Consideram 0 matrice patratica de ordinuln

lall al2 ••• aln A = ~.21. ~~2. ~ ~ ~ ':

alii all2 ••• allll

Tinand cont de formulele determinantilor de ordinul 2 si 3, in mod natural formula determinantului de ordinul n trebuie sa contina toate produsele posibile din n elemente, aces tea din urma fiind selectate in asa mod, incat sa apartina la linii distincte(deci, din fiecare linie se va lua cate un singur element) si in acelasi timp la coloane distincte (adica, din fiecare colo ana se va Iua cate un singur element).

70

Mentionarn. ca problema forrnarii scturilor de clemente ce se VOl' include ill aceste produse, este similara roblernei plasari: pe tabla de )(ih de dimen.iunea II >( nan turnuri i'n a~?;~ mod inc£H acestea ',a nu se arneruntc .eciproc.

Asadar, ficcare produs ce ne intcrcseaza este de forma

J ',. •

.. nul' .il.h", .. .In

a'.j,'a:j, ,,'((lIi!!, sunt toate clcmcntcle multimii {1 ,,?, J:::: t.i.J»: .. .I, )

':l'1'CZllltZl u perrnutare a numcrclor

, , "n,

Nnmarul \()(,Jj de pennut.iri dill n clemente C:-.1C cg;J1 0: It ~ Inscami'~} ':~i 1',),]sUi ex a. t "I 'UUlhC de forma (t2,?' )

t'::\cmplu. in pcruun.ircu r: ., 2),01),(2,1 NOi .im nU11lJrUI tolal de invcrsruni din pcrrnutarca J pii;; 0 '.J I

') 1'1 ..,

ik:

''_-'"

>

... ,_"t

t c: \(~

,If ,','11:/';'

~, ;111 Ii ~ ~ .

5'{' nnnicst:

la,; a, .. {t,,, I

la I a,.' a," I

saul I'

I' !

la,,; all',· . , {Iu"

Observatii

~~,:;tCd t_il: fiCi('rn~in1;-H unc: n.atricc ~Ul~ S'.";lS nurnai Pf,~_i(:nl ~;;;)n,_'i.

. dC~Cl~;;_1li,'~ntul ,,[tu: rnatlil~':~ I:>.:(~" ~-Uj;i~'~i': L:i tL'!('_:'iil~r1~:i,;nd nl(_\!;;l'j,~\

n:

2 \ itl fp~Tr!uL; dCICrn!ln;'Hltuiu! llL:i matrice fxi<t1 n'. :t~j'irt"n;:, (iinli"f C~H'( :n~ sernnul : +) ~;J to! :ill

( --;,

!1cicrrn!i1JntuJul :,C

-t, '; 'nl \;-:11 dcfinitiei, dcrcrmin.mtul dc ordinul Ii pentru ~- "j ·;t n >: ..

defini\1 anterior prin f"'tTHJidl' (4,,', l ~\ (4,2,2 ),

7:

CapitoiullV. REZOLVAREA NUMERIC,\ A SISTEl\1ELOR DE ECUATII ALGEBRICE LlNIARE

Definirie. Fie A == (aiJ )nxlI. Dcterminantul matricei obtinute prin suprimarea liniei i ~'i coloanei j dill matricca A, se numeste minorul elementului ai,j si se noteazii M i,j, iar

numdrul AiJ= (_l)i+) Mi,/ YC numeste complement algebric of elementului aij.

Exemplu. Fie matricea

[6 1 3

A == 5 J 4

720

Atunci. de exemplu, minorul clementului a-. din A, este

6 1

]Vb = 7 2 == 6 -2-1·7 =\ iar complementul algcbric al acestuia este An=(-l»3·5=-S,

Definitie. 0 matrice A = (aiJ)n sc numeste singularii (salt degeneratiis d(/CPI

del (A) = 0 ~'i se llwl1e,yte nesingularii (sa/{ nedegeneratli) dac/i det (A)::f:. 0, JI

I' Definitie. Dan'! A = (aiJ )n, atunci matrice~-l------

I All A21 •• • Alli Al2 An ... An2

0/ cdrei element, ee apariine liniei j .yi coloanei i. este complementul algehric 01 clementului ai' din matricea A, se numeste matricea adjunctii matricei A,

In continuare vorn formula uncle proprietati ale deterrninantiior si matricelor. cunoxcutc din cursu] de algebra xupcrioara, care vor fi utile in expuncrea ulterioara a materiel.

Proprietatea 1 Dcu.ii fa elementele unci liniitsau coloanei a matricei A se (Iduna clemente le respective ale altci liniitsau coloanei inmuliite ('II unul si acelasi num/ir, atunci sc obtine () matrice, of carei determinant este cgal cu determinantul matricei A,

Proprietatea 2. Dacii toate elemente!e unei liniitsau coloanei dintr-o matrice patratica sunt ega le cu O. atunci detenninantul acestei matrice este egal cu 0,

Proprietatea 3. Dacii matricea B se obtine din matricea A prin permutarea a doud linii ( sou coloanei, atunci Illl = -IAI·

Teorema 4.2.1. Fie A::: (aiJ )u, Pentru orice i = 1 + n este adeviiratii egalitatea

11

det (A) = "a .. A .. , L.. " y j=l

numitii formula dezvoltiirii determinantului dupii linia i, iar pentru orice j =1 + n are loc egalitatea

11

det (A) = L:aUAij ,

;=1

numitii formula dezvoltiirii determinantului dupii coloanaj.

72

Capitolul IV. REZOLVAREA NUMERIC\' A SISTEMELOR DE ECUATII ALGEBRICE LINIARF

Teorema 4.2.2. Fie A= (aiJ)n 0 matrice nedegeneratii, adicii .1. = det (A) ;j: O. Atunci inversa matricei A se obtine prin impiirtirea elementelor matricei adjuncte la .1., adicii

A-I = .l . A*_

A

4.3. Calculul numeric al determinantilor

,

Yom rrece In revista urmatoarele 3 procedee.

JO _ Un proccdeu de calcul <11 deterrninantilor rezulta din definitia acestora, prczenrata in puragraful precedent. Insa. trebuie de tinut cont de faptul ca complcx itatea algoritmilor bazati ;,C acest procedcu cste de ordinul O(ll"ll l). De exernplu, pentru n = 30 este nccesar un numar astronomic de opcratii -rnai marc de 10,°.

2°. Un a! doilea procedeu sc bazeaza pc folosirea teoremei 4.4.1, adica pe dczvoltarea .ieterminantilor dura 0 linie sau coloana. Cornplex itatea de calcul al algoritrnilor bazati pe .rcest procedcu este de ordinul O(n!). Dcci situatia nu difera esential de cca impusa de

:Jroeedeul 1°.

3°. Un alt proccdeu de calcul, mult mai eficient dedit primele doua, intrucat are .omplexitatea 0(11'). consta In reducerea calculului determinantului de ordinul n la calculul .nui singur determinant de ordinul n--l. Se utilizeaza proprietatile determinantilor, 'in special, ;,roprietatea 1. Procedeul deplin de calcul, traditional atribuit lui Gauss, cstc iicrativ ~i ~-lI1iseaza eu readucerea determinanrului la forma superior sau inferior triunghiulara.

Vom cxamina aplicarca unei aiare scheme la reducerea determinantului de ordinul n

all ale au ••. aIj ••• all1 all an all ••• alj ••• a}n all a3? a:n ••• a3.i ••• a311

(4_3.1 )

_J forma superior triunghiulara; apantia, pe parcursul transformarilor, a zerourilor sub .iiagonala principala, 0 vom face prin atribuirea lor In mod direct, pe pozitiile respective, fara .:. le mai calcula.

Sa presupunem ca elementul all;j: O. Ne punem ca scop primar sa ajungern la un '::ctcrminant care sa contina pe prima coloana numai zcrouri, ell exceptia elernentului all. \::easta sc poate obtine prin adunarea succesiva la elementele liniilor i = 2 + n a clementelor ~;>peetivc din prima linic.Tnmultite eu (-ail fall); fara a afeeta valoarea determinantului

-1..3.1), vom obtine:

,

Cani.to1uIIV. REZOLVAREA NUMERIC\' A S!STEMELOR DE ECUATH A,LGEBRICE UI\IARE

all al2 au··.alj···{lill

(.!. ") (i) (ll (l)

a ~~' a v ... a 2)' .. a 211

(I) (I) (l) (tl

o a 12 a jJ ... a :lj ... a :Ill

\ (1) (1) II) (1)

lJ a i 2 a i3 ... a ij .. a in

;._ {I} (I) (1) (1) U a n2 a n3 ... a n] ... a nn

(n ail

unde am notal a i; ::: aU - -- (II}

ti.] ==

.n),

In cominuare, daca a ()1~ :f 0, se vor aduna succesiv la elcmentele liniilor i =: 3 + 11

1 I ive din J .. d ' 1 . . (i) / II, "-

e ementete respective din una a . oua, mmu me eu (-a i2 a ~2 ); vom caputa:

a! I al2 an ... alj .. , (lIn

(1) (,I)

f'f' II) ,l)

\ a 7') al, .. a 2j ., a 2n

(\ 0

(2) ,(2) (2,j

a .i3 ... a lj ... a in

() 0

o 0

(2) (2) (2)

a 113' • a 'II .. a nn

("

..

(.2i In

(lrj =«,

uncle s-a no! at

a c· ~J

'j, a I~

(i; j == 3, . , , ,n).

c;'i $1 In continuare clcmcntcle diagonalc respective VOl' fi difcrite de zero. icand succes: v transforrnari similare, la al (n-l) --le8 pas vorn incheia reduccrea determinantului (43 1) 1;} forma superior triunghiulara

A=

(I)

a 1" .

,_,1

(1) (I)

. a 2';' .. a 2f1

(4.3.

o 0

:)) (2)

a i.' ... a .1'; .. , a :111

o 0

o ... 0

nude

(II-I) I ann

,

r==1!11', ~ .. (p) (1'·1) a;;-I) (p-l) ,,'1 •• 1,':,))-1'llli

II aii ",aU ---(p.l) a pj -i '-

ap1J

II (0)

~~~~~~(~P~~~=·~1~,~2~.~.~.~.~./~l~-~J~;~l~·===p~+~1~.~,~.~ .. ~~~l.~:~.l~·~=~p~. ~+~. ~]~'~'~'~'~"~'l~:.~~~a~l~ .. ~=~a~i~j)~,~~

Intrucat toate elernentele situate sub diagonal a principal a a detcrminantului (4.3.2) sum nule. dezvoltand SHeeeS!V dupa prima coloana deterrninantul initial, apoi minorii ce corespund complcmentelor algebrice care apar in continuare ca factori. obtinern valoarea

74

Capitolul _lV. REZOLV AREA NUMERIC.~ A SISTEMELOH DE ECUA TIl ALGEBRICE LINJARE

A • (l) • • (1I-!)

a::::: a! 1 an'" a lin .

El I l' J {Ji (2f (n-I) I . lc nrocedeului .: cmenie c oiagona e a J I • a2i . a 33' •... , a 1111 se numcsc etemente pivot a e procec ell HI

Gauss.

La Iiccare pas p al procedcului descris s ._(1 presupus ca a ~~! if:: O. Acum, pentru a gcneraliza acest algorirrn, vom exam ina evcntuala situatic cando de excrnplu, la pasul p

• (p-l) " ~ . .

elementul a PI' = O. In acest caz, daca toate clementcle sirului

11'1) (1'-1) (pI!

a p.p , a 1'+1.1' .... , {[ll.p (43.4)

-unt nule. deterrninantul este cgal ell zero (proprietatea 2) si urrnatorii pasi nu se efccrueaza.

111s11. chiar daca valoarea la ~;)I:;t O. dar ea este ell rnult mai midi dedit modulele celorlaltc

• (1'-1)

elemcnre din acest sir, atunci in rezultatul impartirii la a p,p ~1 transformarii liniilor

urmatoare. VOl' aparea erori considerabile. Pentru a evita asa situatii, vom permuta linia p cu .inia ce corespunde elementului maximal dupa modul in sirul (4.3.4). Yom obtine un nou determinant, avand semnul schimbat 1'ata de eel anterior (proprictatea 3). Astfel. initializand prin 1 variabila Semn, la ficcarc permutare de doua Iinii vom schimba valoarea acestci

ariabile in opusa.

A A d ((0») (' . ~

cum, notan a!i" n = ai,i In» prczentam

schema generala a algoritmului de calcul al determinantului:

(1) (n-l )

&=Semn-all·a22·····ann·

(4.3.5)

I" .Lnitializare: Semn :::::1:

Se executii repetat, pentru p == 1.2 .... .n -1, urmiitoarea secventiit+umbritii) de instructiun i:

I 2°. Din ~irul (4.3.4) se selecteazii elementul pivot(al pasului p) $i pozi(ia lui (k)fn I acest #1', adicii se giise~te un as« element a ~-1) care satisface condi(ia:

I (P-I)I I (p.l)1 • lui;

a , .... 1' = max a ip , 1 ::::: p + n # se memoreazii pozi{ia k a ~

3° . Dacii a r;l) = 0, atunci : A := 0; Salt la p. 7;

4". ill ca: contrar: se schimbii cu locurile Zinia pcu Zinia k; Semn:= -Semn; 5° Se modificii determinantul conform formulei (4.3.3). pentru p curent;

{Tiniind cont de reprezentarea (4.3.2):} 6° . Se calculeazli:

7° , Sfdrsit.

I; 4 2
6 -1 2
Ii =
2 3 -1 0
1 0 Capitolul IV. REZOL V AREA NUMERICA A SISTEMELOR DE ECUATII ALGEBRICE LINIARI~

Exemplu, Sa se calculeze valoarea determinantului:

Rezolvare:

Yom aplica algoritmul descris mai sus ararand prin sageti transformarile efectuate consecutiv, iar, pentru comoditate, fractiile Ie vom reprezenta in forma ordinara:

Jl 2 4 2 1 (-:3~~ 3 6 -1 2 )1/3) I 3 6 -1 2
I 3 6 -1 2 2 4 2 1 0 0 8/3 ---113
..
Ll= 2 3 -1 0 2 " -1 0 =-~ 0 -1 -1I3 -4/3 =
.)
0 1 0 0 -1 1/3 113
3 6 -1 2 3 6 --1 2 3 6 -1 2
(-1) 0 -1 -1/3 --4/3 o --1 -1/3 -4/3 o -1 -1/3 --4/3
=( = = =
0 0 8/3 -1/3 (-114)' 0 0 8/3 -1/3 0 0 8/3 -113
0 -1 1/3 1/3 0 0 2/3 5/3 0 0 0 7/4
= 3-(-1).8/3·7/4 = -14.
Raspuns: A = -14. Function TimpulCurent:Real;

In continuare este prezentata in limbajul Pascal unitatea de program RezSEAL in care sunt incluse functia Determinant, destinaia calculului determinantului de ordiuul n prin reducere la forma superior triunghiulara, procedura Geu __ Matrice, care genereaza nleaior 0 matricc cu clemente intregi dintr-un interval definit prin extremitatile lui, precum si functia TimpufCurent care intoarce timpul curent In secunde.

{$N+} {Utilizarea coprocesorului matematic 80X871

Unit RezSEAL:

{Rezolvarea sistemelor de ecuatii algebrice liniare}

Interface {**********************************************************************}

Type Matricee Array] 1..100, 1..101] of Real; Vector =Arrayl l.vl Ou] of Real:

Function Determinant (n.byte; A:Matrice):Double; { Calculul dcterminantului J

{n --ordinul matricci patratice; A -rdentificatorul matricei patratice de ordinul n]

{Generarea matricei eu clemente intregi din intervalul dat [u, v J ) Procedure Gen_Matrice(n,m:byte; u,v:lnteger; Var AiMatrice);

{n.m -dimensiunile matricei: A -identificatorul matricei dreptunghiulare}

76

Capitolul IV. REZOLVAREA NUMERIC\ A SISTEMELOR DE ECUATII ALGEBRICE LlNIARE

End;

fori:=I tondo Det:=Det*af Lil; Det erminan t: =Det; End; {Determinant}

{Calculul conform forrnulei 4.3.5 }

! ~ ~~I~~:~I! ~a;!~:~ *** ** * ** * * **** * * *** * * ** * * ** * * * * * *** * * * *** ** * *** **** * ** * * *} Ii Uses Dos;

I Function Determinant; Var

Oct, temp, q, max.Double; i.j.p.k.c.byte;

Begin

Dct:=l ;

[Declararea variabilelor locale, auxiliare}

For p:=l to 11-1 do Begin

k:=p; rnax.eabstalp.pl);

For c:=p+ 1 top do {Cautarea elementului pivot in coloana curenta p}

if abs(a[c,p]» max then Begin max.eabsralc.pj); k:=c; End;

if max=O then Begin detenninanu=O; Exit; End;

if k-o-p then

Begin

det.e-det;

For j :=p to n do {Permutarea liniei k eu p}

Begin temp.eajp.j ]; a[p,jJ:=a[k,j]; alk.jj=temp; end;

End;

for i:=p+l to n do {Modificarea matricei conform formulei (4.3.3)}

Begin q:=a[i,pl/a[p,p];

For j:=p+l to n do

a] i,jl :=a[ i,j ]-q*a[ p,j];

End;

Procedure Gen_Matriee; Var

I

I

I ~

1 r unction TimpulCurent;

I! \ ar ore. minute, sccunde. sutirni.Word;

II B .

i egin ~~~~~-"

i.j.byte; Begin Randomize;

For i:=1 to n do For j.e l to m do

AI i.jl :=Round(Random*(v-u)+u); End; { Gen_Matriee }

77

~ . __ -==--C...-c o_' o o __ ~,,_'_, --~l

I Get'Timcrore, minute. secunde. sutimi); !I

I I ·~n~~::~ICur~~~!:-=}6[I)O':'orc+60':minute+secunde+o.0l "sutimi; jl

I (::::* ~ ~ ~~ ~~',;;~ ~c:~": * * '"' * <"* *' * ***' * * * ** * * * **'**** .. ** *" ** ** * ** *" ** ** ****')

~.~ O' __ .·_--c, .o_.=""~_~ ,_., ''''-'''''''', , 0 _' _~ 0_

Observatii:

i:. acest prngrarn ru. s--:tu;HriI!PIL zeroun SIJt.!

in anrerul func Determinant. inclusa In unitatca de prugram RczSE/\L" parumctru formal ,1\

intCf!ti(H-l:H a fn:-:1 declarat ca parametru valoare in scopul corccurudrnii apeiarii repetatc D acesrei functii

13 ap.icare» Kramer. cc \'3. f examinaui in paragruful urmaror.

Exemplu. Sf} se cornpuna un program care va

urmatorii determinanti:

I.. ! 12 4- '1 }. ~I
I~ ~l 2 1 s:
! l'i 6 - 1 2 t:1
6 -1 21 I;
,1.j= ., ul: A2 ::::; 3 -1 0 01.
12 0' -l I~ 31
0 ] 0
I] 1 I
I " 4 'j 6\
I I Pcntru rczolvare s-a uplicat programul P_4_3_1, ce urmeaza.

-."~-'-----"'--~-'---- -

{Utilizarea coprocesorului matcmatic 80X87}

reducerea la forma triunghiulara}

t Calculul detcrminantilor prin Program P_A_301:

Uses Crt RezSEAL:

I f (1'1\1 6""')0 0 f. -''',{f.('' I

II ! :1>1 -,.~, , n»)o'u ) j

Const

I u=-lO;v=10: i Var

I AtMatrice: DtDouble:

I

I Begin

I ;~~at

ClrSer;

[Setarea la maxim a dimensiunii segmentului stivei ]

ij.n.k.byie; St.Char: T:ReaL [Matrice.tip tablou definit in unitatea RezSEAL}

Write(,Dati dimensiunea deterrninantului nr. 'Jc,':'); Readln(n); WriteLn('Matricea se va tasta/genera ?, tlg'); ReadLn(St);

If St ='t' Then

Begin

WriteLn(,Dati elementele matricei nr.',k); For i:=l to n do

For j:=l to n do

Read(A[i,j)); ReadLn;

End Else Begin

78

Capiiolul IV. RELOLVAREA NUMERICA ,<' SbTE1\IELOR DE EUJAI II ALGEBRICE LfNIARE

r-- - I

\VritcLn; WrileLn('D',k,'::::',D:O: 11): WriteLn: meek): Writcl.,u:

Writcl.nrCalculam un nou determinant'). d/n'): ReadlnrSt):

1,li Until St<>'d';

End.

~~~~~~~=~~==~==

.. . .... ~~:='~~~. ,--'---~- - ' .... '-. -.- "11

(j~!:_l\1atnce(n:n,u,vA); .~ Generarca clementelor rnatnce: A} II

WnteLll' 'Matncea aenerata: !: 1"1

\ ~ , J

For i:,-"c 1 to n do I'i

Begin .1

For i:=l to n do I

Wrile(/~ll.j]:6: 1): II

\VriteLn;

End; ~

End; I!

'II

Tr=Timpulf.urent; Dr=Dcterrninantui.A); TimputCnrcm-T: I,

II

WritcLn: !i

II II II II _J

'=~"""""==""""""'" ._dJ

WriteLnf' Timpul de

,11 dererminantului :',k,":.;::·,T:O:ll);

S au obtinut rczultatele: A 1 ::::··14.00000000002; /\2:::: O.C)0000000009. Timpul de calcul

i Iiccarui din accsti 2 deterrninanti,

una) calculator

ell frecvenra ccasului

,dem L58 GHz, nu depaseste precizia tipului real. adica lO .," Se

Observatie: La apl icarca ni\)~;rail1L1iui P,,4_3_) ,in multe

Complexitatea algoritmului de calcul al unni determinant Vom cvalua numarul de

peratii aritmetice necesare pentru : \pusi'i mai sus. Pcntru a obtine zero

'I11C CLl (--, (i:)] /t'll] ) si Se aduna rezuh au.l la linin a n

.unultirc si n opcratii de adunarc. Obtinerca

'~ccsita n(n·-l)-I! opcratii de inmulrircrirnpartrre) S,l adunare.

e.iucerca detcrminantului la triunghiulara va ncccsua n(n-JH- (fl'- i )(n-·21+ .• +

-2·1 +(n--1) operatii de 'inmultirctjmpartire) ~i ntn l)t- , . +2·[ operatii de

determ inantulu i

.dunare. Deoarece

2·( ntn-: 1)+ (ll-l )(n-2)+ .. ,1-2·1 ) +(n·-I) z: 2(n--l) 'fl.' (n+ 1)/3 +(11·-1 )<ll~ penrru n > ':lulta ca reducerea determinantului 13 forma triunghiulara ;)IC cornplcxitatea temporala 0, fl3).

In asa mod, iimpul necesar pentru calculul unui determinant de ordinul n prin metoda : JUSS, aproximativ este proportional cubului ordinului respective. De exernplu, ~ntru calculul unui determinant de ordinul 100 1;1 un calculator ce executa 10' de operatii pe -.unda, va fi necesar un timp

T =- UJi'.]() 8 :::.: 0,01 ....

In realitatc acest timp va fi considerabil dCPU9it, deoarece in program. in afara de

'c"ra\iile aritmetice mennonate ex isra si alte i (celc implicate in realizarea

.c.rnutarilor de linii, calculul elementelor pivot pe coloane, salturi, operatii Iogice etc.).

Intrebari si exercitii

1, Care este deosebirea dintre determinant si matrice ?

79

Capitolul IV. REZOLVAREA NUMERJC4 A SISTE,\mLOR DE ECUATII ALGEBRICE LINIARE

2. Cu ce semne vor aparea 111 deterrninantul de ordinul n produsele elementelor: a) diagonalei principale ? b) diagoualei secundare ?

3. Fie matricea patratica A = (UiJ )11' Sa se cornpuna un program care va verifica justeta urmatoarei afirmatii: det (A) = det (AT);

4. Realizati 0 Iunctie In care calculul determinantului se va face prin reducerca lui la forma inferior triunghiulara:

5. Fie matricca patraiica A = (o"j)" cu clemente numere uuregi. Sa se modifice algoritmul de calcul al det(A) in usa mod, 'incat sa fie evirate operati ile de irnpartire.

6. Se considera matricea patratica A = (au)/1 si numerele naturale I si k, 1 <; l, k :s II Sa se compuna 0 functie care va calcula complementul algebric A/.k al elcmcntului a/.k din matricca A.

7. Se considers matricea patratica A = (ai,i )n. Sa se cornpuna cate un program care va calcula det (A) prin dezvoltarea determinantului dupa:

a) prima lillie a matricci A; b) prima coloana a matricei A.

Prin experiment b. calculator faccti 0 analiza comparati va a cornplexitatii temporale a programului elaborat cu cea a programului P_4_3 __ 1.

S. Fie pentru inversarea matricei nesingulare A = (ai,;)11 se foloseste un algoritrn bazat pe aplicarea teoremei 4.2.2 si a subalgoritmului de calcul al determinantilor prin reducerca la forma triunghiulara. Determinati complexitatea temporala a unui asemenca algoritm.

4.4. Ceneralitati despre sisteme de ecuatii aIgebrice liniare

Consideram urmatorul sistem de 11 ecuatii liniare eu 11 necunoscute: ailxl+a12X2+a13'\'3+"'+ a1nx,,==b1 a.'IXI+anx!+a23Xl + ... + a2nXII ==h, a3Ixl+ai!X2+a13x~+",+ a3nxn=b;

(4.4.1 )

unde aij ~I b; (i,j = 1 ,2, ... ,n) sunt nurnere reale. Sisternul (4.4.1) mal poate fi scris astfel: n

L a ii x j = b i (i = 1,2, ... ,17 ). ';=1 .

sau, tinand eont de regula inmultirii a doua matrice si de conditia de egalitate a doua matriee. sub forma vectoriala

Ax = b, (4.4.2)

unde A = (ai,,)1/ estc matricea cocficientilor neeunoscutelor. b = ( b ; b, ..... hn)T -

T -

vectorul-coloana al terrnenilor liberi, iar x = ( X:, X2, ••• ,xn) -vectorul-coloana 2..

necunoseutelor sistemului In studiu.

ISe numeste soltuie a sistemului ( 4.4.1) orice set de numerc £'1. £'2. ('1 ....• £'n. care

Ifiilld sUbslit/li~e /11 IOc/I~ necunoscutelor ~I' :2, ... '. x" din ecu(,"ri~le acest~/i s~stenl, .V(~ transforma jlecare dill aceste ecua(ll til egaluate lIumerlea adevarll/a, adieu

80

CapitolullV. REZOLVAREA NUMERICA A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

n

l:a .. c. = b. J=l IJ J I

( i = 1,2, ... ,n ).

Sistemul ill studiu se numeste compatibil; daca el are eel putin 0 solutie si -

incompatibil (contradictoriu). daca nu are solutii. Sistemul compatibil. 10 rdndul sau, "

poate avea una SO/I mai multe solutii si se numeste compatibil determinat daca arc solutie

uniuf, ior eel care are mai muir dec(lt 0 solurie -col1lpatibilnedetcrminat. J

Teorerna 4.4.l. Dacii matricea A este nedegeneratii, atunci sistemul (4.4.1) este compatibil determinat.

Demonstratie Conform ipotczci teoremei det(A):f:; O. Deci, In baza teorcmci 4.2.2, ex ista matricea inversa k'. Inmultind din stanga ambele parti ale sistcmului (4.4.2) ell matricea kl,obtincm

sau

(4.4.3)

care rcprczinta solutia sisternului (4.4.2). Intrucat fiecare solutie arc forma (4.4.3), rezulta ca ca cste unica, adica daca det(A):f:; 0, atunci sistemul (4.4.1) este compatibil deterrninat.

I Doua sisteme de ccuatii liniare ell acelasi numar de necunoscute se numesc I echivalente daca ambele sum incompatibile, sau ambele slim compatibile si all uncle si

I aceleasi solutii.

. .

! Se numesc transformiiri de echivaletuii ale sistemului de forma (4.4, 1) II rmatoarele

i .,

I operant:

I 1) permutarea a doua ccuatii ole sistemului;

i 2) iiimultirea ambelor parii ale ecuatiei sistemului prin oricare numar }1t'1I/1f:

, 3) adunarea /0 ambele parti ale unei ecuatii a partilor corespunrdtoarc ale altei

; ecuatii. inmultite prin orice uumdr.

Metodcle numerice de rezolvare a sistemului (4.4.1) pot fi divizate in doua clase: metode directe (cxacte) ~i metode iterative.

Metodele directe furnizeaza solutia prin efectuarea unui numar finit de operatii .irirmeticer astfel sunt. de exemplu, regula Kramer, metoda Gauss ~i modificarile ei si a.). Cele mai uzuale In practica metode directe constau in transformarea sistemului de forma (4.4,1) .mr-un sistem echivalent, rezolvarea caruia se simplifica considerabil. Mentionam, de .isemenea. ca acesre mctode asigura obtinerea solutiei exacte ~ = (Sl ';7' ... , s ?' doar In

~ n

cazurile In care datele initiale sunt exacte si calculele intermediate se efectueaza fara rotunjiri, lnsa, se stie ca la efectuarca operatiilor elementare pe calculator, de regula, apar erori de .otunjire, datorita carora metodele directe, in caz general, furnizeaza solutii aproximative. In .onsecinta, metodcle directe au dezavantajul ca la aplicarea lor exista pericolul acurnularii -ronlorr estimarca carora este foarte dificila), ceea ce poate devaloriza rezultatul foarte .rccvent. in cazul unui numar mare de ecuatii. Acest dezavantaj impune lirnitarea aplicarii .ietodelor directe la rezolvarea doar a sistemelor de dimensiune Il $; 200.

Metodele iterative constau in construirea unui sir de vectori

XI

fapilolul IY. REZOLVAREA NOMERJ(~,\ A SJSTEMELOR DE ECUATH ALGEBRICE LINIARE

.k , (( ,., k ,

"to-' ' ::: .... " 1i.1 V { .I

,/I,. ,~\.- I , .. 'i.. <~ , •

II. )T

.. , X 11 " ~

It :::: 0,1,2, ... convergent (dupa component e) catrc solutio

... , .: )1' a sisiemului (4.4.1). Stoparea procesului iterativ, adica

::.J '"

/I

trunchicrea sirului { X(kl }, arc 10e 1a un indice s, deterrninat pe parcursul calcului, in functie

de prccizia impusa, astfel. incat

( ~\ \

tcrmcnul curcnt X"

sa constituic 0 aprox.imatie

sa:isfitGltoarc a solutiei caurate ~. Printrc cell' mai raspfinditc metode iterative sum: metoda itcratici simplcrmcroda Iacohi) metoda Gauss-Seidel s.a

Merodele iterative sunt lipsite de ncajunsul indicat a CclOI directe, darin schimb ficcare metoda concrcta dintre acesrca au intotdcauna estc couvcrgcnta in aplicarea la clasc concrete de ccuatii. Ace-ire metod", sc u!ili:te1l2{lH conditiile asigurarii unei viteze sporite de convergenta). mal ales, pcntru rezolvarca sistcmclor "mari", de pana l» ordinul lCt.

4.5. Rezolvarca sistemelor de ecuarii liniare folosind regula lui Kramer

Considcrarn <istcmul liniar de n ccuaiii ell 11 necunoscutr

Ax=b,

(4.5.1 )

(III al!" • {[Ij' •• GIN

(I,: a~;., ••• a'j" .(l0ll

I a., ai.' , •• {lii'" {fll;

l .: .; ... .; i : : .~,:"

cstc rnatricea cocficicntilor (L: pe ![illgj nccunoscutc, b = (bl b, ..... bil)T iermcnilor libcri, iar x:·:: \ Xi' X.' , , • ,x/l) r =coloana necunoscutclonvcctorul C:1utJ1) Exprcsiu A = deliA) se numestc determinant principal al sistemului (4.5. J).

Fie matricca A estc nedegcncrata, adica A:j:. O. Atunci, utilizand formula

x= A'lb,

dcdusa pc parcursul dcmonstrarii teoremei (4.4,1), put em capata Iorrnule pentru calculul necunoscutei ecuatiei (4.5.1). Conform teorcmei (4.2.2),

£\.-1 - _!_. £\."

, - ~ , ,

... coloana

unde

estc matricea adjuncts matricei A,

81

CapitolullV. REZOI.V AREA NUMERIC-X. A SISTI~.lvmLOR DE ECUATII ALGEHRICE LINIAR~

Deci

1 *

x = .-- A b, sau

~

XI AI'
X2 - A21,
~ •
XII (4.5.2)

unde, asa-numitii determinanti secundariisau auxiliarii L~ ai sistemului (4.5.1) sc obtin din determinantul A prin inlocuirea coloanei j a acestuia ell coloana terrnenilor liberi b, adica au forma

II

Aj = LAijbi=

;",1

all aI2.·' alJI h, al.j+i·" alii a2, (In ••• a?,j.[ b : a2,j+i' •• a211 a31 a32'" aJ,j.1 b, a3,j+J ••• a311

(j = 1,2, ..• .n )

Din egalitatea (4.5.2) obtinemformulele lui Kramer:

_ AI _ '~2 _ A j

Xl - ~' X2 - A' .. . X.i - A '

Rezulratul obtinut poate fi formulat astfel:

(4.5.3 )

Teorema 4.5.1 (Regula lui Kramer). Dacii determinantul principal A al sistemului (4.5.1) este diferit de zero, atunci sistemul este compatibil determinat $i solutia sa se exprimii prin formulele (4.5.3).

Deci rezolvarea unui sistem liniar de forma (4.5.1) se po ate face prin calculul a n+l determinanti de ordinul n. Deoarece complexitatea temporala a algoritmului de calcul al fiecarui din acesti dererminanti este O(n3), rezulta ca complexitatea regulii Kramer este de ordinul 0(n4).

Mentionam ca forrnulele lui Kramer sunt convenabile pentru cercetari teoretice ale proprietatilor solutiilor sistemelor de ecuatii liniare, dar mai putin convenabile pentru aflarea numerica a lor, intrucat, pentru valori mari ale lui n, necesita calcule laborioase. In practica sistemele in studiu, de obicei, se rezolva prin alte metode, cum ar fi eele de tip Gauss, eu complexitatea temporal a. de ordinul O(n3).

Pentru calculul tuturor determinantilor, care intervin in regula lui Kramer, vom apela de 11+1 ori functia Determinant, inclusa in unitatea RezSEAL(Vedeti paragrafu14.3). Obtinem astfel programul P _ 4_5_1 care rezolva sisteme de ecuatii liniare compatibil determinate, folosind regula lui Kramer.

{$N+}

I Program P _4_5_1; Uses Crt, RezSEAL; {$M 65520,0, 655360} Const

{Utilizarea coprocesorului matematic 80X87} {Aplicarea regulii Kramer}

{Setarea la maxim a dimensiunii segmentului stivei}

83

,<,=apitolul IV. REZOLVAREA NVMERICA A SlSTEMELOR DE ECUATII ALGEBRICE LlNIARE

ClrSer;

Writer'ne'); ReadLn(n);

WriteLn(,Matrieea extinsa se va tastafgenera?, t/g'); Readl.nrSt); If St = r Then

Begin

\VriteLn('Tastati matricea extinsa:'); For i:=l to n do

For j:=l to n+I do

Read(A[ i,j]); ReadLn;

r-

i P = -10; q =: 10;

,! Var

i ArMatrice; X,v:Arrav[1..100j of rca I;

II •

I Dp.Double; n.i.j.byte: st.char; T:Real;

, Procedure Scriem.m.byte):

i Begin

I For i:=l to n do Begin

For j:=l to m do Write(A[ i,j]:6: 1); WriteLn;

End; End;

Begin

Repeat

End Else

Begin

Gen_Matrice(n, 11+ 1, p,q,A); WriteLn;

WriteLn(,Matricea cxtinsa a sistemului, generata aleator:'); Scriem.n+ 1);

End; T:= TimpulCurent; Dp:=Determinant(n,A); if Dp<>O Then

Begin

For j:=1 to n do Begin

"For i:= 1 to n do {Formarca determinantului nr. j}

Begin Ylij:=Ali,j!; A!i,j]:=Ali,n+l]; End; xU]:=Determinant(n,A)/Dp;

For i:=l to n do

Ali,j]:=V[ i]; {Restabilirea matrieei initiale}

End;

Writel.n; Writeln(,Solutia este:');

84

Capitolul IV. REZOLV AREA NUMERIC~ A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

For j:==l to n do WriteLn('xf',j,'l==' .xlj ]:0: 11); WriteLn;

End

Else

WritcLn(,Determinantul princ.==',Dp:O: 11); T:= TimpulCurent-T; WriteLn;

\VriteLn(' Durata de executie:',T:O:l 1); Writel,n:

WriteLn('Se va mai rezolva un alt sistem 't , din'); ReadLn(St); Until St<>'d';

End.

Observatie. Conform programului P __ 4 __ 5_1, afisarea la ecran a matricei A are sens direct pentru nS 12. :Jaca se doreste, programuI ar putea fi adaptat pentru inscrierea date lor de iesire intr-un fisier textual.

Intrebari ~i exercitii:

1. Culegeti , apoi lansati in executie programul P _ 4_5_1. Pcntru testare ar putea fi .olosite urmatoarele exemple:

2x + 2z + t = -6a.

x + y + z + t = 2a.

- 2x + 2y =t == 2a.

3x + y -z == 0

Sistemul este compatibil determinat pentru Va. E R: x = -2 o : y = 2 ex: z = -4 ex ; t = 6 a. ;

{Xl +rzr , +2X'J = 1 2) 2x) + 2x 2 + .r , = -1

Xl + x2 - X} = P

a) a. = 2; f3 :::: J: sistcmul este cornpatibil determinat:

X] =--3, x2=3,x3=-1;

b) ex == I; f3 == -- 2: sistemuJ este cornpatibil nedeterminat;

c) a == 1; ~:::: 2: sistemul este incompatibil. Poate oarc fi aplicata regula Kramer In cazurile b) si c) ale cxemplului 2) '!

2. Adaptati programul P _ 4_5_1 pentru afisarea mesajelor respective in cazurile: a) sistemul de ecuatii are 0 infinitate de solutiit 'Sistemul cste compatihil nedeterminat') ;

b) sistemul nu adrnite nici 0 solutief'tSisternul este incompatibil");

ill continuare, eventualul program ce va reflecta modificarile programului P _ 4_5_1. va .umit P _4_5_2.

3. Se considera numarul natural 11::; 100 si setul de numere reale Xi (i = 1 +11). Sa se : _:,oreze 0 procedura care va genera aleator 0 matrice A de dimensiuni n x (n+ 1), care va '~-:-:czenta matricea ext ins a a sistemului de ecuatii algebrice liniare cu solutia = ( x I' X 2 , .•• , X n ) T. Matricea generata se va mernora in fisierul textual Matrice.dat.

85

allXI+al X2+ aI3X3+···+alnX,,=a1,n+1 a21X, + all X:+ an X,+ ••• + a2n X,,=a2.11+1 all Xl + a12 X2 + a_;l X3 + ... + a3n Xn == al./Hi

(4,6.1 )

4. Modificati programul P._4_5_2 in asa mod, incat acosta sa admita alternativa de a rezolva sistemul de ccuatii, rnatricea extinsa A = (Alb) a caruia se va chi dintr-un fisier textual. eventual din Matrice.dat, creat conform subicctului 3. Prograrnul va afisa solutia x* a sistemului, prccum si cornponentele vectorului Ax*-b. unde A si b au semnificatiilc desemnate pentru ccuatia (4.5.1).

5. Dad! In anietul functiei Determinant parametrul valoare A se va transforma ill parainetru variabila, atunci programul P.A_5 __ 2 va furniza rezultate eronate. Verificati aceasta afirrnatie ell ajutorul tcstelor $i cxplicati fcnomenul in cauza.

6. Rulati programul P _ 4_5.2 ell diverse valori 3]C lui n i: 1 no. variind, de asemcnca, extremitatile inrervalului !p,q] tipul elementelor tabloului A si a variabilci Dp, Descrieti rezultatul cercetarii.

7. Care sunt sugestiile constructive ell privire la posibilitatca de a rezolva In limbajul Pascal sisterne de ecuatii algebrice liniare de dimensiune 11> 1 OO? Dati propuneri In vederea realizarii.

4.6. Metoda eliminarii succesive (Gauss)

Consideram un sistem de 11 ecuatii liniare eu 11 necunoscute prezentat sub forma:

In ipoteza ea sistemul (4.6.1) este compatibil determinat, metoda Gauss de rezol vare porneste de la eliminarea succesiva a lui XI din ecuatiile acestui sistem incepand ell a doua. apoi se elimina X2 din ecuatiile obtinute, incepand eli a treia si a.m.d.

In rezultat, se obtine un alt sistem, echivalent ell eeJ initial:

all X2 + ai, Xl + ... + alII XII

(1) (1) (1)

a 22 X2 + a 23 X3 + .. , + a 3n Xn

(2) (2)

a.B X3 + ... + a 3n Xfl

== a) n+)

= a~l)

,_,n+l

(2)

= a 3.11+)

(4.6.2)

a (n-i) _ (fl-l) nn Xn - a n.n+i

Este clar, ca efeetuarea aeestor transformari este echivalenta eu efeetuarea transforrnarilo: de echivalenta respective asupra liniilor matricei extinse A a sistemului (4.6.1). In acest sco; poate fi aplicat proeedeul de calcul al determinantilor, adica transfonnarea matrieei

86

CapitoJul IV. REZOLVAREA NUMF:RIC\\ SISTEMKLOR DE ECUATIl ALGEBRICE LINIARE

in mauicea:

A=

ra! I a I 2 a JJ. • • a:j , • • a ill a i.ll+; 1 I a21 a22 an ••• a~i ••• {Lit (/2,/1+1 a., a;, (/1,' •• aV •• (J'1l ({,,iI'" I

ani att:> an, ... a"j' .. all II a/l,1I H) .nlizand forrnulcle:

i'---~~'--"'-~""--'--_----~-"--'=~---' _.,. _-" _. -

1

,

------"='''''''''''''=~l

; / 1:1' II ,4.,).,1) Ii

.. ,J

a

, .. .. . ~ 1 ' 1 ~, ! - ~~ {{n

( p ::;;: 1,2" , .,n --I ; l = P +. " ... tl ; .I ::;;: P + .. , .. ,Ii' ,« U :::: a

. -nilare ell (4.3,3).

Sistcrnul ( 4.6.2) sc poate rezolva succesiv, incepand ell valoarea lui x.; care se deterrnina _,:l ultima ecuatie, apoi valoarea gac,iti'i se substituie III penultirna ecuatie. din care aflarn pc ,'j rsa 1'1"; departe Tn rezultat i'~Il"Cl';1'11

_ <' _ _:.~"~. :..:_~~ I _,~.:~._ • _ . 1 . ~ __ ~. ~_~ " .;__'_ l' Ui-fc_ A

_

Procedcu) de reducere a sisiemului (

: tecta it metodei Gauss. iar . _":c~tei metode, rcalizata conform formulelort-l.o.a)

Remarca. Nu C ncaparat de \Tpf~Cdr compatihilitatca sisre.nu.lui 'in snunu. .nainre de J aplica metoda

_ c , d\:i:;~\.rt(\: cvcntuala egalitatc cu zero a delcrn1;nantuluip<'~~lleri 1n proccsul rc;_\!~z?\rii

~ i ~l~CH:.

Realizurea fazci direcre prin intermediul formulei ( ) neccsita

2'((n+ 1) -n + 11' (n .. -l ) + ... +2·1) +(ll--l) :::: 2, /1' (n+ 1), (n+2J/3 +W-l)<n'

-peratii aritmetice, adica

aduccrca xistemului la forma

arc complcxitatca lui dupa formula

'1 J, iar a cclci indirecte necesita n(n·---l) opcrarii antmer ice, - -:.-+) ure complexitatea O(n2).

Decimetoda Gauss are complexitatea O(n')+ O(Jl2) :.:: O(ll').

.. contmuare esre prezentata in limbajul procedura Gauss: considerata

-:·.)onenta a unitatii de program RezSEAI,), care rezolva srsreme de ecuatii liniare, . sind algoritrnul expus mai sus:

, ------_.. -~ ._--"_.. - -_-._ - .. ~:.- •.. ~.

{Rezolvarca sisiemelor de ecuatii liniare prin metoda Gauss}

Procedure Gauss(n:byte; A: Mattice; Var XiVector: Val' Daboolcan);

t n-numarul de ecuati i; Avrnatricca ex tinsa a sistemulu i; X· vectorul necunoscutelor; Daetrue daca determinantul principal este <>0, altfel Da=false]

"I

I

,

I

I

11,7

Var

temp, q, max: Double; i.j.p.k.c.byte;

Begin { Faza directa} Da.etrue;

For p:=l to n do

Begin

k:=p; max.eabsta] p,p J);

For e:=p+ l to n do {Cautarea pivotului in eoloana curenta p}

if abst a] c.pl c-rnax then

Begin rnax.e.absral c.pjj.k.ec; End;

if maxeO then Begin D~~:= false; writcl.nr'Deterrninantul pr.:::',O); Exit; End; if p<>k then

Begin {Perrnutarea liniei k ell p}

for j:=p to n+ 1 do

Begin tcmp.ealp.j]; a[p,jj:=a!k.j]; alk.jl.etemp; end; End;

{Declararea variabilelor locale, auxiliare}

Capitolul IV. REZOL V AREA NUMERICA A SISTEMELOR DE ECUATU ALGEBRICE LINIARE

for i:=p+ 1 to n do Begin

q=ali.p I/a[ p,p I;

for j:::::p+ 1 to 11+1 do a] i.j ]:=a[ Lj ]-q*a[p,j I;

End End;

{ Faza indirecta } x[n]:=a[n,n+1 J/a[I1,111: for i:=n·l down to 1 do Begin

q:=a! i.n+ 1 I;

for j:=i+l to n do q:=q-a[Lj)*x[j]: x[iJ:=q/a[i.i); End;

End;{Gauss}

{Modificarea matricei conform formulei (4.6.3))

o varianta de aplicare a metodei Gauss este cea realizata prin programul P _ 4_6_1.

{$N+}

matematic 80X87}

{Utilizarea coprocesorului Program P _ 4_.6_.1; [Aplicarea metodei Gauss la rezolvarea

sistemelor de ecuatii liniare}

Uses Crt, RezSEAL; {$M 65520,O,655360} Const

p=-1O; q= 10;

{Setarea la maxim a dimensiunii segmentului stivci}

Capitolul IV. REZOLVAREA NUMERIC.'\ A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

End else

Begin

GcrrMatricetn.n+ 1 .p.q.A); WritcLn;

WriteLn(,Matricea extinsa a sistemului, generata aleator:'); Scrie(n.n+ 1);

End;

T:= TimpulCurent; Gauss(n,A,x,Da); T:= TimpufCurent-T: WriteLn; WriteLn(, Durata de executie:' ,T:O: 11); WriteLn;

If Da Then

Begin

WriteLn; Writelnr'Solutia este:'); For j.e l to n do WriteLn('x[',j,']::::',xU]:O: 11);

WriteLn; End;

WriteLn('Se va mai rezolva un alt sistern ?, din'); RcadLn(St);

I lJntil St<>'d';

l!~~_. ,..-=_ """'_"""_ ==

Var

A:Matrice; XrVector;

n.i.j.byte; st.Char; s.Double; .Da.boolean; T:Real; Procedure Scrie(n,m:byte);

Begin

I For i:=1 to n do Begin

Forj:=l to m do Write(A[i,jj:6: 1); WriteLn;

End;

End;

Begin

Repeat ClrScr;

Write('n='); ReadLn(n);

WriteLn(,Matricea se va tasta/genera?, t/g'); ReadLn(St); If St::::'t' then

Begin

WriteLn(Tastati matricea extinsa:'):

For i:=] to n do

For j:=l to n+I do Readt A] i,j J); Read!n;

Capi!olul IV. REZOLVAREA NUl\IERICr\ A SISTEMELOR DE EClJATII ALGEBRICE LINIARE

Intrebari si exercitii:

1. Testati programul P _ 4 __ 6_1. in accsr scop ar putea fi folosite urmatoarelc exernplc:

j( 2x . + 2z + t == -6a

1 _ x + V + Z + t == 2a

) .

1-2x+2y =t =2a

l 3x + 'y - z = ()

Sisternul este compatibil determinat pentru Va E R: x == -2 a: )' == 2 a: z = -4 a ; t = 6 a;

rO+2a)X; +(l+3a)x2 +ax, +(a-l)x4 =3

~ 3a.x: +(3+2a)x" +ax3 +(a.-I)x4 == 1

I 3ax~+ 3ax}+3x3+(a-llx4=1

l 3ax!+ 3ax_,+cxx,+(a-·i)x4=I

Daca a 1; 1 si ex,:f: 3. sistcmul arc solutie unica:

x, =: 21(3 o.), X2::::: .r, := 0, X4 =(3 -- 7 ex )/( a --1)/(3-- a). In caz contrar: Ll:::: O.

2. Elaborati lin program care va rczolva un sistem de ecuatii liniarc, matricea

coeficicn]i caruia esre de forma inferior triunghiulara.

3. considera numarul natural n s:: 100 si setul de numcre reale Xi (i = 1 +n). Sa sc

i0rnpun8 0 procedura care va genera alcator 0 matrice A de dimensiuni 11 X (n+ 1), care va reprezenta rnatricea extinsa a sisternului de ecuatii algebrice liniarc ell solutia X"' ::: (Xi' X.',,, "Xii {. Matricea generata xc va memora in Iisicrul rextual Matrice.dat.

4. Modilicari programulP ! 'in U?8 mod. inca: acesra s~\ adrnita alternativa de a

rezolva sistemul de ccuatii, matricca extinsa A;:;.: (Alb) a caruia sc va citi dintr-un fisier textual, eventual din Matrice.dat, crcat conform subiectului 3. Programul va afisa solutia x* a sistemului, prccum ~i cornponentelc vectorului Ax*-b, unde A si b au semnificatiile desernnate pentru sistemul (4.51).

5. Rulati, cu acelcasi valori n -::; i 00, programele P _4._5_1 si P _ 4_6_1, adaptate pentru utilizarea matricei extinse A, gcnerata aleator, Comparaji duratele de executie a calculelor (excluzand operatiile de intrare-iesire), efectuate dupa aceste programe, pentru valori cornune ale lui n .

6. Metoda Jordan de rezolvare a sistemului (4.6.1) in faza directa utilizcaza formule de calcul similare eu (4.6.3), deoscbirea constand In Iaptul ca indicii p ~i i variaza in alte limite, astfel, incilt (4.6.1) sc reduce la un sistcm de forma diagonala Dx = c, unde D cste rnatrice diagonals de ordinul n, adica du = 0 pentru i:f:: j. Evident, faza indirecta se va sirnplifica: daca

det(A) '# 0, atunci Xi =~_, i =1, ... .n. d ..

11

Sa se elaboreze 0 procedura care va realiza metoda Jordan.

Capitolui IV._REZOLVAREA NUMERIC;\.:\ SISTEl\fELOR DE EClJATII ALGEBRICE UNIARE

4.7. =Metode iterative. Notiuni introductive

,

Regula Kramer :;;i metoda Gauss examinate 'in paragrafele precedente, III I au consrituit ccva nou. iar studierea lor, reducandu-se la 0 sisternatizare a cunostintclor din algebra de clasa a XI-a, le-a dat 0 forma algoritrnica. Metodelc iterative, ce vor fi pre zen tate iu continuare, constituie 0 abordare coruplet diferita a rezolvarii sisternclor de ccuatii algebrice Jiniare. Ceca ce aduce nou materia care urrneaza in acest paragraf, fata de cca cuprinsa in manualul de maternatica. se refera la cunosrintele care vor veni in sprijinul prezentarii ulterioare a materiei.

in 0.4.1 am dcfinit vectorii ca matrice particulate cu 0 sinsura lillie sau coloana. In

" ~

conrinuare vorn opera cu vectori-coloane n-dimensionali. Evident. operatiile de adunare ~i

inmultire ell un scalar, definite pentru matrice, se extind si asupra vectorilor.

iD~finiti{:.--MlIllimea tuturor vectorilor 11 =dimensionali, pentru care sunt definite

I operatiilc iumuliirii vectorului ell un scalar si adunarea a doi vectori. se numeste spatiu i vectorial; if notam cu R".

Un sir {X(k)} de vectori din RII are aspeetu!:

11)

, x' =

(k) ... ,x

, ...

,'eea ee reprezinta, de fapt, Il siruri de numere reale.

Se spune ca sirul {x(k)} converge la ~= (~ ,~ ,. '" ~ f' daca sirurile eomponcnte din

1 2 n

x(k)} sunt convergente respectiv la componentele vectorului ~: limx;k) = ~i (i =1, 2,.",11).

k-oo

Definitie. Numim norma a matricei A = (aU)n x m, numarul real definit prin:

111 n

IIAIII == ~nax}:1 aij I sau IIAI12 == max LI aij I·

I =1+11 j=1 J =1+111 ;=1

Se observa di JJAII e = 0, (e = 1,2) atunci si numai atunci cand matricea A este nula, adica .oate elementele ei sunt egaJe eu zero.

Exemple. Sa se determine normele urmatoarelor matrice:

( 1,2 -3

A = 0,5 0,1

0,01 3

2 1 J

0,4 ° ;

-0,1 -1

x= [rhJ.

0,7

Rezolvare: IIAIII = rnax(1,2 + 3 + 2 + 1; 0,5 + 0,1 + 0,4 + 0; 0,01+3+ 0,1 + 1) =7,2; IIAI12= max(1,2 + 0,5 + 0,01; 3 + 0,1 + 3; 2 + 0,4 + 0,1; 1 + ° + 1 ) =6,1;

IIxll t = rnax(l; 2; 0,4; 0,7) = 2; IIxl12 = 1 + 2 + 0,4 + 0,7 = 4,1.

91

Capitolul IV. REZOL VAREA NLTMERIC\ A SISTEMELOR DE ECUA TIl ALGEBRICE LINIARE

Metodele iterative de rezolvare a sistemelor de ecuatii liniare permit de obtinut solutia sistemului ell prccizia prescrisa prin trunchierea unui sir convergent de vectori. Proccsul de construire a unui asa sir se numeste proces iterativ.

Exercitiu. Elaborati 0 procedura care va determina normele unci matrice date.

4.8. =Metoda iteratiei simple( Metoda Iacobi )

In acest paragraf vom examina una din cele mai simple met ode iterative -metoda Iacobi. Fie dat sistemul

{alIXI + al2 X2+ ••• + a.; X/1 = b, a21Xj+a22x2+ ••. +a2nxn=b2

ani x, + an2 Xc + ... + an.n Xn == b».

(4.8.1)

pentru care se presupune ca matricea A = (aiJ)/I este nedegenerata, Efectuand transformari de echivalenta a sistemului (4.8.1) obtinern sistemul de ecuatii:

XI =UIIXI+ a12X2+ ••• + alnX/1+ /1 I

(4.8.2)

X/1= a,lIXI+ Un2X2+"'+ an,IlXn+ fJ , 11

numit sistern redus la forma standard. Introducand notatiile a= ( aU ),,,

P = (PI' Pc' .... Pn)1', X = (Xl. X2, .. , . X/1)T, scriem sisternul (4.8.2) In forma matriciala:

x = ax + IJ . (4.8.3)

Constatam ca partea drcapta a sisternului (4.8.3) defineste 0 aplicatie F: y = ax + fI care transforma vectorul X al spatiului vectorial RI1 'intr-un vector y al aceluiasi spatiu.

Metoda in studiu consta In urmatoarele. Considerand 0 aproximatie initiala arbitrara X[OI E RIl a solutiei exacte a sistemului (4.8.1), cu ajutorul aplicatiei F determinam 0 noua

aproximatie X(l) = ax'o! +p. Avand pe Xiii, determinam X(21=ax(]1 +P etc. Suntern condusi astfel ia urrnatorul procedeu iterativ

x'/"= a x(k-ll+p, k= 1,2, ... , (4.8.4)

care ;;i constituie metoda lacobi.

Siru]

X

i 1 (2)

.X .x

xrk)

( 4.8.5)

gencrat de formula recurenta (4.8.4). pornind de la aproximatia initiala r ?". este denumit sir al aproximatiilor succesive.

Exemplul T. Fie sistemul

92

Capitolul IV. REZOLVAREA NllMERIC:\ A SISTEMELOR DE ECllATIl ALGEHRICE LlNIARE

pe care prin transformari de echivalenta il reducem 1a forma (4.8.2), anume

{Xl::::3Xl- X2- X3- OJ X2:::: 3XI - 3X2 + X:; - 0,2 Xl:::: XI-X2-0,3

Considerand 0 aproximatie initiala. de exemplu, vectorul x(O) :::: (0; 0; OJ!,

(4.8.6)

substituim

componentele lui in partea dreapta a sistemului (4.8.6) si efectuam calculele respective. Obtinem componentele unui nou vector X(I) == (- 0, I; - 0,2; - O.3)T. Utilizand Xii) in calitate

i2I ·T· ~

de vector initial, se va obtine urmarorul vector x == (0,1; - 0,2: - 0,2) ~l a.rn.d. In asa mod

se va genera un sir de aproximatii succesive: xIO):::: (0; 0; Of', x II) = (- 0,1: - 0,2; - OJ?

xe) :::: (0,1; - 0.2: - 0,2)T, ...

Teorema 4.8.1. Dacii sirul (4.8.5), generat conform formulei (4.8.4), este convergent >i ~= lim xlk) .atunci ~ este unica solutie a sistemului (4.8.1).

k-oo

Demonstratie, Trecand la limita in (4.8.4), obtinem ~ verifies sisternul (4.8.3), deci ~i sisternul echivalent (4.8.1).

a~ + p. Prin urmare, ~

Prezentam fara dernonsrratie urmatoarea teorema.

Teorema 4.8.2. 0 conditie suficientii de convergentd a sirului (4.8.5), pentru x(O)

arbitral', este ca Iiall 0 < l , (e =1.2).

Evident, respect area conditiei prezentate de convergcnta a metodei Iacobi depinde de nodul in care a fost construita matricea a. Pentru asigurarea convergentei, de obicei, xe ~r()cedeaza astfel. Sisternul initial (4.8.1), prin transformari de echivalenta, se reduce la un .: stern cu rnarricea A == (aiJ)" diagonal predominantii, ecea ce aici va insernna ca elementele ~c pe diagonala principala satisfac macar una din conditiile:

n

laiil> Ilaijl (i:;:: 1,2, ... ,11 ) i=1.

loF-i

(4.8.7)

,..lLl

II

lajjl> Ilaijl (j == 1,2, ... .n ). (4.8.8)

1=1. i¢.j

::c continuare, din prima ecuatie a sisternului obtinut se determina XI. din a dona XL ~i a.m.d. ;,tfel forma standard (4.8.2),111 cazul examinat, sc construieste eu ajutorul formulelor

Pi = b/aii, aU = -au/aii. pentru i =i si aii = 0 (i,j = 1,2, ... ,Il). (4.8.9)

::: rezultat, conditia de convergenta poate fi formulate prin referinta directa la elementele ·'.atricei A.

Teorema 4.8.3. Dacii matricea A a sistemului (4.8.1) este diagonal predominantii. .ar sistemul (4.8.2) se determind prin transformiirile definite conform formulelor (4.8.9), ctunci procesul iterativ (4.8.4) COil verge ciitre unica solutie pentru orice x\(J) E R" .

93

D!illt!lluJ IV ,_8_f,ZOLY AREA N(J]VlERIC\ A SrSTEMELOR D;:; EC{JATII ALGEBRICE LINIARE

Observatic. On proces iterativ convergent se bucura de importanta proprietate de autocorectare ceca cc insearnna c{l aparitia unci crori izolate In calcule, care nu se va rcpeta in continuarc, nu va influenta solutia finala, deoarcce 0 aprox imatie obtinuta gre~i.l poate fi considerate ca 0 aproximatie initiala noua.

Exemplul2. Pentru <istcmul

{ <lx! - O,2x;> + 0,3x, ::: 8.1 0, 1xI + 5,'\:,·- 0.2"0, ::c 5

C\ •. •• \ . . '\

J,:->X, + 0,) lX.' - X.1::: (), .. J

sal!

{~: =: _ o.O~'.~.2-.0'07 ... ~X\.+ 2,025

.\; _. O,OLl, + 0,04.\3 + J

X1= O.5xl+0,51x,--O.51,

procesul itcrativ

{X :.'''. =: 0.05x' ~k-I 1 _ (),07. 5x \k-.I) + 2,025 .(k) =-() ().) 1/..-·11 +0 ()4v,h-.11 -/.1

x2 ,~XI ' ''',

.".Ik) == ') c",k-il + () 51x(k-11 __ 0 ')]

/. 1, \_ ~_L\, I . ~? ,-

(k = 1,2, ... )

converge catre UIlIC<1 solutio pcntru oricc aproximatic initialil X(II), datorita Iaptului ca modulelc coeficientilor diagonal; ai sistemului initial, dcsi nu satisfac conditia (4.8.7), 0 satisfac pe (4.8.S):

lalll > la:" i +Iaill (4) 0,1 + 0,5): /a ,J> lal11 +lai21 (5) 0,2 + 0,51).

la"i> laDi +ia:o,\ (1 > fJ,3 + 0,2).

Exemplul B. Sa xc reduca la forma cu matrice diagonal predominanta urrnatorul sistem

Rezolvare. Efectuand urmatoarele transformari de echivalenta

(I) = (A) + (H), (II) = (C),

(III) = 2·(A) + (C), obtincm sistemul

care, evident, are matrice diagonal predominanta atat pe linii, cat si pe coloane.

Eficacitatea aplicarii metodelor iterative depinde de alegerea vectorului initial si de viteza de convergenta a procesului.

94

Capitolul IV. REZOLVAREA NUl\JERlC,\ A SISTEMELOR DE ECUATII ALGE.J;lRICE LiNIARE

Estimarea erorii metodei Iacobi

Este adevarata urrnatoarca afirrnatie:

Teorema 4.8.4. Fie ecuatia (4.8.3), iar q este una din normele linll J sau Ila112' Dacii ~ este solutia sistemului (4.8.1) # q < 1, atunci au foe urmiitoarele incgalitiui:

\1 .

He'

(4.8.10)

il Ik) ,.i! < q Ilil'X(kl._ .r (k-liliil

il.\;· - ql ~. -------.,

'i IIG 1--. q I 16

(4.8.11 )

( k z. L o =:: 1 sau 2 ).

Sa exarnmam inegalitatea (4.8.10l. Partea dreapia il ci reprezinta 0 croarca absoluta a aproximatici x 'k) . 0 noraru pnn I'k. Este justa relatia rk +1 :=: qri; unde rk,+l este eroarea

t 1 ~ ..., k+i I D' l' I' . < • •

a )SO uta a aproxrmanei X' , co procesui uerauv converge cu viteza progresiei geometrice

care odata ell tindcrea rariei q 1 a zero.

estimarea apriori {l. erorii procesului Iacobi, apelarn din nou la inegalitatea

(·:.R.I0),

stat/itn

caiculul

1 <. ~ (' j: j: \ T ..

so uuc, t,= . .,., , .. ,.." l eli

j 11

PI"CCI"ZW data E, procesul (4.8.4) trebuie continua: pima /0 prima valoare a lui k, cure satisjacc inegalitatea k

q 1'1 (i, (fl"ll.

~----- i!X'" - x ' 'I 50 E ,

l-q 1, ,0

sau dacd XW):::: /1 ~ atunci:

('(I;~ in care

r- /1 l

, I £(1 ,-- q) I

It = i In ------- Ilnll

" I 'Iip!\ ' A I'

L H La J

(4,8.12)

Exempluljl. Revenim la sistcmnl exarninat In excmplulj? din paragraful curent:

san

{ (, f)' F o ()-'J;: '2 o 2'"

x 1.= J'I.' J.\.~.! - J, ,_'x, T, ,\ _

x: :::' - O,01.x·1 + O,U4X3 + J

!... Xi:::: ().5.~;+O,Slx)-U.51.

Sa se determine numarul de itcrarii k aJ procedeului (4.R.4: nCCC,;)1 pentru obtincrea solutiei sisternului In studiu ell exactitatea E :::: 0,0001.

Rezolvare.

r 0 0,05

a= -0,02 0

i ('5 ()::;1

\. <.J,.._ '". ,J . __

all] = maxtf + 0,02 + 0,5, 0,05 + ° + 0,51; 0,075 + 0,04 + 0) == 0,56 < 1;

._ 0,075'\

0,:;, J

1'2,025\

P == 1 I:

l-O,51)

q = 0,56:

pl12 = 2,()25 + 1 + 0,51 = 3,535. Acum, folosind formula (4.8.12). obtinem

95

Capitolul IV. REZOLV AREA NUMERIC'\' A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

k-lrl €(1-q)/l l_ [I 0,0001.'0-0,56)/1 (()S6)l = 19 - n IIpl12 iiq J - n 3,535 n "- J - .

Raspuns: k =.: ] 9_

Daca sefoloseste estimarea aposteriori a erorii. atunci, conform inegalitatii (4.8.11), se va continua calculul sirului {X(k)} al aproximatiilor succesive paml cdnd se va veri/lea conditio

(4.8.13)

Observam en pentru q s; ~relatia (4.8.13) capata forma Ilx(/') - X(k--111Ie S; E,

sau dupa componentc

(4.8.14)

Metoda Iaeobi este cornoda pentru a fi programata la calculator, insa nccesitatea reducerii prealabile a sistemului de ecuatii la 0 forma specials cu verificare a conditiilor de convergenta, in cazul valorilor mari ale lui Il face dificila aplicarca ei practica. Tinand cont de faptul ca conditiilc de convergenta nu sunt necesareradica proccsuJ iterativ ar putea converge si la nesausfaccrea acestora), In practica, ca criteriu de oprire a procesului iterativ. Irecvent se folosestc conditia (4.8. J 4), In loc de (4.8.13), indiferent de valoarea q < 1, iar pcntru asigurarea precizici prescrise E , accasta se inlocuieste printr-o valoare mai mica, de exemplu, prin 0,1· E. Pentru a evita .ciclarec" progrumuluirin cazul daca procesul iterativ este divergent) sau un numar neacceptabil de iteratii (cand procesul converge foarte incet), din start se stabileste 0 limita a numarului de iteratii.

Mai mult, pcntru a cvita munca manuals pregatiroare in vederea reduccrii sistemului initial la forma standard, este rational de indus aceasta etapa a procesului de rezolvare in program, iar coeficientii necunoscutelor si termenii liberi ai sistemului de ecuatii de introdus In calculator conform reprezentarii (4.8.1). Respectarea conditiilor de convergenta nu se verifica, dar totusi este necesar de transforrnat sistemul In asa mod, incat coeficientii diagonali sa fie diferiti de zero, si inca mai binc, daca vor fi predorninanti dupa module macar 1'a1"1 de Iiecare din ceilalti coeficienti din ecuatiile respective.

In continuare se prezinta in limbajul Pascal procedura Iacobirconsiderata cornponenta a unitatii de program RezSeal). care rezolva sisteme de ecuatii liniare dupa metoda Iacobi Cll estimarc aposteriori a erorii, conform conditiei (4.8.]4).

{Rezolvarea sisternelor de ecuatii liniare prin metoda Jacobi} Procedure Jacobi (n, Nmax: Word; A:Matrice; Eps.Real; Var c.Word:

Var X'vector; Var DN:boolean ):

{ n-numarul de ecuatii; Nmax- numarul admisibil de pasi; A-matricea extinsa a sistcmului; Eps-precizia prescrisa de calcul; c-numarul de iteratii efectuatc:

III', -==X"",' -~V"",C""c=t ~"") I""U"",1 "",1",,1 C"",'C",,' l""ll""l (""i :'",,' C""u"",t e""I"",O"",r",,: ""D""N""'".,-l,,,,) 1",,' il,.,l*,l C""s"",tc"",' ,;"v""a",,1 (",,)"'=' r""C,U",,,,,l,,,,-l,,,,,Li,,,,C,,,,d,,,,· ~""h"",,' a"",~"",."",a""d""e""t""c""n=11""i t""1',,,,1 t"":"'",,,' O"",l"",li"",t i",,'-l==l_ cu precizia data in limita admisa de pasi }

()6

CapitolullV. REZOLVAREA NllMERICA A SISTEMELOR DE RCllATn ALGEBRICE LlNIARE

{Declararea variabilelor locale}

-

Var Y:Vector; i.j:Word; T,Max:Real;

Begin

For i:=1 to n do

Begin 1':= Al i.i];

For j:=l to n do Aii,j!:=-A[i,jjfT;

A] i.n+ 1] :=AI i.n+ 1 ]/T; AI i.i] :=0;

End;

For i:=l to n do X[i]:=A[i,n+l]; c:=o;

Repeat

For i:=1 to n do Regin

T:= A[i,n+l]:

For r= 1 to n do 1':=T +A[i.jj*X[j];

Yl i]:==T; End; c.ec+l ;

{Controlul apropierii}

I Max:=Abs(X[ 1]- Y[ 1 J);

I For j:=2 to n do

Begin T:=Abs(Xlj]-Y[j]); If T>Max Then Max:=T; End;

I x·-y· {Transferarea valorilor ]

i Until (~1a~<=Eps) or (c > Nmax):

i DN:= c-o-Nmax: "

It End; {lacobi} ===:lI

{Formarea matricei standard}

{Construirea aproximatiei initiale}

{Calculul unei noi aproximatii}

o varianta de aplicare a procedurii Jacobi este cea realizata prin programul P __ 4 __ 8_1 prezentat mai jos, Datelc de intrare pentru acest program se citese dintr i-un fisier text eLI .mnatoarea structura: prima linie a fisierului contine 2 numere de tip Word, separate prin -patiu, reprczentand respectiv, 11 -riumarul de ecuatii si Nmax -riumarul maximal admis de nasi: fiecare din urrnatoarele 11 linii coniine cate 11 + 1 nurnere reale, separate prin spatiu, constituind liniilc rnatricei extinse a sistemului, iar in linia n + 2 sc contine numarul real Eps-preeizia prescrisa.

{$M 65520,0,655360} {Setarea la maxim a dimensiunii segrnentului stivei}

Program P _4_8_1; {Aplicarea metodei Iacobi la rezolvare sistemelor de ecuatii liniare} Uses Crt, RezSEAL;

Var A:Matrice; X:Veetor: i,j, n, Nmax,c:Word; Eps,T,D:real; F:Text; Dn: boolean; St: string;

Begin ClrScr;

WriteLn(,Dati numele fisierului: '); ReadLn(St); Assign(F,St); Reset(F); ReadLn(F,n, Nmax); For i:=l to n do

For j:=l to 11+ I do

97

Capitolul IV. REZOL V AREA NUMERICA A SISTEMELOR DE ECUATII ALGEBRICE LlNIARE

LEnd~

Read(F,A[i,j]); ReadLn(F,Eps);

Close(F); T:=TimpuiCurent;

Iacobim, Nmax. A, Eps, c, X, DN): T:=T -TimputCurent: Writcl.n:

WriteLn(,Durata de executie;'. T:O: 11); WriteLn:

If DN Then WriteLn(,Solutia s-a determinat eu precizia data in '. c, , pasi:')

Else Writel.nr'Precizia prescrisa nu poate fi atinsa in "Nmax, ' pasi:'); For i:=l to n do

WriteLnCx[',i,']=', x[i] :0: 11); WriteLn:

Writel.nt'Abaterile la substituirea aproximatiilor in ecuatii:'):

For i:=l to n do Begin

D:=O;

For jr=I to n do D::::D+/\'[ i.j J*xUl;

Writeln(,D[ ',i.']==',/\.bs(D-A[i,n+ 1 ]):0: 11); End;

ReadLn:

Excmplulf S[l se rezolve prin metoda Iacobi eli exactitatea E:::; 0,0001 urmatorul sisrem:

{., 4x; - O,2Y] + O.3~:; ::: 8,1 o.u, + 5x, -- 0,2x, ::: 5 0,5Xl + 0,51x, - x:, = 0,51.

Rezolvare. A fost aplicat programul P _ 4._8._1:

P~ipruI .~e~~riL~~J~~zultatele afi~atc pe ecran: -~-------_J

11 3 20 Solutia s -a deterrninat cu precizia data prin

II 4 0 '1 () - 8' 1 6' 0

Ii - os.. oj • • I pasi:

110.1 5 -0.2 5 I x[II=1.99999153730

II 0.5 0.51 - 1 0.51 II x[21 = 1.00000331290

1110.0001 I x[3] = 1,00000287300

Abaterile la substituirea aproxirnatiilor in ecuatii:

t==-___ _ 1.I_?1~ = 0 .000034 I_?E~OOO 1 ~. Dl3 L =:0.000005

Mentionam ca solutia exacta a sistemului considerat este: Xl = X2 == J;;] = 1.

Comparand numarul de pasi, obtinut In rezolvarea Exemplului , 4 (19 pasi) cu eel din ExemplulS (6 pasi), determinate pentru aceleasi date initiale, conchidern ca estimarea teoretica a numarului de iteratii este considerabil majorata fata de cea obtinuta practic,

illitolul IV. REZOLVAREA NUl\1ERIC.~ A SISTE1'v1ELOR DE ECUATII ALGEBRICE UNIARE

Exemplul , 6. Sa se rezolve prin metoda Iacobi cu exactitatea E = 0,001 urmatorul sistem:

R

f

I P 4 8 1

ezo vare. mnou a ost ap. icat programu
Fisierul de intrare: Jaeobi2.in Rezultatele afisate pe eeran:
3 20 Solutia S -3 determinat ell precizia
10 1 1 6 data prin 11 pasi:
3 -4 1 1 xl l l = 0.62504306684
1 -5 -8 3 x[2] := 0.12475778662 I
0.001 x[3] =-0.37508139414
Abaterile la substituirea aproximatiilor in ecuatii: I
D[ 11 = 0.0001 D[2] =0.0010 D[3] =0.0020 Mentionam ca. desi matricea coeficientilor necunoscutelor sistemului considerat nu satisface nici una din conditiile de convergenta (4.8.7) sau (4.8.8). procesul Iacobi totusi este convergent.

Complexitatea metodei Iacobi. In metoda lacobi se calculeaza termenii sirului {x ik , } cu formula X(k)= ax(k-l)+p, (k = 1,2, ... ). Pentru calcularea produsului ax(k-l)sunt necesare n2 operatii de inmultire si n2 operatii de adunare, iar pentru adunarea vectorului p mai sunt necesare n operatii de adunare. Deci complexitatea determinarii lui x (k) este O(n2).

Pentru determinarea solutiei cu precizia E, utilizand estimarea apriori a erorii, se calculeaza toti termenii sirului {X(k)} pana la valoarea k calculata cu ajutorul expresiei din formula (4.8.12), care in raport cu n este constanta. Astfel, daca numarul de iteratii necesar pentru a determina solutia cu precizia prescrisa este mai mic decat n, numarul total de operatii necesare pentru solutionare va fi mai mic decat n', pe cand complexitatea metodei Gauss este O(n3).

Intrebari ~i exercitii

1. Sa se reduca la forma cu matrice diagonal predominant a urmatoarele sisteme:

{3X' - (A-1)x2 + X3 = 2A + 3

6x, - 5X2 +(A+l)x3 =8A-3

2x, + (A-2)x2 + X3 = 3 A

(A = -5, -4, ... ,10).

2. Fie sistemul (4.8.3): X= ax + p, pentru care ambele norme llail 9' e =1,2 sunt subunitare, Utilizarea carei din aceste norme va fi mai adecvata la estimarea apriori a erorii conform formulei (4.8.12) ?

99

5:apitolul IV. REZOLV AREA NUMERIC,\ A SISTEMELOR DE ECUATII ALGEBRICE LlNIARE

Ii \'

3. Fie sistemul x = ax + p . Sa se elaboreze o functie care, i11 caw! unci norme ![ail e :

9 = 1 sau 2, va determina numarul de iteratii k necesare pentru obtincrca solutici sistemului considerat cu exactitatea prescrisa E prin metoda Jacobi.

Indicatie: De utilizat procedura elaborata conform exercitiului din paragraful anterior si formula (4.8.12).

4. Testati programul P _ 4_8_1. in acest scop ar putea fi folosite si rezultatele obtinute la realizarea subiectului 1. Solutiile exacte ale sistcmelor in cauza sunt: Xi = A. x, = I. x~ = 2. 5. Adaptati programul P _ 4_8_1 pentru utilizare cu generare aleatoare a coeficicntilor sistemului extins de ecuatii. Rulati acest program eu diverse valori ale lui n:::;: 100. Care sunt eoncluziile ?

6. Faceti 0 analiza cornparativa a metodelor Gauss si Iacobi, [inand con! de avantajele si dezavantajele fiecarei din aeeste metode.

4.9. =Metoda Gauss -Seidel

Fie sisternul de ecuatii liniare (4.8.1), ca ~i la metoda iteratiei simple. prin transforrnari de echivalenta a fost redus la forma (4.8.2). La rezolvarea sistemului (4.8.2) prin metoda Iacobi fiecare aproximatie noua se determina cornpletamente prin cornponentele vectorului obtinut 1a pasul precedent, deci este necesar de a pastra 111 memoria calculatorului toate componentele vectorului x (k-Jl (k > 1) atat timp cat se calculeaza vectorul x ck I. Metoda

Iacobi po ate fi modificata astfel. incat la pasul k sa fie folosite In calcu1ul cornponentei XiI;)

valorilc deja calculate la acelasi pas: x;k), xik) •... , .X;~i . Aceasta modificare a mctodei Jacobi se nurncste metoda Gauss -Seidel ( se rnai numeste metoda Seidel ), iar sirul iterativ devine:

(4.l).1)

(i = 1.2 .... ,n; k 21).

Sc dernonstreaza ca teorernele de convergenta, formulate in pA.R pcntru metoda Jacobi. raman In vigoare ~i pentru procesul iterativ (4.9.1). De obicei, metoda Seidel converge mai repede ea metoda Jacobi. In cazul general, dorneniile de convergenta ale accstor 2 metode iterative doar se intersecteaza. adica pot fi indicate asa matrice, inca: metoda Seidel va converge. iar metoda Jacobi va fi divergenra si reciproc.

Proccdura de rczolvare a sistemelor de ecuatii liniare prin metoda Seidel, prezcntata mai jos, se deosebeste de procedura Iacobi, prezentata in p.4.8, prin aceea ca valoarca calculata

X)kl se va atribui imediat variabilei eare a continut componenta X;k-lj:

{Rezolvarea sisternelor de ecuatii liniare prin metoda Seidel} Procedure Seidel (n, Nmax: Word; A:Tablou; Eps.Real; Val' c:Word; Val' X:veetor; Var DN:boolean );

{n-numarul de ecuatii; Nmax- numarul admisibil de pasi: A-matricea extinsa a sistemului; Eps-precizia prescrisa de calcul: c-numarul de ireratii efectuate:

100

Capitolul IV. REZOLVAREA NUMERICi\ A SISTEMELOR DE ECUATII ALGEBRICE LINIARE

{Transferarea valorilor ] {Calculul unci noi aproximatii }

X-vectorul necunoscutelor: DN-primeste valoarea True daca s-a determinat solutia cu precizia data in limita adrnisa de pasi}

Var YiVector; i.j.Word; T,Max:Real; {Declararea variabilelor locale}

Begin

I For i:= 1 to n do {Formarea matricei standard}

I Begin

T:= Ali,i);

For j:=1 to n do Ati.j I:=-AI i,j]/T; A[i,n+ 1]:=A[i.n+ 1]1T: A[ i.i 1:=0;

End;

For i:=l to n do XriJ:=Ali,n+ 1 J; cr=O;

Repeat Y:=X;

For i:=1 to n do Begin

T:= A[i,n+l];

For i= 1 to n do T:=T+A[i,j]*X!jl;

X[i]:=T; End; e:=c+l;

{Controlul apropierii } Max.e=Abs/X] 1]- Y[ 1 D; For j:=2 to n do

Begin T:=Abs(Xlj 1- Yfj]); If T>Max Then Max:=T: End;

Until (Max-c=Eps) or (c > Nmax); I

1~I==D~N~T~:===C=<===N~n=l=ax=;==~================~~~==~~====~==~~==~~~Ji

_End; {Iacobi}

{Construirea aproxirnatiei initiale}

Procedura Seidel, prezentata mai sus, precum si tipul Tahlou =Array! 1. ,50.1 .. 51] of Real, utilizat In cadrul ci, se considers declarare 111 unitatea de program RczScal.

Dupa cum deja s-a mentionat In p.4,8, reducerea .manuala a sistemului de ecuatii la 0 iorrna special a, urmata de verificarea conditiilor de convergenta, in cazul general este 0 activitate practica anevoioasa. Descrieru 0 procedura practica de transforuiare a sisternului initial (4.8.1), care garanteaza convergcnta procesului iterativ al metodei Gauss -Scidel ncntru sisternul (4.8.2)

Reprezentam sistcmul (4.8.1) In forma matriciala

Ar > b. (4.9.2)

.inde A este matricea coeficientilor necunoscutelor, b -vecrorul-coloana a termenilor Iiberi. v-vectorul -coloana a necunoscutelor. Inmultind din stanga ambelc pilqi ale sisternului -+.9.2) Ia transpusa matricei A. obtinem:

ATAt' = Alb.

Introducern notatiile: C = AT A: d = ATb. Sistemul modifieat acum are aspectul Cx=d.

(4.9.3)

101

Capitolul IV. REZOLVAREA NlD\1ERIC'\ A SISTEMELOR DE EClJATII ALGEBRJCE LINIARE

Un atare sistem este acceptat sa fie numit sistem normal. Sistemele normale se bucura de 0 serie de proprietati .Jntne", printre care in particular sunt urrnatoarele:

• matricea C a coeficientilor nccunoscutclor sisternului normal este simerricaradica cij = cp, ij = !+n);

• toate elementele diagonalei principale ale matricei C sunt pozitive.

Ultima proprietate pcrmite de redus "automat" sistemul normal (4.9.3) la forma standard:

11

Xi = Z:<Xijxj + Pi (i = 1,2, ... ,1l), j=l

.i~i

(4.9.4)

unde

Rationalitatea efectuarii transformarilor descrise se justifica prin urmatoarea propozitie:

Teorema Procesul iterativ Seidel pentru sistemul standard (4.9.4), echivalent sistemului normal (4.9.3), converge la solutia unicii a acestui sistem pentru orice aproxlmatie initiala.

Exemplui_l. Ilustram transformarile descrise anterior folosind urmatorul sistem de

ecuatii:

Pentru acest sistem:
A=n 1 l} h=[g} [1 2 1]
] AT: 1 1
1 -1 1 1 -1
Calculam:
C=AT A=(! 2 1 ) [1 1 lJ = (~ 4 2) [1 2 J1)[g)=[n
1 1 2 1 3 1 ; d = AT b = 1 1
1 -1 1 1 -1 2 131 1 in asa mod, sistemul normal, obtinut din sistemul considerat, are forma:

Pomind de la matricea extinsa A =(Alb) a sistemului initial, matricea extinsa C =(Cjd) a sistemului respectiv normalizat poate fi calculata direct, aplicand urmatoarea formula:

n

cu= Lakiakj (i = l+n; i= l+n+l);

k=!

(4.9.5)

102

CapitolullV. REZPLVAREA NUMERIC;';\ SISTEMJ':LOR DE ECUATH ALG~':BRICE LINIARE

Urmeaza prezcntarea In limbajul Pascal a procedurii Norrnalizare (considerate .omponenta a unitatii de program Rezxeal), care este destinate calculului matricci normale

C =(qd) conform formulei (4,9.5),

I Proce~~re Normalizarcm.Word: Var A, C:Tablou); i Var i.j,k: word;

II Begin

Ii For i.e l to n do

II For" j:=1 to 11 +1 do

Ii Begin

II qi,j]:=O; do

~i For k:~;j,~7:~C[i,jJ+A[k,il'Alk'Jj: I

End; J!J:::

End;{NOrr~~~,djZare~_ ,~""".,.."",.,_"",.o====="""",,,,,,,,,,,~==,,,,,,,,~~J

1

o varianra de aplicare a procedurii Seidel, optionala hind normalizarea automata a -istcmul ccuaiii en ajutorul procedurii Normalizare, este cca rcalizaia prin prograruul F_4 __ 9_J prczcntat mai jus, Datele de intrare pcntru acest program Sf: cites; dintr-un Iisier text

ell acecasi structura ca cca utilizata pentru prcgramul P 1 :

'I' {SIvl 65520,O,655360} I Setarea I; maxim ,~ dimensiunii scgmentuiui s;iwX} " -

11,'1, ),r,O~,JTam" P _4_(;,'_1: (A_p,licarea metodei Seidel ell optionala normalizare automata a

I C'; S'! emului 1- 11; ti '111

I ,;;J.._ ~-~ .1.J t c. d s r !

I Uses Crt R.czSEAL:

Ii Val' AC:Tahlou: X:Yector; i.j,n, Nmax, Np.Word; Eps, T D:Rcai- F:Text; I DN'boolcan: St.Strina:

Illh~gir;' " .. "" ",:), j' • 'E>

II Ch Scr:

II \VriteLnCD;_:ti numcle Iisicrului:'); ReadLn(St);

I Assign(F,St): Resct(l~'); ReadLn(F,n, Nrnax);

I For i:=l to 11 do

I For j:=l to n+l do

I Read(F,A[ i.jj);

'I ReadLn(F,Eps);

Ii Close(F);

III' WriteLn('Sc va Iace normalizarea sistemului, DIl,'): ReadlJl(SU,

T:=TimpulCurem:,

il If St :.::'D' Then Normalizarem.Ar") Else C:=A;

I Seidelm, Nrnax, C, Eps, Np, X, DN); T:=TimpuiCurcnl··T;

I, Writeln; Writehu'Durata de executic:', T:O: 11);

If DN Then

i

I I ,I

Writel.nf'Solutia s-a determinat ell precizia data in .Np.' pasi:') Else

103

Capitol"l IV. REZOLVAREA NUMERIC'\ A SISTEMELOR DE ECUATJI ALGEBRICE LINJARE

Writel.nr'Precizia prescrisa nu po ate fi atinsa in "Nmax,' pasi:'):

For i:=1 to 11 do

WriteLn('x[',i,'J=', x[i]:O:11); WriteLn; Writcl.nt'Abaterile la substitutia aproximatiilor in ecuatii:'):

For i:=1 to n do Begin

D:=O;

For j:=l to 11 do D:=D+A[ i.jj+xjj];

\Vriteln(,D[',i.'J::::', Abs(D-A[i,n+ 1 ]):0: 11); End;

ReadLn;

End.

Exemplul_2. Sa se rezolve prin metoda Seidel ell aprox imatia E = 0,0001 sistcmul de ecuatii

liniare '

{4,5Xi - 1,8x2 + 3,6x3 ::= 10,8 3,lx1+2,3x2 -1,2x3 =7.3 1,8x1 + 2.5 X2 +4,6 Xl= 10,7.

Rezolvare. Utilizarn prograrnul P __ 4_9 _1 in 2 variante: 1) fara norrnalizare =proccsul Seidel este divergent;

2) eu normalizare -prin 11 iteratii se obtin urmatoarele rezultaretprezentate cu 5 zeeimale):

xll] = 1.99996;x[21:::: 1.00000;x[31 =l.00002, valorile exactefiind: xiII =2; x12] = 1; x[3] =1.

Observatie. Teorcma din paragraful curent garanteaza convergenta procesului Seidel. dar IlU neaparar ~i o viteza mare de convergenta.

Intrebari si exercitii

1. Adaptati programul P _ 4_9_1 pentru utilizare cu generare aleatoare a sistemului extins de ecuatii;

2. Testati programul P _ 4_9_1, modifieat conform subiectului 1. eu diverse valori ale lui n S 50. In acest seop ar putea fi folosite:

1) rezultatele obtinute la rezolvarea subiectului 1 al paragrafului anterior;

2) variantele ell normaJizare automata. precum si fara normaJizare prealabila a matricelor sistcmelor.

Care sunt concluziile ?

3. Procedura Normalizare, folosind formula (4.9.5), construieste matricea extinsa

C =(qd). Realizati 0 modificare a acestci proceduri care ar simplifica unele ealcule datorita

simetriei matricei C = (cU)n'

4. Faceti 0 analiza cornparativa a metodelor Iacobi si Gauss -Seidel, tinand cont de avantajele ~i dezavantajele fiecarei din aceste metode.

104

Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

5.1. Formularea problemei integrarii numerice

Fie se cere de calculat integrala definita

b

1= jf(x)dx. a

Din cursul de "Analiza matematica" se stie ca daca f: [a,h ]--"R este 0 functie continua, atunci integral a (5.1.1) exists si pentru calcularea ei, in cazul cand se cunoaste o primitiva Ft.r) a Iunctiei f(x), poate fi utilizata formula lui Leibniz-Newton

b

1= jf(x)dx=F(b)--F(a). (5.1.2)

a

Insa. III majoritatea problemelor practice nu se reuseste exprimarea primitivei prin functii elementare cunoscute. In plus, deseori functia de sub integrala este definita in forma tabelara sau grafica si determinarea exacta a primitivei este imposibila. In consccinta, devine dar ca iniegrarea dupa formula (5.1.2) nu are aplicare larga In practica si foarte frecvent este necesar de recurs la metode de caleul aproximativ al integralei. Metodele aproximative constau in construirea aproximatiei primitivei, urmata de utilizarea formulei (5.1.2). Ele permit de aflat nemijlocit valoarea numerica a integralei, utilizand valorile cunoscute ale functiei de sub intcgrala in anumite puncte, numite noduri. Formulele, ce se utilizeaza pentru aprox imarea intcgralelor definite, se numescformule de cuadraturii (cuadraturi ).

in continuare vorn prezenta rnetode numerice de integrare aproximativa bazate pe principiul de mai sus, adica metode ce exprima integrala prin fonnule de forma

b 11

1= jf(\:)dx = LPif(xi)+Rn(f), (5.1.3)

a leO

(5.1.1)

II

unde Rn(f) = 1- LPif(xJ caracterizeaza eroarea formulei de aproximare a integralei,

i=O

nurnita si restul cuadraturii, iar Xi (i = 0-7-11) sunt nodurile formulei. In functie de modul de specificare a nodurilor Xi si a coeficientilor numerici Pi, pot fi obtinute diferite tipuri de cuadraturi de forma (5.1.3).

Atunci cand folosim 0 formula concreta de cuadratura, trebuie sa cunoastem estimatia

erorii absolute a ei, adica a valorii IRIl( f )1· Daca nodurile Xi se iau dintr-o diviziune echidistanta, adica din diviziunea

/111 =(a=xo<xl< ... <xn=b)

a intervalului [a,b] la care distanta dintre oricare doua noduri consecutive este aceeasi, h= Xi+l-xi=(b-a)/n (O:Si:Sn-l),

atunci problema estirnarii erorii poate fi reformulata astfel: dat fiind un E > 0, sa se determine

asa un 11 incat sa fie verificata relatia IRn(f)1 < E.

Fundamentarea conceptului formulelor de cuadratura, ce vor fi examinate i11 paragrafele urmatoare ale capitolului curent, se sprijina pe sensul geometric a1 integralei de forma (5.l.1), care pentru 0 functie f(x) pozitiva pe [a.b I, reprezinta aria subgraficului functiei, adica a

105

Capitn!ul y, CALClJU)L NUl\lERIC .AL INTEGRALELOR

.frapezului curbiliniu" T, margin it de graficul functiei, dreptele x = a, x::::: b si axa ahsciselortf-ig. 5.1.1):

1 y

o

a

Fig. 5.1.1

b

x

5.2. l\idoda drepumghiurilor

Fief: la,hl-·R 0 functie continua. iar !ill::::: (a =: x[)< X, < ... < Xli == b ) esre 0 diviziunc

echidistanta a intcrvalului [a.bl.

drcptunghiurilor cousta In aprox imarca funcrici sub intcgrala pc

l .cn-} printr-o constants de forma f(ci). c.e [Xi, Xii! I. Prin nnnarc.

a I conxidcrat sc iiUCJlU dupa cum urmcaza:

1

'"

I r ( )'

~ J \ x. a.'t'

.t-

... '1.

X . !

formula dreptunglriurilor de stdnea b

_. r t'

J ~~ l. .r J'

a

formula dreptunghiurilor de dreapta b

1"" Jf(.{ idx a

formula dreptunghiurilor medii

b

~ i {'_

{~ __ " i-y

. ,,,,,- J-' \.-

(1

In

h = i+j Xi) ~iiniiltirncaf (ei)

rn SL1DU integrala, corespunzatoare lui llu' capctele

,->0 ..... •

i.ecarur

5.2

n ;

h Lf(xi +h!2) :=-c )\ilnCfJ. i-i:

( 5.2

valorile Sn(j), Dni f ). lVI,,( f) reprczinta

(figurilc .1, 5.2.2, 5.2.3), adica

lui /;1, sunr justificat« in sensul te prin surncle cuadraturi ale metodei dreptunghiurilor.

D () I 1',,1 .. ((1

1l, I ~ Ie. v /

o a cx,

o

Capitolul V. CALCULU!. NUMERIC AL INTEGRALELOR

y =j(X)

I I

Xi Xi. I Xn- xn=h X I

Fig. 5_.2_._1 -

y

x

a =Xo

xn=b

Xi-I

Fig.5.2.2

y y =j(x)

o

a =Xo

X

Xi+l

Fig.5.2.3

Xn-l

xn=b

]07

Capitoiul V. CALCULUL NUMERIC AL INTEGRALELOR

Estimarea erorii in metoda dreptunghiurilor

Teorema. Dacii f: r a, b J---l-R este 0 functie derivabilii, cu derivatii continuii si tV! = max I f(l)(x)j, atunci

xE[a.b]

Ii R (f),«b-ai·M (b-a).M,

n I 4 (5.2.4)

I kn k

unde k = 2, pentru formulele (5.2.1), (5.2.2) si k = 4 -pentru (5.2.3).

Sa calculam integrala cu 0 precizie.e. In virtutea teoremei de mai sus, aceasta inseamna ca vom impune ca eroarea comisa, estimata conform relatiei ( 5.2.4 ), sa nu depaseasca E. Deci se impune inegalitatea

(b-a i· MJ(k'll) '$ E,

de unde rezulta ca cea mai mica valoare a lui n, care sarisface aceasta relatie, este

n = [(b -a)2M] + 1 kE

( 5.2.5 )

In continuare este prezentata in lirnbajul Pascal unitatea de program CNID, in care sunt incluse procedurile Dreptunghi,n si Dreptunghi __ Eps, destinate calculului integralei definite de forma (5.1.1) prin varianta solicitata a metodei dreptunghiurilor. In cazul procedurii Dreptunghfn, fiind dar numarul n al punetelor de diviziune, la iesire valoarea calculata Intg a integra lei se insoteste de eroarea ei, evaluata conform formulei ( 5.2.4), iar 111 cazul procedurii DreptunghiEps, fiind data precizia Eps, valoarea Intg se insoteste de numarul punctelor de diviziune a intervalului de integrate, determinat apriori dupa formula (5.2.5).

Unit CNID:

I

{*********************************************************************} I {Notatii comunc pentru parametrii subprogramelor: I a.b] =intervalul de integrare; II M -majoranta modulului derivatei de ordinul respectiv al functiei frx): n -numarul de II

divizari ale intervalului ; f -numelc funetiei de sub integrala; Eps =precizia de calcul; I

Intg -valoarea integralei } I

{*********************************************************************} I

II

{CaJculul numeric al integralelor definite}

Procedure Drcptunghi_Eps(a,b,M,Eps: Real; start.Word; f:Fune; Var Intg:Real; Var n:Word); {Parametrul start arc aceeasi semnificatie ea si in Dreptunghi ji}

Interface {**********************************************************************}

, Type Func = Functiontx.Rcalj.Real; {Declarare tip functie}

Procedure Drcptunghi __ n(a,b,M :Real ; n.start.Word: f:Func; Var Intg, Eps.Real):

{start -variabila ee specifics varianta formulei dreptunghiurilor: start = 0, pentru formula dreptunghiurilor de stanga; start = 1 -rnedii ; start =2 -de dreapta]

Implementation

108

Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

{**********************************************************************} i Procedure Dreptunghi ji:

Var i,k:Word; h.x.Real; {Dcclararea variabilelor locale, auxiliare}

II Begin

I h:=(b-a)/n; x:=a + start*hl2; Intg:=O; For i:=l to n do

Begin

Intg.e lutg+ftx): x:=x+h;

End;

II If start=I then k:=4 else k:=2;

~ Intg:=Intg*h; Eps:=Sqr(b-a)*M/(n*k);

~ End: f Dreptunghi_n }

[

~

~ Procedure Dreptunghi_Eps;

Ii Var i.k.Word; h.x.Real; {Declararea variabilelor locale, auxiliare]

ji Begin

! If start= 1 then k:=4 else k:=2;

n:=trunc(sqr(b-a)*M/(k*Eps))+ 1; h:=(b-a)/n; x:=a + start*hJ2; Intg:=O; For i:=l to n do

Begin

Intg.e lntg+Itx): x:=x+h; I

End;

Intg:=Intg*h: I

End; { Drepl~nghi_Eps } :'::~JII

{**********************************************************************J I

~_£=E~_;_~"~~~~~~~=~~ -- . -- -. _ _-- - ~

Exemplu: Functia .t(x) =e 2. xEt-I,I] fiind continua, adrnite primitive. Totusi prirnitivele acestci Iunctii nu pot fi ex primate prin functii element are, dcci nu putem calcula exact valoarea intcgralei

1 x2

fe--T dx .

-1

In acest caz, aproximarea nurnerica a integralei devine 0 necesitatc, x2

f(2)(X) = ( x2 -1) e -T, rezulta ca valoarea maxima a

1 marimii I .t(1) (x) I pe [- L IJ sc atinge in x = -1 sau x = 1. Astfel obtinern M = e -"2 . Deci

:)cntru calculul aprox imativ aJ iniegralei in studiu putem aplica formula dreptunghiurilor, estimand eroarea dupa formula (5.2.4).

( 5.2.6 )

lntrucat

x2

.t(i)(x) = -xe-'T~i

a) Calculul integralei ( 5.2.6 ) pentru n = 100 s -a realizat prin programul atasat P _5_2_1:

109

r Progra=m P __ 5~~2~J :====-{-, i7,a~e;=7~1-(;ct~Cd;pt~hiuri !~=;Jii;d __ d~at __ N} II Uses Crt.Cnid;

I: Var

Ii :1 h lr to r: . I'v' ··j'IJ ""I'

ii < .... , d/:O,l~PS, .. l,U,''''::''.,

Ii 11 : , .Word

!I _ • .t, t' ..... 1 ,

!I Function [(x.Reat ):R:':<11; FHl'; {Far-directiva de compilare} Ii Begin j"::::i'Xp(,y *X/I) End:

!i-- 1 -- ;....~ ~.' '" .. - /

II Procedure Sene; II I) ""I'."

II :"'4 •

II 1~' l .

Ii K.:-::: j , (l :C::: 1 :

!!'While d >Ep>. do [Dcterrninarea nurnarului de zecimalc afisaie if} rezultate ]

Ii r " kj. End

I! Begin J Inctk); l~n :

Ii 'r.,: 'itcl '111-)'" O'k 1 L-,..,.··.' /! '1")'\Vt-;',,1 'I-

Ii. d; I (,'o! \. I L,~.'" ',- I, l~i':-" l f+. r-r- , u.c: _1..

I·"'-{ -, ,".

I .Ltlf!

"D •

II rsegm

il C lrS_cr; _ .

, :-1';::: I' h':::: r , T:-.: 1 (If), TvI '::::exp( -1/1).

II -~.- -, * ... ,1 .. ·· ~-.,.e. _' ~/a

!i Writel.ru'Rezultatele pcntru n>:',»;': ):

Ii

1'1 Writei.nfVarianta: Valoarea: Precizia:");

I! WriretDc sunga: C);

! Dreptunghi __ rua, b, M, n, 0, E, Intg, Eps); Scrie;

I WriterMedii: '):

I Dreptunghijua, b. M, n, 1. f. Intg, Eps); Scrie;

,! \Vrite('De dreapta '):

II Dreptunghi ji/a, b, M, n, 2, f. Intg, Eps); Scrie;

ii Writel.n:

II

II llJ:n~:

WriteLn;

-.,

Ii

Ii

,I

II

II

II Ii II

11

Ii

I, il

Ii ;j

"

Ii

!!

II

II

II

I,

II

Ii

ii

II II

Ii

I'

ii

II !l ;1 II I.

I!

II II

II II

.~,.~~~="~~==~=~=-]

ReadLn;

Rezultatele (executiei programului P __ S_2 __ 1) pentru n=-"100:

Varianta: Valoarea integralei: Precizia:

De sranga: 1.71 0.012

Medii: 1.711 0.0062

De dreapta: 1.71 0.012

b) Sa sc calculeze integrala (5.2,6) eu precizia data. de exemplu, E = 0,001. Programul P _5_2_2, prezentat mai jos, realizeaza aceleasi 3 variante aJe metodei dreptungiurilor, de data aceasta cu evaluarea apriori a lui n, conform forrnulei (5.2.5), ceea ce asigura atingerea exactitatii impuse E.

{U tilizarea rnetodei __ dreptunghiurilor_fiind_dat_Eps }

~ Program P _5_2 __ 2; i Uses Crt, Cnid; Var

a, b, Intg, Eps, M, d.Real; 11, i, k:Word;

110

C<lpilolul \. CALClJUc;L :'."l'MERlC AL 11\TEGI<ALELOR

" While d »Ep- do {Deterrninarea nurnarului de zccimale afisate in rezultate}

ii Begin d::::.d/1O: Incrk): End:

~ Writcl nt In: wn·!< -! ~"'1 (il' Writel..n

II ,1 \.I.._- ~l"_ -·'b·'~· '" .. ~ ",I. •• .r t , ~ ....... !1,

Ii End:

!i Begin

ClrScr:

:1:=-,·1: b:= 1: Ep:,:=()JXl1: M:=exp( -112):

Writcl.nt 'Rczultatcie pcnuu , Eps.O' l l):

Numarul de diviz iuni: ~): Wntel,n:

\\-rtlcL.n( 'Varian.a

.\

.I

Dr. .. ~pttu~ghi< [~IY~ (u, h. . Ep-, l. f. ]ntg n): Scrie:

Writ: ... ~( 'j).~ drcapia: ):

Drcp: 1_ Eps (a, [1. rVl. Ep:;. 2.

Writcl 1';:

Variants Dc Medii:

De dream a:

!:

i -/' !"'1

L d 1_

1.7112

t214

~)C)7

1.7112

Revcnim l~! problema calculului integrale: de forma {5 1 1;.

.uuctic continua impreuna en ruimcle doua dLC

" f : ia,h ]- ... R este o

e: pe ia.h I. tar

Pcntn:

-cnsului

... II). Conform

.X·, I

r, ::: fl' \ :r it/X.

J x· . j--j

(53 1)

.rapczului

ern cor.sidcra CJ integral»

:) 3.1) estc

j 11

Capitolul V. CALCULUI. NUMERIC AI. INTEGRALELOR

(5.3.2)

unde h = Xi _ Xi _! •

In ipoteza forrnulata la inceputul paragrafului curent, eroarea aproximative (5.3.2) are aspectul

. _ h'/(2) . .-

Ri(/) _-- (11). 11.E !Xi-IoX;!.

12 i' I

Ri(/) a egalitiitii

(5.3.3)

Demonstrarea acestei afirmatii dcpascste cadrul obicctivelor propuse in aceasta lucrare, de aeea nu va Ii expusa.

Drept valoare aprox imativa a integralei pe intrcg intervalul la,b] putem lua suma ariilor

trapczelor T; (i = l,n), care se va nota prin 1:1 (/). Deci, pentru 0 diviziune echidistanra ~II eu pasul Iz = (b-a)/n :;;i punctele Xi = a +ih (0 <::= i -:-~ n), vom avea:

TI1(/) = !Aria(1~) =-= -i[/(Xu)+ /(xI)]+ ~[/(XI)+ /(x2)]+ ... +

h l~ . h

+"2 [/(xI11) + .f(xl1)] = "2 {.f(xo ) + 2[.f(x,) + f(x2) + ... + f(x/l.I )]+ [I x ; )}.

In asa mod am obtinut formula

hr. III 1

I zzz: "2l.f(Xo) + f(x,,) + 2 ~ f(;r;) ~'

(5.3.4)

ce poarta denumirea de formula generalizatii a trapezelor (sau formula trapezelor ).

f(x;)

y =/(x)

y

Xi-I Xi

Fig.5.3.1

xll=b

x

Pentru estimarea erorii RIlCI) a formulei generalizate a trapezelor se poate aplica urrnatorul rezultat:

Teorema, Dacii functia f: [a,b J-+R admite derivate continue piini: La ordinul doi inclusiv pe intervalul [a,b], atunci pentru RIl( I) are loc inegalitatea

I R (I) I < __ ~~a).lM2 = S!!_ -a)~_J12.

n 12n2 12 ( 5.3.5 )

unde h = (b - a)/n, M2 = max I f( 2 lex) I.

xE[a.bl

112

Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

Dernonstrarea acestei teorerne se poate realiza folosind formula (5.3.3).

Estimarea erorii, dupa cum vedern din (5.3.5), depinde de diviziunea 1l.n a intervalului

I a, b], rnai exact de numarul Il de parti in care acesta se imparte. Daca nc prop un em sa calculam cu ajutorul formulei (5.3.4) integral a definita I cu 0 precizie data e , atunci acest numar n se poate detennina apriori, reiesind din inegalitatea

(b-a)3M,

- .~ <E,

12112 -

de unde rezulta:

n = [(b -a) /(b -a)l\12l+ 1

~ 12£ I

..J

( 5.3.6 )

Remarca_l. in Iormulele (5.2.4), (5.3.5), destinate aprecierii erorilor respectiv a

rnetodelor dreptunghiurilor si trapezelor, figureaza marimile M respectiv M2, care in aplicatiile practice pot fi inlocuite prin majorante ale lor. Dar, la calculul integralei cu anumita exactitate e. aceste majorante trebuie sa fie cat mai apropiate de valorile respective M si M2. Luand In calitate de rnajorante rnarimi mult mai mari ca M respectiv M2, volumul calculelor poate creste esential (deoarecc numarul de diviziuni n creste) si eroarea de caIeul poate deveni predominanta,

Remarca_2. Observam ca eroarea formulei dreptunghiurilor, calculati.i conform formulei (5.2.4), este direct proportionala cu h, iar cea a formulei trapeze I or, estimata reiesind din

(5.3.5), este direct proportional a ell h". Aceasta inseamna ca, aplicand aceeasi diviziune a intervalului de integrare pentru calculul integralei prin formula trapezelor, eroarea va fi mai mica dec at In cazul formulei dreptunghiurilor, daca neglijarn influenta erorii de caIeul.

Mai jos prezentam procedura Trapez_n_Eps (considerata component a a unitatii de program eNID), destinata caIeulului integralei definite prin metoda trapezelor, utilizand formula ( 5.3.4). Aceasta procedura are 2 alternative: 1) fiind dat numarul n al punctelor de diviziune, la iesire valoarea calculata Intg a integralei se insoteste de eroarea ei, evaluata conform formulei (5.3.5); 2) fiind data precizia Eps, valoarea Intg se insoteste de nurnarul punctelor de diviziune a intervalului de integrare, determinat a riori du a formula (5.3.6).

II {CaIeulul numeric al integralelor definite prin metoda trapezelor}

{**********************************************************************} { Notatii pentru parametrii procedurii: [a.b] -intervalul de integrarc;

M =majoranta modulului derivatei de ordinul doi a1 functiei ftx): n =numarul de divizari ale intervalului ; f -numele functiei de sub integral a; Eps -precizia de calcul; Intg -valoarea integralei; start -variabila ce specifica altemativa de aplicare a metodei: start = 'n', pentru cazul cand se da n; start = 'Eps' -se da Eps}

{**********************************************************************} II Procedure Trapez_n_Eps(a,b,M :Real ; Var n:Word; f:Func;

I Var Intg, Eps:Rcal; Start:string);

I Var i:Word; h,x:Real; {Dec1ararea variabilelor locale, auxiliare}

Begin

, If start = 'n' then Eps:=(b-a)*sqr(b-a)*M/(l2*n*n)

else n.etruncub-ar=s rt«b-a)*M/(12*E s»)+ 1;

II ~

Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

h:=(b-a)/n; x:=a + h; Intg.et); For i:=l to n-1 do

Begin

Intg.e.Intg-sfrx); x:=x+h; End;

lntg:=h*(f( a)+f(b )+2 * Intg)/2;

End; {'rra~ez ~= .. ~d~~S=· }~====================-=======_==.-==-_

Exemplu. Pentru a putea face 0 comparaiie intre metoda dreptunghiurilor ~l cea a trapeze lor, prezentarn exemplul de calcul al aceleiasi integrale ( 5,2.6 ):

-,

J x ....

fe2dx -1

prin metoda trapezelor. In realizarea accstui scop, este necesar sa determinam valoarea M2 =max I.t 2 )(x) I sau 0 majoranta a aeesteia.

xE [a,b]

x2

r.. (",) ') ._". A

In cazul nostru a == --1, b == 1, f"(x) =: (x" -1) e 2 .Tntrucat cercetarea la maxim <1

funcriei if (2)(x) i estc dificila, putem folosi majoranta 1, obtinuta ca produs al maximelor modulelor factorilor.

Programul 1"_5._3 __ 1. prezentat in continuare, realizeaza calculul integralei in studiu, utilizand ambele alternative ale procedurii Trapezjr Eps: 1) n := 100; 2) Eps = 0,001:

IiProg~a;;1 p_5~f~1; ~~, {Utilizarea_~etodei _ .trapezelor}

II Uses Crt Cnid:

, Var a b 11'10 <';T'~ \ 1 d.R ",1. 1·11' k.Word:

II '" (" "-c,Lt'",JV, . ,Cul, , ,K,' ) I.,

il Function f'(x.Realj.Real; Far: {Far-directiva de cornpilare} Ii Begin f:=exp(-x*x/2) End;

II[ Pro~:edure Scrie;

I, Begm

~ k::=l~ d:=l~ II

II While d »Eps do {Determinarea num. de zecimale pentru afisare in rczultate}

I! Begin d:=d/lO; Incrk); End;

"

Ii \VriteLn(Intg:O:k-l ,Eps: 14:k, n:7); \VriteLn;

i End:

I Begin" "

Ii Clrxcr;

II a' =-1' b: == I: l' ·1'::: I: 11':::: 1 on·

11:1 ~rit~L~('R~~uitat~le' p~n;~'~l 11=:',n,':');

Writel.nt 'Valoarea; Precizia:',' n:'); WriteLn:

IIII Trapcz jiEpsra, h,M. n, f, Intg, Eps. 'n'); Scrie;

Writel,n;

II Eps:=O,OO1;

~ Writel.nr'Rezultatele pentru Eps:::=',Eps:O:3,':');

L=_ \VnteLn('Valoarea:. Prec~zia:',' n:'); WriteLn;~===~=====<~====='I

114

Capito luI V. CALCULUL NUMERIC AL INTEGRALELOR

Trapez_n_Eps(a, b, M, n, f, Intg, Eps.Eps'); Serie; ReadLn;

End.

l

Rezultatele (executiei programului P _5_3_1) sunt urmatoarele:

1) pentru n = 100: Valoarea integralei = 1.7112; Precizia = 0.00015;

2) pentru Eps=O.OOl: Valoarea integralei = 1.7107; Numarul de diviziuni =26.

Concluzii. Comparand rezultatele obtinute eu ajutorul programului P _5_3_1, ell cele returnate de programele P _5_2_1 si P _5_2_2, conchidem:

a) pentru aceeasi diviziune a intervalului de integrare, metoda trapezelor asigura 0 preeizie

mai inalta a valorii integralei;

b) pentru aceeasi precizie, metoda trapeze lor necesita muIt mai putine calcule dedit cea a dreptunghiurilor.

( Explicatia, vez.i mai sus in Remarea_2 ).

5.4. "Metoda lui Simpson

Fie f: [a,bj-,>R 0 functie continua impreuna eu derivatele ei pana la ordinul patru inclusiv pe intervalul [a,b 1. In acest paragraf ne propunem sa construim 0 formula de calcul aproximativ al integralei mai precisa de cat cea a trapezelor, construita anterior. In acest scop vom aproxima graficul functiei de sub integrala pe intervalul la,b] cu un are de parabola, nu cu un segment de dreapta, cum s-a procedat in cazul formulei trapezelor. Anume, consideram

punctele Me (a, f (a)), M.( a; b ,J ( a ; b )). M 2 (b, f (b)) si determinam parabola

y = ax 2 + J3x + 'Y , ce trece prin aceste trei puncte (Fig. 5.4.1).

y=f(x)

a (a +b)/2 b x
Fig. 5.4.1
Coeficientii, a,~, 't se obtin la rezolvarea urmatorului sistem de ecuatii liniare:
aa2 + ~a + 'Y f(a)
a(a;b)' + {a;b) + 'Y f( a +b '1 (5.4.1)
" 2 )
ab2 + ~b + 'Y feb)
115 Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

Determinantul ~ al matricei acestui sistem este asa-numitul tip Vandermonde, anume:

a 11

( '( ) 3

a+b 11=(b-a)lb-a~!!_J a+b_a =(b-a) *0

21 2 2 ~ 4

b 1

In asa fel sistemul (5.4.1) poseda solutio unica, anume

Y=~X2+_:\2X+~3

~ ~ ~ ,

unde ~i este obtinut din ~ prin inlocuirea coloanei i cu coloana

[ a+bj ]T

f(a),f(-2-),f(b)_ , pentru i =1.2,3.

(5.4.2)

Integrand in limitele de la a la b functia (5.4.2), dupa transformarile respective obtinern relatia

hf b-a[. (a+b) ]

f(x)dx ~ -6- f(a)+4f -2- + feb) ,

a

(5.4.3)

numitaformula de cuadraturii Simpson.

in ipoteza formulata la inceputul paragrafului curent eroarea RS a egalitiitii aproximative (5.4.3) are aspectul

(b -a ,\5 f(4)(~) RS=- 2-) 90 .

unde I; este un punct oareeare dill intervalul [a.b].

(5.4.4)

Ca si in cazul formulelor precedente, divizam intervalul [a,b J In Il parti egale de lungimea Il = (b - a) III . Obtinem punctele de diviziune Xi = a + ill, i = 0,1,2, ... ,11.

Aplicam formula (S.4.3) pcntru fiecare subinterval dublu [xi'l'xi~lJ(accst fapt impune conditia Il =2m) si sumam dupa i de la 1 la m, In rezultat primim:

h x~ ~ ~

f.f(X)dX= f.f(X)dX+ ff(x)dX+ ... + f.l(X)1x"",~~hrf'(xo)+4f(XJ)+f(X)1 +

a

=:..

I·h . 2·h

+7[.f(x,) + 4f(x J + f(x4)1 + ... + -~[I(x n-2 )+4.f(x,,_!)+ .l(x,,)1,

n - () .

care poate fi transcrisa scurt sub forma

ff(X)dx" j[f(Xo)+ f(x,", )+4~>(X2i_')+ 2 ~f(X2i l

cc reprezintaJormula generalizatii a lui Simpson.

(5.4.5)

Pentru estimarea erorii RSg a formulei generalizate Simpson se poate aplica urmatorul rezultat:

116

Capitolul V. CALCULUL NUMERIC AL INTEGRALELOR

Teorema. Dacii functia f(x) admite derivate continui pana la ordinul palm inclusiv pe intervalul [a,b], atunei eroarea RSg a formulei de cuadraturii (5.4.5)

satisface urmatoarea inegalitate

IRS I:::: (b-a»)lV1. = b-'!!_Jz4lV.f

g 4 LI LI, (5.4.6)

180n 180

unde M, este majoranta modulului derivatei f.!;)(x) pe intervalul [a,b L h = (b -avn.

Demonstrarea acestei teoreme se poate realiza folosind formula (5.4.4)

Daca ne propunem sa calculam eu ajutorul formulei (5.4.5) integral a definita I cu 0 precizie data E, at unci numarul de diviziuni n, conform relatiei (5.4.6), trebuic sa satisfaca

inegalitatea

(b-a)SlV~< d d l~ - .. ~ 1 ~ lui

----.,- .14 _ E, e un e rezu ta ea cea mal rrnca va oare para a UI n care 0

lSOn"

satisface este

n =z +0,

( 5.4.7 )

unde

z=r(b-al4(b-a)M41] rar O::::l,dacaz este impar si O::::2,dacaz este par,

L \ 18(£)'

Remarca. Observant ca eroarea formulei Simpson, calculata prin (5.4.6), este direct proportional a cu Jz4, jar eea a forrnulei trapezelor, calculate prin (5.3.4), este direct proportionala eu h.": Aceasta inseamna ca, aplicand aceeasi diviziune a intervalului de integrare pentru calculul integralei prin formula Simpson, eroarea va fi considerabil mai mica dedit prin cea a trapezelor.

Mai jos prczentam procedura Simpson_n __ Eps (considerata componenta a unitatii de program eNID), destinata calculului integralei definite prin metoda Simpson, utilizand formula ( 5.4.5). Aceasta procedura arc 2 alternative: 1) fiind dat numarul n al punctelor de diviziune, la iesire valoarea calculate Intg a integralei se insoteste de eroarea ei, evaluate conform formulei (5.4.6); 2) Iiind data precizia Eps, valoarea Intg se insoteste de numarul punctelor de diviziune a intervalului de integrare, determinat apriori dupa formula (5.4.7).

[Calculul nun~~ric al integralelor definite prin metoda Simpson} , -- ~ {**********************************************************************} ~

{Notatii. pentru parametri.i proced~r~i: l a,~] =intervalul ,de il~teg:'are; I

Mv-rnajoranta modulului derivatei ClC ordinul patru al functiei t(x): n -numarul de divizari ale intervalului ; f =numcle functiei de sub integrala: Eps -precizia de calcul; Intg -valoarca intcgralei; start -variabila ce specifica alternativa de aplicare a metodei: start:::; 'n, pentru cazul cand se da n; start = 'Eps' -se da Eps}

{**********************************************************************} Procedure Simpson ,n __ Epsra.b.M :Real ; Val' n:Word; f.Func;

Var Intg, Eps :Real; Start.string); J

Var l.k.z.Word; h, x.Real; {Declararea variabilelor locale, auxiliare]

Begin

If start = 'n ' then Eps:=(b-a)*sqr(sqr~a))*Mj(180*sqr(n*n)) ======= =~

117

.(:apitolul V. CALCULUL NUMERIC AL JNTEGRALELOR

r

i I

else Begin z:= tnmc(b-a)*sqrt(sqrt«b-a)*M/(l80*Eps»»; If Odd(z) then rr =z+ 1 else n:=z+2;

End;

h:=.(b-a)!n; x:=a + h; Intg:=f(a) + f (b); k:::=4; FOi' i:=1 to n-I do

Begin

lntg.elntg-ik=ftx); x:=x+h: k:= 6-k;

~ End;

! Intg:=h*Intg/3;

~ End; { Simpson __ n_.Eps }

L====="= - "==

Elaborarea unui program, dupa analogie eu P __ S_3_1. pentru aplicarea procedurii Simpson __ nEps, ramane in sarcina utilizatorului.

5.5. 'Principiul lui Runge

In multe cazuri estimarea erorii cuadraturii utilizate este 0 problema foarte difici la, dictata de necesitatea determinarii modului derivatei de ordinul stabilit al functici de sub integrala, Atunci este rezonabil de apelat la asa numitul principiu Runge, bazat pe aplicarea repetata a formulei respective de cuadratura, eu pasul h injumatatit.

Esenta si formalizarea acestei reguli 0 prezentarn in continuare.

Mai intai mentionam ca pentru termenii de rest ai cuadraturilor construite in paragrafele anterioare poate fi stabiliia 0 forma generalizata a lor:

n, = chmjk\ ~). (5.5.1)

(m?1, ~ E [a,b] -dntervalului de integrare ),

unde C este 0 constants, iar m ~i k sunt numere intrcgi. Marimile C, In si k depind de formula concreta de cuadraiura. In particular, pentru formulele dreptunghiurilor In= k = 1, in formula generalizata a trapezelor In= k=2, iar pentru formula generalizata a lui Simpson m= k=4.

in eontinuare vom eonsidera ea derivata respectiva a functiei f(x) are 0 variatie mica pe

intervaluI [a, b] si 0 yom inlocui prin constanta Mk = max If k (x )1.

[apJ

Fie Ih si Ih/2 sunt valorile aproximative ale integralei

b

1= ff(X)dX, a

obtinute prin formula aleasa de cuadratura respectiv eu pasul h si pasul h12. Acum, tinand cont de (5.5.1), putem scrie:

(5.5.2)

~l

(5.5.3)

Scazand (5.5.3) din (5.5.2), obtinem

118

~apitolul \. CALCULtiL NUMERIC AL INTEGRALELOR

.. = (·~/lmM,'l- J._) = Chflll\1k_(211i_l)

Ihl2 - AI! • k\ 2m 2m - ,

ce implica, dupa trecerea la valorile absolute, egalitatea

IIl!n -lill

Rh/2 =' . . (5.5.4)

r: -1

Conform relatiei (5.5.4), aplicarea repetata a cuadraturii alese, injumatatind de fiecare

data pasul precedent de integrate, se VZl intrerupe cand va fi satisfacuta inegaliiatea II I I

i 1112 -- It I ; ,----- S: E.

2111 --1 -

uncle E este precizia impusa de calcul.

5.6. "Calculul primitivelor

Fie 1: [a,b ]---> R este 0 functic continua, iar F este una din prirnitivele ci. Atunci, pentru orice x din intervalul [a,b l, baza forrnulei lui Leibniz- Newton. avem:

.X

F(x) - F(a)::.:: ff(z)dz

.,

a

sau

.r

Ftr) =. F(a) + jf(ZkIZ. a

Deoarcce primitiva unci functii este unica pana in 0 CLllE!(mUi aditiva, rezulta ca x

F(x)::.:: ff(z)dz. (5.6.1)

a

este acea primitiva a functiei f care are proprieratea !~(a) =: O.

Rezulta ca printr-o metoda numerics putern determina valoarca aproximativa a primitivei F(x) in orice punct din intervalul [a,bj fara sa cunoastem cxpresiu analities a acesteia. Desigur, accst mod de determinare, punctuala, a unci primitive a !lHIC(ICi difera fundamental de eel analitic, 'in care prin anumite procedee se determine forma explicita a unci primitive.

Este elm' ca. pcntru determinarea numerics <1 unci putern folosi careva din

forrnuleie de cuadratura studiate anterior. Adaptarea oricaruia din programcle precedente, pentru calculul primirivei. sc face tinand cont de faprul Ia pasul i, valoarea variabilei Intg este, de rapt. suma integral a corespunzatoare integralei pc intervalul [a,xd. Utilizatorul rurnizeaza capetele intervalului ia,bj. numarul de noduri echidistante urilizatare la tabelarea prirnitivei, majoranta M, ~i precizia de calcul ;J inregralei pC' intervaleie fa, .r.]. In final programul afiseaza tabelul solicitat.

,

Capitolu) V. CALCULUL NUMERIC AL INTEGRALELOR

Intrebari si exercitii la capitolul V

1. Sa se dernonstreze ca In cazul formulei de cuadrarura a dreptunghiurilor medii valoarea obtinuta coincide eu 0 suma integrala Reimann a functiei f(x) corespunzatoare unei anumite diviziuni a segrnentului [a,b]. Putem oare afirma acelasi lucru si pentru formula trapezelor?

2. Adaptati programul P _5_2_1 pentru ealculul aproximativ a] integralei definite J

I=f dx-;_, 1 +x '

()

folosind formula drepiunghiurilor de stanga pentru 0 diviziune echidistanta ~1l(n::::20) a intervalului [0,1]. Comparati valoarea obtinuta cu valoarea exacta a integralci.

3. Estimati eroarea care se comite la calculul aproximativ al integralei din punctul precedent, daca se aplica urmatoarea formula:

J = If(0)+2/(0.1)+4f(0.2)+ ... +2/(0.9)+/(1)1120.

4. Deterrninati diviziunea cu nurnarul minimal de subsegrnente pentru a calcula aproximativ integral a

r--

-,/1t

1= fSinx2dx o

cu ajutorul formulci generalizate a trapezelor, ce ar permite atingerea exactitatii E= 1 0-4. *5. Pentru integrala

J

I = Ix 2 .f (x )dx

sa se construiasca 0 formula de cuadratura de forma

J = C:/C-I) + C2/(O) + ClIO),

unde C1, C2, C3 se cer a fi determinate astfel, incfit J sa coincida cu valoarea exacts I a integralei atunci, candf(x) este polinom de grad maximal posibil.

"6. Evaluati numarul minimal n de divizari ale intervalului [1,2], ce ar perrnire calculul aproximativ al integralei

2

1= flnxdx

J

cu ajutorul formulei generalizate a lui Simpson cu 0 eroare ce nu depaseste E = 10-5.

"7. Explicati care este diferenta intre aplicarea principiului lui Runge pentru atingerea

unei exactitati E la calcuIuI aproximativ al integralei dupa formula de cuadratura a trapezelor si aplicarea nernijlocita a formulei (5.3.5) la atingerea acestei exactitati?

*S. Se considers functia f: [a,b]~R lex) :3x2. Compuneti un program care va folosi metoda trapezelor pentru a tabela pe intervalul la,b 1 acea primitiva F(x) a functiei in srudiu, care are proprietatca F(a) = O. Utilizatorul furnizeaza capetele intervalului [a,b], nurnarul de noduri echidistante. utilizatate la tabelarea primitivei, majoranta M. precum ~i precizia de calcul al integralei pe intervale1e [zz, xd.

120

Anexa l. Unitatea de program REAT (Rezolvarea ecuatiilor algebrice ~i transcendente)

, ;~:~;~~~~ ** ***'* * ***'*' *** ** ** ** *** ** * ** * ****** *' *m****** *:1

Type Funce'Functiontx.Reall.real: [Declarare de tip} II

Function Bisectra.b.eps.real; f:Func; afis.boolean; Var nc.n.bytej.real:

{n-numarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale;

f-numele functiei din ecuatia f(x)=O; afis-confirmare pentru afisarea aproximatiilor succesive anterioare celei finale}

Function Secantera.b.m.eps.real; f.Func; afis.boolean.Var nc.n.bytej.real; {n-nurnarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale; f-numele functiei din ecuatia f(x)=O; afis-confirrnare pentru afisarea aproxirnatiilor succesive anterioare celei finale}

Function Coardeta.b.m 1 ,m2,eps:rcal; f,f2: Fune; afis: boolean; V ar nc,n: byte ):real; [rt-nurnarul de ireratii; nc-nurnarul de zecirnale la afisarea valorilor reale; f-numele functiei din ecuatia f(x)=O; f2-numele derivatei a dou a a functiei ftx): afis-confirmare pentru afisarea aproximatiilor succesive anterioare celei finale}

Function Newton(a,b,ml ,m2,eps:real; f.f l ,f2:Func; afis.boolean.Var nc.n.bytej.real; { n-numarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale;

f-numele functiei din ecuatia f(x)=O; f2-numele derivatei a doua a functiei ftx); afis-confirmare pentru afisarea aproximatiilor succesive anterioare celei finale}

Function Mixta( a.b.eps.real; f,fI,f2:FuJ1c; afis: boolean; Val' nc,n: byte):real;

{ n-numarul de iteratii; nc-numarul de zecimale la afisarea valorilor reale; f-numele functiei din ecuatia f(x)=O; f2-numele derivatei a doua a functiei f(x); afis-confirmare pentru afisarea aproximatiilor succesive anterioare cclei finale }

~ ~~*~~!:~~t:!~~;!, ** * *** * ** ** **** ** ** *** * ** ********* * * * * *** * ** * **** * *} Function Bisect;

Val' c,Fa,Fc:real; {Declararea variabilelor locale auxiliare}

Begin

n:=Trunc(Ln«b-a)/eps)/Ln(2); Fa:=f(a); {Calculul iterativ al aproximatiilor succesive} Repeat

c:=(a+b)l2; Fc:=f(c); If afis then

WriteLn('x=',c:O:nc,' f(x)=',Fc:O:nc); If Fc<>O then If Fa*Fc<O then b:=c

else B~gin a:=c; Fa.<Fe; End;

121

r

Until (abs(b-a)<=2*Eps) or (Fc=O); If Fc<>O then c:=(a+b)/2; Bisect:=c;

End; {Bisect}

{****************************************************************} Function Secante;

Var c,cl,Fa,Fb,Fc,Er:real; {Declararea variabilelor locale auxiliare}

Begin

Er:=eps*m; Fa:=f(a); Fb:=f(b); c1 :=(a*Fb-b*Fa)/(Fb-Fa); n.e l ; Repeat

{Calculul iterativ al aproximatiilor succesive} If afis then

WriteLn(,x=',c1 :O:nc,' f(x)=',f( c 1 ):O:nc); c=c l.Fc.ef'(c):

If Fc<>O then begin

If Fa*Fc<O then Begin b:=c; Fb:=Fc; End else Begin a:=c; Fa:=Fc; End; cl :=(a *Fb-b*Fa)/(Fb- Fa); Inc(n);

end;

Until abs(f(c1»<=Er; Secante.ecl ;

End; {Secante }

{****************************************************************} Function Coarde;

Var c,c1,p,Fa,Fp,Fc,Er:real; {Declararea variabilelor locale auxiliare}

Begin

Er:=eps*ml/(M2-ml); Pa.ef(a); n:=O;

{Determinarea extremitatii fixe si initializarea celei mobile} If Fa*F2(a»0 then Begin p=a: Fp.efa; c l i=b; End

else Begin p:=b; Fp:=F(b); c L=a: End; {Ca1culul iterativ al aproximatiilor succesive}

Repeat

If afis Then

WriteLn('x=',c1 :O:nc,' f(x)=',f(cl):O:nc); c:=c1; Fc:=F(c);

c1:=(c*Fp-p*Fc)/(Fp-Fc); inc(n);

Until abs( cl-c )<=Er;

Coarde.ec l ;

End; {Coarde }

{****************************************************************} Function Newton;

Var t,tl,Er:real; {Declararea variabilelor locale auxiliare} Begin

Er:=sqrt(2*ml *epsIM2); n:=O;

122

{ Initializarea aproximatiei solutiei } If F(a)*F2(a»0 Then tl :=a

Else t l i=b;

{Calculul iterativ al aproximatiilor succesive} Repeat

If afis Then WriteLn('x=',tl:O:nc,' f(x)=',f(tl):O:nc); t:=tl; tl:=t-F(t)/Fl(t); inc(n);

Until abs(tl-t)<=Er;

Newton:=tl ;

End; {Newton 1

{****************************************************************} Function Mixta;

Var t.c.Ft.Fc.real; {Declararea variabilelor locale auxiliare}

Begin

n:=O;

{ Initializarca aproximatiei solutiei }

If F(a)*F2(a»0 then Begin t:=a; c:=b; end else Begin t:=b; c.ea; end; {Calculul iterativ al aproximatiilor succesive} Repeat

Ft:=f(t); Fc.ef'(c);

If afis Then WriteLn(,t=',t:O:nc,' f(t)=',Ft:O:nc,' c=',c:O:nc,' f(c)=',Fc:O:nc); t:=t -F(t)/Fl (t);

c:=( c*Ft -t*Fc )/(Ft -Fc); inc(n);

Until abs(t-c)<=Eps; Mixta:=(t+c )/2;

WriteLn('t=',t:O:nc,' f(t)=',Ft:O:nc,' c=',c:O:nc,' f(c)=',Fc:O:nc); End;{Mixta}

{****************************************************************}

End.

r

Anexa 2. Unitatea de program RezSEAL (Rezolvarea sistemelor de ecuatii algebriee Iiniare)

{$N+}

Unit RezSEAL;

Interface {**********************************************************************} Type Matricee-Arrayl l .. 100,1 .. 1 01] of Real;

Tablou=Array] 1..50, L51] of Real;

V ecror=Arra y[ 1 .. 100] of Real;

Function Determinant(n:byte; A:Matrice):Double;

{n-ordinul matrieei patratiee; A-identificatorul matrieei patratiee}

Function TirnpulCurent:Real;

{Generarea matrieei eli elemente intregi din intervalul [u, vl } Procedure Gen jnatricem.m.byte; u.v.Intcger.Var A:Matriee); {n.m-dimensiunile matricei; A-identificatorul matricei dreptunghiulare}

{Rezolvarea sistemelor de ecuatii liniare prin metoda Gauss} Procedure Gauss(n:byte; AtMatrice; Var X:Veetor; Var Da:Boolean);

{ n-num. de ecuatii, A-matrieea extinsa, X-vectorul necunoscutelor.Daetrue, daea determinantul principaleste <>0, altfel Daefalse }

{Rezolvarea sisternelor de ecuatii liniare prin metoda Iacobi] Procedure Iacobi(n,Nmax:Word; A:Matrice; Eps:ReaJ; Var c:Word; Var X:vector; Var DN:boolean);

{ n-numarul de ecuatii; Nmax- numaruladmis de pasi; A-matricea extinsa a sistemului; Eps-precizia prescrisa de calcul; e-numarul de iteratii efeetuate; X-veetorul neeunoscutelor; DN -primeste valoarea True daea s-a determinat solutia eu preeizia data in limita admisa de pasi }

{Rezolvarea sistemelor de ecuatii liniare prin metoda Seidel} Procedure Seidel(n,Nmax:Word; A:Tablou; Eps:Real; Var c:Word; Var X:veetor; Var DN:boolcan);

{n-numarul de eeuatii; Nmax- numaruladmis de pasi; A-matricea extinsa a sistemului; Eps-precizia prescrisa de calcul: e-numarul de iteratii efectuate; X-vectorul neeunoscutelor; DN -primeste valoarea True daea s-a determinat solutia eu prceizia data in limita admisa de pasi}

{Normalizarea sistemului de eeuatii}

Procedure Normalizare(n:Word; Var A,C:Tablou); {n-numarul de ecuatii; A-matricea extinsa a sistemului initial; C- matrieea extinsa a sistemului normalizat}

124

Implementation {**********************************************************************} Uses Dos;

Function Determinant; Var

Det, temp.q, max:Double; i.j.p.k.c.byte;

Begin Det:=l;

For p:=l to n-I do Begin

k:=p; max.eabsrajp.pj); For c:=p+l to n do

if abs(a[c,p]»max then Begin max:=abs(a[c,p]); k.ec; End; if maxeO then Begin Determinant :=0; Exit; End;

if k-c-p then

Begin { Interschimbarea liniilor k, p}

det:=-det;

for j:=p to n do

Begin tcmp:=a[p,j]; a[p,j]:=a[k,j]; a[k,j]:=temp; end; End;

for i:=p+ 1 to n do Begin

q:=a[i,p ]/a[p,p]; for j:=p+l to n do

a] i,j]:=a[ i,j]-q*a[p,j]; End:

End;

For i:=l to n do Det:=det*a[i,ij;

Determinant.eDet;

End; {Detrminant} {**********************************************************************} Function TimpulCurent;

Var ore, minute, secunde, sutimi.Word; Begin

GetTime(ore, minute, secunde,sutimi);

Timpul Curent: =3 600 * Ore+60*minute+secunde+0. 01 * s uti mi;

End; {TimpulCurent} {**********************************************************************} Procedure Gen_matrice;

Var

i,j:byte; Begin Randomize;

For i:=l to n do

125

For j:=l to m do

A[i,j}:=Round(Random*(v-u)+u);

End; {Gen Matrice} {**********************************************************************} Procedure Gauss:

Var temp.q.max.Double; i.j.p.k.c.byte;

Begin

{ Faza direeta } Da.etrue;

For pr=I to n do Begin

k:=p; max:=abs( a[p,p J);

For c:=p+ 1 to n do {Cautarea pivotului in coJoana curenta p}

if abs(a[c,p]»max then

Begin max.eabsralc.p ]);k:=c; End;

if max=r) then Begin Da=false; Writel.nr'Det. principal=',O); Exit; End; ifp<>k then

Begin {Permutarea liniei k cu p}

for j.ep to n+I do

Begin temp.ealp.j]; a[p,j]:=ark,j]; ajk.jj.etemp.end:

End;

for i:=p+l to n do [Modificarea matricei A conform formulei (4.6.3)} Begin

q:=a[i,p l/alp.p 1;

for j:=p+l to n+l do a[i,j]:=a[ i,j)-q*a[p,j]; End

End;

{ Faza indirecta } xlnl.=aln.n+ 1 ]/a[n,n]; for i:=n-l down to 1 do Begin

q:=a[i,n+l];

for j:=i+l to n do q :=q-a[ i,j] *xU 1; xfi]:=q/afi,i];

End;

End; { Gauss}

{**********************************************************************} Procedure Iacobi:

Var Y:Vector; i,j:Word; T,Max:Real; {Declararea variabilelor locale}

Begin

{Formarea matricei standard} For i:=l to n do

Begin

126

For i:=l to n do Begin

T:= A[i,n+lJ;

For j:= 1 to n do T:=T +A[i,j]*X[j];

{Transferarea valorilor} {Calculul unei noi aproximatii}

T:= A[i,i];

For j:=l to n do A!i,j]:=-A[i,j]lT; A[i,n+l]:=A[i,n+l]lT; A[i,i):=O;

End;

{Construirea aprox imatiei initiale} For i:=l to n do X[i]:=A[i,n+l]; c:=O;

Repeat

{Calculul unci noi aproximatii} For i:=l to n do

Begin

T:= A[i,n+ 1];

For .r= 1 to n do T:=T +A[i,j]*X[j]; Yli]:=T;

End; c:=c+l;

{Controlul apropierii} Max:=Abs(X[ 1]- Y [1 ]); For j :=2 to 11 do

Begin

T:=Abs(X[j]- YU]); If T>Max Then Max:=T; End;

X:=Y; {Transferarea valorilor}

Until (Max-oelips) or (ce-Nmax);

DN:= c<=Nmax;

End; {Iacobi}

{**********************************************************************} Procedure Seidel;

Var Y:Vector; i,j:Word; T,Max:Real; {Declararea variabilelor locale} Begin

{Formarea matricei standard} For i:=l to n do

Begin

T:= A[i,i];

For j:=l to n do A[i,j]:=-A[i,j]lT; A[i,n+ l]:=A[i,11+ 1]1T; Ali.ilr=O:

End;

{Construirea aproximatiei initiale} For i:=l to 11 do X[i]:=A[i,n+l}; c:=O;

Repeat Y:=X;

127

,

X[i]:=T;

End: c.ec+l:

{Controlul apropierii} Max:=Abs(X( 1]- Y! 1]); For j:=2 to 11 do

Begin

T:=Ahs(X[j]- Yli]); If T>Max Then Max:=T; End;

Until (Max<=Eps) or (cc-Nmax); DN:= c-ceNmax:

End; {Seidel}

{**********************************************************************} Procedure Normalizare;

Var i,j ,k:word; Begin

For i:=1 to 11 do

For j:=1 to 11+ 1 do Begin

C[i,j]:=O;

For k:=1 to 11 do C[i,j]:=C[i,jJ+Alk,iJ* A[k,j]; End;

End; {Normalizare}

{**********************************************************************} LEnd.

Anexa 3. Unitatea de program CNID (Calculul numeric al integralelor definite)

Unit CNID;

{ Notatii comune pentru parametrii subprogramelor: [a,b [-intervalul de integrare; Mvmajoranra modulului derivatei de ordinul k al functiei f(x); n-numarul de divizari ale intervalului]; f-numele funetiei de sub integrala; Eps-precizia de calcul; Intg-valoarea ntegralei }

Interface {**********************************************************************} Type Func == Functiomx.Realj.Real; {Declarare tip functie}

Procedure Dreptunghi __ n(a.b.M'Real: n,start:Word; f:func; Var Intg,Eps:Real); {start- variabila ce spccifica varianta formuJei dreptunghiurilor:

start=O, pentru formula dreptunghiurilor de stanga; start = I-medii; start =2-de dreapta} Procedure Dreptunghi_Eps(a,b,M,Eps:Real; start:Word; f:func; Var Intg:Real; Var n:Word);

Procedure Trapez ji Epsra.b.M'Real; Var n:Word; f:func; Var Intg,Eps:Real; Start:String);

Procedure Simpson_I1_Eps(a,b,M:Real; Var n:Word; f:func; Var Intg,Eps:Real; Start:String);

Implementation {**********************************************************************} Procedure Dreptunghi ,n:

'I Var i.k.Wordrh.x.Rcal; [Declararea variabilelor locale, auxiliare} , Begin

I h:=(b-a)/n; x:=a + start*hl2; Intg:=O;

1\ For ,i:=l to n do Begin

I Intg.e Iutg+ft x): x:=x+h:

End; I

~ If start=I then k:=4 else k:=2;

/' Intg:=Intg*h: Ep,,:=Sqr(b-a)*M/(n*k);

~ End; [ Dreptunghi __ n }

~ {**********************************************************************1 I' Procedure DreprunghiEps;

II Var i.k.Word: h.x.Real; {Deciararea variabilelor locale, auxiliare ] ! Begin

If start= I then k:::::::4 else k:=2; n:=trunc(sqr(b-a)*M/(k*Eps»)+ 1; h:=(b-a)/n: x:=a + start*h/2; Intg:=O; For i:=l to n do

Begin

Intg:=lntg+f(x); x:="x+h:

End;

Intg.elntg=h:

129

------=--====---------======-----=-----===---==---===-=---===~

End; { Dreptunghi Eps ]

{**********************************************************************} Procedure Trapcz_ll_Eps;

Var i:Word; h,x:Real; [Declararea variabilelor locale, auxiliare} Begin

If start='n' then Eps:=(b-a)*sqr(b-a)*M/(l2*n*n)

else n:::::trunc«b-a)*sqrt«(b-a)*M/( 12*Eps»)+ 1; h:=(b-a)/n; x:=a+h; Intg:=O;

For i:=l to 11-] do

Begin

Intg.elntg-ftx): x.ex-i-h; End;

Intg:=h *(f(a)+f(b )+2 * Intg)l2;

End; { Trapez_n_Eps } {**********************************************************************} Procedure Simpson_Il_Eps;

Var i.k.z.Word; h.x.Real; {Declararea variabilelor locale, auxiliare} Begin

If start='n' then Eps:=(b-a)*sqr(sqr(b-a)*M/( 180*sqr(n*n» else Begin

z:=trunc( (b-a)*sqrt(sqrt«b-a)*MI( 180*Eps »». If odd(z) then n:=z+ 1 else 11:=z+2;

End;

h:=(b-a)/n; x.ea-h; Intg:=f(a)+f(b); k:=4; For i:=l to n-I do

Begin

Intg:=lntg+k*f(x); x.ex+h; k:=6-k;

End;

Intg:=h*IntgJ3;

End; { Simpson_l1_Eps } {**********************************************************************}

End.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->