Calcul numeric. Metode numerice de rezolvare a ecuatiilor algebrice ...

download Calcul numeric. Metode numerice de rezolvare a ecuatiilor algebrice ...

of 26

  • date post

    28-Jan-2017
  • Category

    Documents

  • view

    226
  • download

    4

Embed Size (px)

Transcript of Calcul numeric. Metode numerice de rezolvare a ecuatiilor algebrice ...

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    1

    METODE NUMERICE DE REZOLVARE A ECUAIILOR ALGEBRICE I TRANSCENDENTE

    1. SEPARAREA SOLUIILOR ECUAIILOR ALGEBRICE I TRANSCENDENTE

    n cazul, cnd ecuaia algebric sau transcendent are o structur simpl, soluiile pot fi determinate exact i relativ uor. Dac ns structura ecuaiei este complicat, procedura de determinare a soluiilor devine destul de anevoioas. Mai mult dect att, atunci cnd ecuaia modeleaz careva situaii, fenomene care depind de mai muli parametri, valoarea crora este cunoscut doar aproximativ, noiunea de soluie exact i pierde n general sensul. De aceea are sens de a determina careva metode de calcul aproximativ al soluiilor ecuaiilor algebrice i transcendente.

    Fie dat ecuaia f(x) = 0 (1),

    f(x) fiind definit i continu pe un careva interval a x b.

    Orice valoare , pentru care expresia f() = 0 este adevrat se numete zerou al funciei f(x) sau soluie a ecuaiei f(x) = 0

    n cele ce urmeaz se va presupune c ecuaia (1) are soluii distincte (izolate), adic pentru fiecare soluie a ecuaiei exist o vecintate a sa, care nu conine alte soluii.

    Astfel, rezolvarea unei ecuaii algebrice se divide n dou etape:

    1. Separarea intervalelor pe care ecuaia are o singur soluie i

    2. Micorarea pe ct mai mult posibil a fiecrui din aceste intervale (dac se pune problema determinrii tuturor soluiilor) sau a unuia din ele (dac trebuie de determinat doar una din soluii).

    Pentru separarea soluiilor se va folosi urmtoarea teorem din analiza matematic:

    Teorem. Dac funcia f(x) continu pe segmentul [a, b] primete la extremitile lui valori de semn diferit f(a)f(b) 0;

    :)1,1( f (x) < 0;

    (1, + ): f (x) > 0;

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    2

    Deci, ecuaia iniial va avea cel mult trei soluii, cte una pe fiecare din intervalele determinate mai sus. Urmeaz verificarea semnului funciei n extremitile fiecruia dintre intervalele stabilite:

    ( , 1) : lim ( ) ; ( 1) 11 ( , 1) : ( ) 0.

    ( 1,1) : ( 1) 11 (1) 3 ( 1,1) : ( ) 0.

    (1, ) : (1) 3 lim ( ) (1, ) : ( ) 0

    x

    x

    f x f x f x

    f f x f x

    f f x x f x

    = = =

    = = = = = =

    Prin urmare, unica soluie a ecuaiei se afl n intervalul )1,( .

    Exemplul 2. S se determine numrul de soluii a ecuaiei ex + x = 0.

    f (x) = ex + 1; f (x) >0 xR.

    ntruct lim ( ) ; lim ( ) ;x x

    f x f x

    = = se poate afirma c ecuaia iniial are o

    singur soluie.

    Exemplul 3. S se separe rdcinile ecuaiei x3 9x2+24x-19=0 pe segmentul [0, 8]

    f(x) = x3 9x2 + 24x 19; f (x) = 3x2 18x+ 24.

    Rezolvnd ecuaia f (x) = 0 se obin soluiile x1 = 4, x2 = 2. x f(x) Semn 0 19 2 1 + 4 3 8 109 +

    Deci ecuaia va avea trei soluii, cte una pe fiecare din segmentele [0,2], [2,4], [4,8].

    Exemplul 4. S se separe rdcinile ecuaiei 013249 23 =+ xxx pe segmentul ]8,0[ .

    f(x)=x3 9x2 + 24x 13; f (x) = 3x2 18x + 24. Rezolvnd ecuaia f (x) = 0, se obin soluiile x1 = 4 , x2 = 2.

    x f(x) Semn 0 13 2 7 + 4 3 + 8 115 +

    Deci ecuaia va avea o singur soluie localizat pe segmentul [0,2].

    Cunoaterea unui limbaj de programare uureaz mult studierea comportamentului unei funcii i n particular procesul separare a soluiilor ecuaiei f(x) = 0. Urmtorul program Pascal permite vizualizarea n regim text a graficului unei funcii i separarea soluiilor.

    Prin modificarea subprogramului (funcia f) n care este descris funcia graficul creia se construiete, programul se adapteaz la oricare alt funcie acceptabil, introdus de utilizator:

    program cn002; uses crt; const

    nmax=50; ymax=20; deplas=15;

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    3

    type ecran=array[0..21,0..78] of char; valorireal=array[1..nmax] of real; valoriintreg=array[1..nmax] of integer;

    var graf: ecran; y: valorireal; ynorm: valoriintreg; vmax,vmin,a,b: real; i,j,liniezero: integer;

    function f(x:real):real;

    begin f:=exp(cos(2*x)*ln(x))+3*sin(x); end;

    procedure calcul(a,b:real;var z:valorireal);

    var h: real; begin h:=abs(b-a)/(nmax-1); for i:=1 to nmax do z[i]:=f(a+(i-1)*h); end;

    procedure normare(var fz:valoriintreg; z:valorireal);

    var max,delta: real; begin max:=abs(z[1]); vmax:=z[1]; vmin:=z[1]; for i:=2 to nmax do begin if abs(z[i])>max then max:=abs(z[i]); if z[i]>vmax then vmax:=z[i]; if z[i]

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    4

    Desenul 1. Graficul funciei, generat de programul cn002.

    end; begin

    repeat clrscr; write('Introdu extremitatile intervalului: '); readln(a,b); calcul(a,b,y); normare(ynorm,y); liniezero:= ymax div 2; modeleazagrafic(graf); until upcase(readkey)='N';

    end.

    Rezultate Pentru [1, 10] graficul generat de program este dat n desenul 1.

    Analiznd graficul generat de program, se observ existena a dou soluii a ecuaiei

    cos(2 ) 3sin( ) 0xx x+ = pe [1, 10].

    Dup repetarea programului pe [2, 4] i [4 6] se obin respectiv graficele din desenele 2 i 3, care indic existena soluiilor separate pe fiecare segment. ngustarea repetat a fiecrui segment ar permite localizarea mai exact a soluiilor, dar odat ce rdcinile sunt separate, aceast problem poate fi rezolvat prin metode numerice.

    ntrebri i exerciii

    1. Ce numim soluie a unei ecuaii?

    2. Ce condiii trebuie s satisfac funcia f(x), pentru ca pe un segment dat s existe cel puin o rdcin a ecuaiei f(x)=0? Dar pentru existena exact a unei soluii?

    Separai soluiile ecuaiilor:

    Desenul 2. Detalizarea graficului funciei pe [2,4] Desenul 3. Detalizarea graficului funciei pe [4,6]

    2

    4 23

    3 2

    4 2

    2

    ) 3 84 2

    ) 2 6 48 17

    ) 14 24 4

    )

    ) ( 2 2)

    ) [sin(ln( )) cos(ln( ))]

    x

    x

    x xa y x x

    b y x x x

    c y x x x

    d y e

    e y e x x

    f y x x x

    = + +

    = +=

    == +=

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    5

    3. Elaborai un program, care calculeaz valorile unei funcii continue date pe un segment [a,b] cu pasul h, i afieaz toate intervalele, la extremitile crora funcia are valori cu semn opus.

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    6

    2. FORMULA GENERAL DE DETERMINARE A ERORII*

    Teorem. Fie , soluia exact iar x - soluia aproximativ a ecuaiei f(x) = 0 pe un segment [a, b], pe care f (x) are semn constant, iar m o valoare pentru care este adevrat inegalitatea:

    | f (x) | > m > 0 pe [a, b].

    n acest caz este corect estimarea erorii de calcul x prin expresia ( ) .f xxm

    (n particular, drept m putem lua cea mai mic valoare a f (x) pe segmentul [a,b] )

    Demonstraia se face n baza teoremei Lagrange. Conform acestei teoreme valoarea intermediar c ntre i x astfel nct ( ) ( ) ( ) ( );f x f x f c =

    Deoarece f( ) = 0 iar | f (x) | m, se obine ( ) .f xxm

    g n practic utilizarea formulei deduse mai sus d rezultate destul de imprecise, de aceea se folosesc diverse metode de ngustare a segmentului [a,b], i utilizarea n calitate de estimare a erorii a lungimii intervalului care conine att soluia aproximativ, ct i cea exact.

    * Materialul acestui paragraf este opional. La formula general a erorii se face referin n paragraful 3.5 Me-toda Newton.

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    7

    Desenul 4. Calculul consecutiv al segmentelor, care conin soluia ecuaiei.

    3. METODA BISECIEI

    Fie dat funcia f(x), continu pe segmentul [a, b] i f(a)f(b) < 0 .

    Se cere s se determine o soluie a ecuaiei

    f(x) = 0 (1)

    pe segmentul [a, b]. Proprietile funciei asigur existena a cel puin o soluie pe segmentul [a,b].

    Una dintre cele mai simple metode de determi-nare a unei soluii a ecuaiei f(x) = 0 este metoda biseciei. Metoda presupune determi-narea punctului de mijloc c a segmentului [a,b] apoi calculul valorii f(c). Dac f(c) = 0, atunci c este soluia exact a ecuaiei. n caz contrar soluia este cutat n continuare pe acel dintre segmentele [a, c] i [c, b], pentru care semnul funciei n extremiti este diferit (desenul 4).

    Dac f(a)f(c)>0, atunci soluia e cutat n continuare pe segmentul [a1, b1], unde a1 c1, b1 b. n caz contrar extremitile noului segment vor fi a1 a, b1 c. Procesul se reia pe segmentul [a1, b1], repetndu-se pn cnd nu se obine soluia exact sau (n majoritatea absolut a cazurilor!) devierea soluiei calculate de la cea exact nu devine suficient de mic.

    n urma iteraiilor succesive se obine consecutivitatea segmentelor

    [a0,b0], [a1, b1], [a2, b2], ..., [ai, bi], ...

    Pentru fiecare din ele are loc relaia f(ai)f(bi) < 0, i=0, 1, 2, .... (2)

    Estimarea erorii. Deoarece e un punct al segmentului [ai, bi] rezult c diferena dintre soluia exact i cea calculat nu este mai mare dect lungimea segmentului [ai, bi]. Prin urmare, localizarea soluiei pe un segment cu lungimea asigur o eroare ce nu depete lungimea a segmentului.

    iii aba =

  • CALCUL NUMERIC. Metode numerice de rezolvare a ecuaiilor algebrice i transcendente

    8

    Algoritmizarea metodei

    Algoritmul de calcul pentru un numr prestabilit n de aproximri succesive:

    Pas 0 Iniializare