luni, 7 octombrie 2019

M ETODE NUM ERICE DE REZOLVARE A ECUAŢIILOR ALGEBRICE SI TRANSCENDENTE

M ETODE NUM ERICE DE REZOLVARE
A ECUAŢIILOR ALGEBRICE SI TRANSCENDENTE
După studierea acestui capitol, veţi fi capabili să:
• recunoaşteţi prezenţa soluţiilor unei ecuaţii algebrice sau transcendente pe un
interval dat;
• separaţi intervalele domeniului de definiţie a unei funcţii f(x), care vor conţine
exact o soluţie a ecuaţiei f(x) = 0;
• utilizaţi algoritmii de rezolvare a ecuaţiilor algebrice şi transcendente prin
metoda bisecţiei, metoda coardelor şi metoda tangentelor;
• elaboraţi programe de rezolvare a ecuaţiilor algebrice şi transcendente prin
metoda bisecţiei, metoda coardelor şi metoda tangentelor;
• combinaţi metodele studiate pentru elaborarea algoritmilor eficienţi de
rezolvare a ecuaţiilor algebrice şi transcendente şi a programelor care realizează
aceşti algoritmi.
3.1. Separarea soluţiilor ecuaţiilor algebrice şi transcendente
A rezolva ecuaţia algebrică sau transcendentă (în continuare ecuaţia) f(x) = 0 înseamnă
a determina acele valori ale variabilei x pentru care egalitateaf(x) = 0 este una adevărată.
În cazul cînd ecuaţia are o structură simplă, soluţiile ei pot fi determinate exact şi relativ
uşor prin metodele analitice, care se studiază în cadrul cursului liceal de matematică.
Dacă însă structura ecuaţiei este complicată, procedura de determinare a soluţiilor devine
destul de anevoioasă. Mai mult decît atît, atunci cînd ecuaţia modelează anumite situaţii,
fenomene care depind de mai mulţi parametri, iar valoarea acestora este cunoscută doar
aproximativ, noţiunea de soluţie exactă îşi pierde în general sensul. Din acest motiv, este
util de a cunoaşte şi metodele de calcul aproximativ
al soluţiilor ecuaţiilor şi algoritmii care realizează
aceste metode.
Fie dată ecuaţia
f(x) = 0, (1)
f (x) fiind definită şi continuă pe un oarecare interval a < x < b.
Orice valoare pentru care expresia f(£ ) = 0
este adevărată, se num eşte zerou al funcţiei f(x)
sau soluţie a ecuaţiei f(x) = 0.
Ne amintim!
Dacă funcţia f (x) are forma unui
polinom sau poate fi adusă la această formă, ecuaţiaf(x) =0 se numeşte
algebrică.
Exemplu: 3x-7=0.
În caz contrar - cîndf(x) nu este una
polinomială -, ecuaţia se numeşte
transcendentă.
Exemplu: sin(2jc) + Vcos2 x + ex = 0.
22
În cele ce urmează se va presupune că ecuaţia (1)
are soluţii distincte (izolate), adică pentru fiecare
soluţie a ecuaţiei există o vecinătate a sa, care nu
conţine alte soluţii.
Astfel, rezolvarea prin metode numerice a unei
ecuaţii se divide în două etape:
1. Separarea intervalelor pe care ecuaţia are o
singură soluţie.
2. Micşorarea pe cît mai mult posibil a fiecărui
din aceste intervale (dacă se pune problema determinării tuturor soluţiilor) sau a unuia din ele (dacă
trebuie de determinat doar una din soluţii).
Metoda analitică. Pentru separarea analitică a soluţiilor vor fi folosite proprietăţile
derivatei.
Dacă soluţiile ecuaţiei f'(x)=0 pot fi uşor calculate, atunci, pentru a separa soluţiile
f(x)=0, este necesar:
1. să se determine soluţiile distincte a < x1 < x2 < ..., < x n < b ale ecuaţieif'(x)=0;
2. considerînd a = x0 şi b = xn+1, să se calculeze valorilef(x0), f(x1), ...,/(xn+1). Segmentele
[x., x.+1], i = 0, ..., n, pentru caref(x ) x f(x M) < 0 vor conţine cîte cel puţin o soluţie a
ecuaţiei f (x)=0.
Ne amintim!
Teoremă. Dacă funcţia f (x), continuă pe segmentul [a, b], primeşte la extremităţile lui valori de
semn diferit (f(a) x f (b) < 0), atunci
pe acest segment există cel puţin un
punct £, astfel încîtf (£) = 0. Dacă pe
[a, b] există derivata f'(x), continuă,
care are un semn constant, atunci £
este soluţie unică a ecuaţiei f (x) = 0
pe acest segment.
Exemplul 1: Să se determine numărul de soluţii ale ecuaţiei ex + x = 0
f'(x) = ex + 1; f'(x) >0 V xeR.
Întrucît ecuaţia iniţială are o singură soluţie.
X —» -o o X->co
Exemplul 2: Să se separe rădăcinile ecuaţiei x3 - 9x2 + 24x - 19 = 0 pe segmentul [0, 8].
R ezolvare: ,
f (x ) = x 3 - 9x 2 + 24x - 19;
f'(x) = 3x2 - 18x + 24.
Rezolvînd ecuaţia f'(x) = 0, se obţin soluţiile x 1 = 2, x2 = 4.
x f (x) Semn f (x)
0 -19 -
2 1 +
4 -3 -
8 109 +
Deci ecuaţia va avea trei soluţii, cîte una pe fiecare din segmentele [0, 2], [2, 4], [4, 8].
Metoda grafică. O altă posibilitate de separare a rădăcinilor ecuaţiei f (x) = 0 este
cercetarea directă a graficului funcţiei f (x). Pentru construcţia acestuia pot fi folostie atît
aplicaţii software specializate1, cît şi programe simple, elaborate cu ajutorul instrumentelor
unui limbaj de programare.
1 MatCAD, Matematica, Derive etc.
23
Separarea grafică a soluţiilor unei ecuaţii pe un segment dat poate fi realizată şi local,
cu ajutorul unei aplicaţii de calcul tabelar. Este suficient să se construiască un tabel cu
două coloane. Prima coloană va reprezenta o divizare a segmentului în segmente
elementare de lungimi egale. Cea de-a doua coloană va conţine o formulă care calculează
valoarea funcţiei f(x) pentru valorile respective din prima coloană. În baza datelor din
coloana cu valorile f (x) se construieşte o diagramă liniară, care reprezintă graficul funcţiei
analizate.
Exemplu: . Soluţiile se caută pe segmentul [0,2, 10]
(fig- 3.1 a, 31 b).
Fig. 3.1a. Funcţia f(x) reprezentată tabelar
în foaia de calcul. Colana A conţine
valorile x de la 0 ,2 la 1 0 cu p a su l 0,2.
Coloana B conţine valorile f(x)
Fig. 3.1b. Funcţia f(x) reprezentată grafic în baza
datelor din tabel. Pot fi uşor identificate două
segmente oarecare, ce conţin exact cîte o soluţie
a ecuaţiei f(x)=0, de exemplu: [3, 5] şi [5, 6 ]
Întrebări si exerciţii j *
O Ce numim soluţie a unei ecuaţii?
e Ce condiţii trebuie să satisfacă funcţiaf(x), pentru ca pe un segment dat să fie cel puţin o
rădăcină a ecuaţieif(x)=0? Dar pentru existenţa exact a unei soluţii?
© Determinaţi analitic numărul de soluţii reale ale ecuaţiei:
a) x5 - 5x + 7 = 0; b) x3 - 9x2 + 24x - 13= 0.
© Elaboraţi un program, care pentru funcţia f(x), continuă pe [a, b], realizează o divizare a
segmentului în n segmente de lungime egală şi afişează toate segmentele la extremităţile
cărora funcţia are valori de semn opus:
a) ' pe [-10, 10], n = 100;
b) /(x ) = sm(3x) + 3cos(x)-l pe [-2, 2], n = 100.
© Separaţi, folosind cea mai potrivită metodă, soluţiile ecuaţiilor:
a) ; e) e*(x2-2 x + 2) = 0;
4 2
b) 2x3 - 6x2 - 48x+17 = 0; f) jc[sin(ln(x)) - cos(ln(jc))] = 0;
c) ; g) ln(x) + ^/sin(3x) + 7 - x2 = 0.
, :
3.2. Metoda bisectiei
9
Fie dată funcţiaf(x), continuă pe segmentul [a, b], şi f (a) x f (b) < 0.
Se cere să se determine pe segmentul [a, b] o soluţie a ecuaţiei
f(x) = 0. (1)
Proprietăţile funcţiei asigură existenţa a cel puţin unei soluţii pe acest segment.
Una dintre cele mai simple metode de determinare a unei soluţii a ecuaţiei f(x) = 0
este metoda bisecţiei. Metoda presupune determinarea punctului de mijloc c al segmentului [a, b], apoi calculul valorii f (c). Dacă f (c) = 0, atunci c este soluţia exactă a ecuaţiei.
În caz contrar, soluţia este căutată pe unul dintre segmentele [a, c] şi [c, b]. Ea va aparţine
segmentului pentru care semnul funcţiei în extremităţi este diferit (fig. 3.2).
Dacăf(a) x f(c) > 0, atunci soluţia e căutată în continuare pe segmentul [a1, b1], unde
a1 primeşte valoarea c, iar b1 - valoarea b. În caz contrar, a1 primeşte valoarea a, iar b1 -
valoarea c. Procesul de divizare se reia pe segmentul [a1, b1], repetîndu-se pînă cînd nu se
obţine soluţia exactă sau (în majoritatea absolută a cazurilor!) devierea soluţiei calculate
c. de la cea exactă nu devine suficient de mică.
În urma divizărilor succesive se obţine consecutivitatea segmentelor
[a0,b0], [a1, b1], [a2, b2], ..., [a., b.], ... .
Pentru fiecare dintre ele are loc relaţia
f(a ) x f(b ) < 0, i = 0, 1, 2, ... . (2)
E stim a re a ero rii. Deoarece soluţia exactă ^
a ecuaţiei este un punct al segmentului [a, b],
rezultă că diferenţa dintre soluţia exactă şi cea
calculată nu depăşeşte lungimea acestui segment. Prin urmare, localizarea soluţiei pe un
segment cu lungimea e asigură o eroare de
calcul a soluţiei ce nu depăşeşte valoarea e:
|^-c,.|< s
ALGORITMIZAREA METODEI
Fig. 3.2. Calculul consecutiv al segmentelor,
care conţin soluţia ecuaţiei f{x)= 0
Pornind de la descrierea matematică a metodei, putem separa două cazuri distincte
de oprire a procesului de calcul al soluţiei ecuaţiei f (x) = 0 pentru metoda bisecţiei:
A1. A lg o r itm u l d e calcu l p e n tr u un n u m ă r p r e s ta b ilit n d e d iv iz ă r i con secu tive:
P a su l 0. Iniţializare: i ^ 0.
P a su l 1. Determinarea mijlocului segmentului . .
P a su l 2. Reducerea segmentului ce conţine soluţia: dacăf (c) = 0,
atunci soluţia calculată este x = c. SFÎRŞIT.
În caz contrar, dacă f(a) x f (c) > 0, atunci a ^ c; b ^ b, altfel a ^ a; b ^ c.
a + b
P a su l 3. i i + 1. Dacă i = n, atunci soluţia calculată este . SFÎRŞIT. ^ ’ 9 În caz contrar, se revine la pasul 1.
25
a + b
A2. Algoritmul de calcul pentru o precizie1 £ dată:
Pasul 1. Determinarea mijlocului segmentului c <=
z „
Pasul 2. Dacăf(c) = 0, atunci soluţia calculată este x = c. SFÎRŞIT.
În caz contrar, dacăf (a) x f(c) > 0, atunci a ^ c; b ^ b, altfel a ^ a; b ^ c.
Pasul3. Dacă |b - a|< e, atunci soluţia calculată este . . SFÎRŞIT.
În caz contrar, se revine la pasul 1.
Exemplul 1: Să se determine o rădăcină a ecuaţiei x4 + 2x3 - x -1 = 0 pe segmentul
[0, 1] pentru 16 divizări consecutive.
Deoarece numărul de aproximări succesive este fixat, iar extremităţile segmentului
cunoscute, atribuirile se realizează nemijlocit în program.
program cn05;
var a,b,c: real;
i,n :integer;
function f(x:real):real;
begin f :=sqr(sqr(x))+2*x*sqr(x)-x-1;end;
begin a:=0; b:=1; n:=16;
for i:=1 to n do
begin c :=(b+a)/2;
writeln('i=',i:3,' x=',c:10:8,' f(x)=',f(c):12:8);
if f(c)=0 then break3
else if f(c)*f(a)>0 then a:=c else b:=c;
end;
end.
Rezultate: i= 1 x=0.50000000 f(x)= -1.18750000
i= 2 x=0.75000000 f(x)= -0.58984375
i= 15 x=0.86679077 f(x)= 0.00018565
i= 16 x=0.86677551 f(x)= 0.00009238
Exemplul 2: Să se determine o rădăcină a ecuaţiei 6cos(x) + 8sin(x) = 0 pe segmentul
[2, 4] cu precizia e=0,00017.
program cn06;
var a,b,c,eps: real;
function f(x:real):real;
begin f :=6*cos(x)+8*sin(x);end;
begin a:=2; b:=4; eps:=0.00017;
repeat
c := (b+a)/2;
writeln('x=',c:10:8,' f(x)=',f(c):12:8);
if f(c)=0 then break
else if f(c)*f(a)>0 then a:=c else b:=c;
until abs(b-a)<eps;
end.
26
În contextul dat precizia £ semnifică o eroare de calcul, care nu depăşeşte valoarea £.
Instrucţiune de salt necondiţionat care întrerupe execuţia instrucţiunii ciclice în care se conţine.
R ezu ltate: x=3.00000000 f(x)= -4.81099492
x=2.50000000 f(x)= -0.01908454
x=2.49829102 f(x)= -0.00199471
x=2.49816895 f(x)= -0.00077401
Întrebări si exerciţii * >
O În ce cazuri se folosesc metode aproximative de determinare a soluţiilor ecuaţiilor algebrice?
Descrieţi metoda bisecţiei. Care sînt priorităţile ei? Dar neajunsurile? Formula pentru estimarea
erorii, dedusă în paragraful curent, este | |. Exprimaţi diferenţa dintre valoarea
exactă si cea calculată printr-o formulă care depinde doar de extremităţile segmentului iniţial
si numărul de divizări realizate.
e Descrieţi algoritmul metodei bisecţiei.
e Determinaţi prin metoda bisecţiei soluţiile ecuaţiilor:
1. ex - x2 = 0 pe [-1, -0,5];
2. x3 - x -1 = 0 pe [1,2];
3. x3 + 3x2 - 3 = 0 pe [-3, -2];
4. x5 - x - 2 =0 pe [1,2].
a) pentru 10, 20, 40 de divizări ale segmentului iniţial;
b) cu precizia £ = 0,001; 0,0001; 0,00001;
c) în condiţiile punctului precedent determinaţi numărul de divizări necesare pentru a obţine
precizia cerută.
O Determinaţi prin metoda bisecţiei soluţiile ecuaţiilor de pe intervalele separate în exerciţiile 3,
4, 5, p. 24, pentru 10, 20, 30 de divizări consecutive.
3.3. Metoda coardelor
Metoda bisecţiei, cu toată simplitatea ei, nu este eficientă în cazurile cînd rezultatul
trebuie obţinut printr-un număr redus de iteraţii, cu o exactitate înaltă. Astfel stînd
lucrurile, este mai potrivită m e to d a coardelor, care constă în divizarea segmentului în
părţi proporţionale, proporţia fiind dată de punctul de intersecţie al coardei care uneşte
extremităţile segmentului cu axa 0x .
Fie dată funcţiaf(x), care posedă următoarele proprietăţi:
1. f(x) continuă pe segmentul [a, b] şif(a) xf(c) < 0.
2. Pe segmentul [a, b] există/'(x) ^ 0; f'(x) ^ 0, continui, iar semnul lor pe [a, b] este
constant.
Proprietăţile enumerate garantează existenţa soluţiei unice a ecuaţiei f (x) = 0 pe [a, b].
Metoda coardelor presupune alegerea în calitate de aproximare a soluţiei punctul
determinat de intersecţia dreptei ce trece prin punctele (a, f(a)) şi (b, f(b)) cu axa 0x.
Pentru realizarea metodei se stabileşte extremitatea e a segmentului [a, b] prin care
se va duce o serie de coarde (fig. 3.3). Această extremitate este determinată de condiţia:
f (e) x f ” (e) > 0.
Cealaltă extremitate a segmentului [a, b] se consideră aproximare iniţială a soluţiei: x0.
Prin punctele (e, f(e)) şi (x0, f (x0)) se construieşte o coardă. Se determină punctul x1
Fig. 3.3. Apropierea succesivă de soluţia
ecuaţiei prin metoda coardelor
Ne amintim!
Teorema Lagrange
Fie f:[a, b] -> R, continuă şi derivabilă, pe [a, b]. Atunci există ce (a, b),
astfel încît:
f(b) -f(a) = (b-a) f(c).
în care coarda intersectează axa 0x. Punctul x1 este
considerat următoarea aproximare a soluţiei.
Procesul se repetă, coarda următoare fiind dusă
prin punctele (e, f(e)) şi (x1,f(x1)). Astfel se obţine
şirul de aproximări x0, x1, x2, ... x, xi+1, ... xn ...,
limita căruia este soluţia exactă a ecuaţiei f (x) = 0.
Punctele e şi x0 sînt cunoscute. Folosind ecuaţia
dreptei ce trece prin două puncte, putem determina aproximarea x1 (f (x1) = 0):
*-*o = t - / ( * o) ,
e~ x0 ’
de unde
xi - xo------ î ^ l ----(e - x 0).
În general, avînd calculată aproximarea x._1,
putem determina următoarea aproximare x. prin
formula recurentă:
X i = X i - l ~
f ( Xi-l) (3)
i = 1, 2, ... .
Se demonstrează că şirul de valori x1, x2, ... x,
xi+1, . xn ... calculate după formula (3) converge
către soluţia ^ a ecuaţiei f (x) = 0.
Eroarea metodei
Faptul că şirul aproximărilor succesive prin metoda coardelor converge către soluţia
exactă implică următoarea concluzie: eroarea soluţiei calculate va fi invers proporţională
cu numărul de iteraţii efectuate. Totuşi se poate determina şi formula care permite estimarea erorii de calcul.
Fie f(x) satisface condiţiile (1), (2). Dacă ^ - soluţia exactă a ecuaţiei f(x) = 0 pe
segmentul [a, b], iar M1 şi m1 - marginea superioară şi inferioară a f '(x) pe acelaşi segment, din teorema Lagrange şi formula recurentă pentru calculul aproximărilor succesive
rezultă:
Mj -m l
, sau
M1—m[
x lx ;. - X ;._x I < E. (4)
Prin urmare, dacă se cere calculul soluţiei cu o exactitate dată e, calculele se vor repeta
conform formulei (3) pînă cînd inegalitatea (4) nu va deveni una adevărată.
ALGORITMIZAREA METODEI
Aplicarea metodei coardelor necesită o cercetare prealabilă a funcţiei f (x), pentru
stabilirea extremităţii fixe, din care vor fi trasate coardele. Numărul n de aproximări
succesive ale soluţiei poate fi indicat în enunţul problemei sau determinat de o condiţie.
28
În ambele cazuri calculul se realizează conform formulei (3). Condiţia de oprire în primul
caz va fi aplicarea repetată de n ori a formulei (3); în cel de al doilea - îndeplinirea
condiţiei (4).
Determinarea extremităţii fixe. Pentru a evita calculul f ”(x), se va folosi următorul
procedeu: se determină semnul f (x) în punctul c de intersecţie cu axa 0x al dreptei care
trece prin punctele (a, f(a)) şi (b,f(b)). Fixă va fi acea extremitate e a segmentului [a, b],
pentru care se îndeplineşte condiţia: f (e)xf(c) < 0.
A1. Algoritmul de calcul pentru un număr prestabilit n de aproximări succesive:
Pasul 1. Determinarea extremităţii fixe e şi a aproximării x0:
c <= a — m
m - m
0b -a );
dacă f (c) x f(a) < 0, atunci e ^ a, x0 ^ b, altfel e ^ b, x0 ^ a; i ^ 0.
' - f(x ) Pasul 2. Calculul x , conform formulei
i+1
Pasul 3. Dacă i + 1 = n, atunci soluţia calculată x ^ x.. SFÎRŞIT.
În caz contrar, i ^ i+1 şi se revine la pasul 2.
A2. Algoritmul de calcul pentru o exactitate £ dată:
Deoarece în formula de estimare a erorii figurează mărimile M1 şi m1, atunci cînd
valorile lor nu sînt indicate în enunţul problemei, este necesară descrierea analitică a f '(x)
şi calcularea M1 şi m1.
Pasul 1. Determinarea extremităţii fixe e şi a aproximării x0:
m (b-a))
m - m
dacă f (c) x f(a) < 0, atunci e ^ a, x0 ^ b, altfel e ^ b, x0 ^ a; i ^ 0.
f (jc*) Pasul 2. Calculul xi+1 conform formulei
Pasul 3. Dacă , atunci soluţia calculată x ^ x . SFÎRŞIT. -TWj
«1
În caz contrar, i ^ i+1 şi se revine la pasul 2.
Exemplul 1: Fie dată funcţiaf(x) = ln(xsinx). Să se calculeze soluţia aproximativă
a ecuaţiei f(x) = 0 pe segmentul [0,5; 1,5] pentru 10 aproximări succesive, utilizînd
metoda coardelor.
Pentru acest exemplu, preprocesarea matematică nu este necesară.
Deoarece numărul de aproximări succesive este fixat, iar extremităţile segmentului
cunoscute, atribuirile respective vor fi realizate direct în corpul programului.
program cn07;
var a,b,e,c,x: real;
n,i: integer;
function f(x:real):real;
begin f :=ln(x*sin(x));end;
29
begin a:=0.5; b:=1.5; n:=10;
{determinarea extremitatii fixe e si a aproximării iniţiale x0}
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)>0 then begin e:=b; x:=a; end
else begin e:=a; x:=b; end;
{calculul iterativ al solutiei}
for i:=1 to n do
begin x:= x-(f(x))/(f(e)-f(x))*(e-x);
writeln(x:10:8,' ',f(x):12:8);
end;
end.
Rezultate: i= 1 x=1.27995775 f(x)= 0.20392348
i= 2 x=1.18251377 f(x)= 0.09028687
i= 9 x=1.11427651 f(x)= 0.00016577
i= 10 x=1.11420523 f(x)= 0.00006678
Exemplul 2: Fie dată funcţia/ (x) = x4 - 3x2 + 7,5x - 1. Să se calculeze soluţia aproximativă a ecuaţiei/ (x) = 0 pe segmentul [-0,5; 0,5] cu exactitatea e = 0,0001, utilizînd metoda
coardelor. Pentru funcţia dată pe [-0,5; 0,5] M1 şi m1 sînt, respectiv, egale cu 10 şi 5.
Pentru simplitate, atribuirile necesare vor fi realizate direct în corpul programului.
program cn08;
var
Msup,minf,a,b,e,x,xnou,xvechi,eps: real;
function f(x:real):real;
begin
f:=sqr(sqr(x))-3*sqr(x)+7.5*x-1;
end;
begin
a:=-0.5; b:=0.5; eps:=0.0001;
Msup:=10; minf:=5;
{determinarea extremitatii fixe si a aproximarii initiale}
x:=a- (f (a) ) / (f (b) -f (a) ) * (b-a) ;
if f( x)*f(a)>0 then begin e:=b; xnou:=a; end
else begin e:=a; xnou:=b; end;
{calculul iterativ al solutiei}
repeat
xvechi:=xnou;
xnou:= xvechi-(f(xvechi))/(f(e)-f(xvechi))*(e-xvechi);
writeln(' x=',xnou:10:8,' f(x)=',f(xnou):12:8);
until abs((Msup-minf)/minf*(xnou-xvechi))<eps;
end.
Rezultate: x=0.22500000 f(x)= 0.53818789
x=0.15970438 f(x)= 0.12191694
x=0.14130134 f(x)= 0.00026052
x=0.14127062 f(x)= 0.00005579
30
Întrebări si exerciţii > >
O Explicaţi esenţa metodei coardelor. Descrieţi metoda grafic.
e Cum depinde extremitatea fixă de semnul f'(x)l
e Descrieţi procesul de determinare a extremităţii fixe. Cum poate fi omis calculul f'(x)?
O Descrieţi pe pasi algoritmul metodei coardelor pentru un număr fix de iteraţii.
e Determinaţi soluţiile ecuaţiilor, utilizînd metoda coardelor, pentru 10, 20, 30 de iteraţii:
a) x3 - 0,2x2 + 0,2x - 2,1 = 0 pe [1, 2];
b) 5x3 - 20x + 3 = 0 pe [o, l];
c) ex -x2 = 0 pe [-1, 0].
© Separaţi soluţiile ecuaţiilor care urmează. Rezolvaţi ecuaţiile folosind metoda coardelor:
a) tg(0,55x + 0,1) - x2 = 0 pentru 5, 25 de iteraţii;
b) x3 - 0,2x2 + 0,5x + 1,5 = 0 pentru 3, 9, 27 de iteraţii.
© Determinaţi prin metoda coardelor soluţiile ecuaţiilor de pe intervalele separate în exerciţiile 3, 4, 5,
p. 24, pentru 10, 20, 30 de iteraţii. Comparaţi rezultatele cu cele obţinute în exerciţiul 4, p. 27.
Explicaţi diferenţele.
O Fie dată funcţiaf(x) = x[sin(ln(x)) - cos(ln(x))]. Determinaţi soluţia ecuaţieif(x) = 0 pe
segmentul [2, 3] cu exactitatea £ = 0,0001, utilizînd metoda coardelor.
3.4. Metoda Newton
Fie dată funcţia f (x), care posedă următoarele proprietăţi:
1. f(x), continuă, pe segmentul [a, b] şi f (a)f (b) < 0 .
2. Pe segmentul [a, b] există f (x) ^0, f "(x) ^ 0, continui, şi semnul lor pe [a, b] este
Urmează să se rezolve ecuaţiaf(x) = 0 pentru x e [a, b]. Se va încerca rezolvarea
problemei prin trasarea consecutivă a unor tangente la graficul funcţiei, prima dintre ele
fiind construită prin extremitatea E0 (x0, y0) a segmentului [a, b], extremitate pentru care
se respectă condiţia: f (x0) x f "(x0) > 0.
Fie că tangenta cu numărul i intersectează axa 0x în punctul xi (fig. 3.4). Următoarea
tangentă (i+1) va fi trasată prin punctul E+ cu coordonatele (xi, f (xi)) şi va intersecta axa
absciselor în punctul x.+1. Şirul de valori x0, x1, x2, ..., xi, x.+1, ... va converge către soluţia
ecuaţiei f(x) = 0. Această metodă de calcul al soluţiei ecuaţiei f(x)=0 este numită metoda
tangentelor sau Newton, după numele matematicianului care a introdus-o.
Pentru a calcula valorile x1, x2, ... xi, ..., se va
folosi ecuaţia tangentei la funcţia ce trece y E»
printr-un punct dat:
constant.
În caz general ecuaţia (5) reprezintă tangenta
la funcţia f(x), care trece prin punctul (x;, f(x)).
Ea va intersecta axa absciselor în punctul cu
coordonatele (xi+1,0). În consecinţă se obţine:
y - f(x) = f'(x)(x - x(). (5)
( 6 ) Fig. 3.4. Convergenţa şirului de valori
x0, x v x2, ..., x , x.+1, ... către soluţia exactă §
31
Eroarea metodei
Procesul iterativ de calcul poate fi oprit fie după repetarea unui număr prestabilit de
ori, fie după atingerea unei exactităţi cerute.
Eroarea se va estima conform formulei:
unde
W I M2 , -.2
e = , 2/Wj
x ., x.+1 - două aproximări succesive ale soluţiei calculate,
M2 - supremul/"(x) pe [a, b],
m1 - infimul/ '(x) pe [a, b].
(7)
ALGORITMIZAREA METODEI
Numărul de aproximări succesive în procesul de calcul poate fi stabilit apriori sau
determinat de o condiţie. Mai întîi se stabileşte extremitatea segmentului care va servi
drept aproximare iniţială. Calculul aproximării următoare se realizează în ambele cazuri
conform formulei (6). Condiţia de oprire a calculelor va fi în primul caz generarea aproximării cu indicele cerut; în cel de al doilea - îndeplinirea condiţiei (7).
A1. A lg o r itm u l d e ca lcu l p e n tr u un n u m ă r d a t d e a p ro x im ă ri succesive:
Pentru a realiza acest algoritm, este suficient să fie cunoscute descrierile analitice pentru
/ (x) şi / '(x). Dacă descrierea / '(x) nu este indicată în enunţ, urmează să fie calculată.
Aproximarea iniţială se deduce utilizînd procedeul similar determinării extremităţii fixe
pentru metoda coardelor.
.f(rt\
P a su l 1. Determinarea aproximării iniţiale x_: -
’ 0
dacă/ (c) x / (a) < 0, atunci x0 ^ a, altfel x0 ^ b; i ^ 0.
P a su l 2. Se calculează xi+1 conform formulei x;+1 = xt -
P a su l 3. Dacă i+1 = n, atunci soluţia calculată x ^ x , i+1 În caz contrar, i ^ i+1, apoi se revine la pasul 2.
/(* ,)
/'(* ,)'
. SFÎRŞIT.
A2. A lg o r itm u l d e ca lcu l p e n tr u o e x a c tita te £ d a tă :
În formula de estimare a erorii figurează mărimile M2 şi m1. Atunci cînd valorile lor
nu sînt indicate în enunţul problemei, este necesară o preprocesare matematică pentru
stabilirea M2 şi m1. Suplimentar sînt necesare descrierile analitice pentru / (x) şi f(x).
r / \
P a su l 1. Determinarea aproximării iniţiale x0: ■
dacă/(c) x/(a) < 0, atunci x0 ^ a, altfel x0 ^ b; i ^ 0.
P a su l 2. Se calculează x , conform formulei . i+1
M 2 -
P a su l 3. Dacă - , atunci soluţia calculată x ^ x ,. SFÎRŞIT. ,+i .
În caz contrar, i ^ i+1 şi se revine la pasul 2.
/(* ,)
f ( x ,y
32
Exemplul P: Fie dată funcţia f(x) = x3 - 2x2 + x - 3. Să se scrie un program care va
calcula soluţia ecuaţiei f (x) = 0 pe segmentul [2; 15] pentru 10 aproximări succesive,
utilizînd metoda Newton.
Preprocesarea matematică: Se determină f '(x):
/ (x) = x3 - 2x2 + x - 3; /'(x) = 3x2 - 4x +1.
Deoarece numărul de aproximări succesive este fixat, iar extremităţile segmentului
cunoscute, atribuirile necesare se vor realiza direct în corpul programului.
program cn09;
var a, b, x, c : real;
i, n: integer;
function f(z:real):real;
begin f:=z*z*z-2*z*z+z-3; end;
function fd1(z:real):real;
begin fd1:=3*z*z-4*z+1; end;
begin a:=2.1; b:=15; n:=10; i:=0;
c:=a-(f(a))/(f(b)-f(a))*(b-a);
if f(c)*f(a)<0 then x:=a else x:=b;
while i<n do
begin i:=i+1;
x : =x-f (x) /fd1 (x) ;
writeln('i=',i:2,' x=',x:15:12, ' f=',f(x):15:12);
end;
end.
i= 1 x= 10.23214285700 f=869.11072454000
i= 2 x= 7.06207637180 f=256.52261987000
i= 9 x= 2.17455942470 f= 0.00000009329
i=10 x= 2.17455941030 f= 0.00000000001
X
Exemplul 2: Fie dată funcţia /(x ) = cos2(x )- —. Să se scrie un program care va
calcula soluţia aproximativă a ecuaţiei f(x) = 0 pe segmentul [2,4; 3] cu exactitatea
e = 0,0001, utilizînd metoda Newton. Pentru funcţia dată pe segmentul [2,4; 3] M2 şi
m1 sînt, respectiv, egale cu 2 şi 0,03.
Jt 1 Preprocesarea matematică: ,
Deoarece e este dat, extremităţile segmentului şi valorile M2, m1 - cunoscute, atribuirile vor fi realizate direct în program.
program cn10;
var a, b, xn, xv, M2, m1, e, c : real;
function f(z:real):real;
begin f :=cos(z)*cos(z)-z/4; end;
3 Pentru toate exemplele şi exerciţiile propuse se presupune îndeplinirea condiţiilor 1. şi 2. (p. 31) de f (x).
33
function fd1(z:real):real;
begin fdl:=-sin(2*z)-1/4; end;
begin a:=2.4; b:=3; M2:=2; m1:=0.03; e:=0.0001;
c:=a- (f (a) ) / (f (b) -f (a) ) * (b-a) ;
if f (c)*f (a)<0 then begin
xn:=a; xv:=b;
end
else begin xn:=b; xv:=a; end;
while M2*sqr(xn-xv)/(2*m1)>e do
begin xv:=xn;
xn:=xv-f(xv)/fd1(xv);
writeln(' x=',xn:15:12, ' f=',f(xn):15:12);
end;
end.
Rezultate: x= 2.47538619170 f= -0.00078052066
x= 2.47646766320 f= -0.00000027700
x= 2.47646804730 f= 0.00000000000
Întrebări si exerciţii * »
O Descrieţi sensul geometric al metodei Newton.
e Cum poate fi stabilită aproximarea iniţială a metodei?
© Explicaţi de ce, la alegerea corectă a punctului iniţial, şirul aproximărilor obţinute prin metoda
Newton converge către soluţia exactă a ecuaţiei.
O Scrieţi un program care va determina pe fiecare din intervalele propuse soluţiile ecuaţiilor care
urmează, pentru 2, 4, 6 iteraţii, utilizînd metoda Newton:
a) ' pe [-1,7; -1,58], [-1,53; -1,4], [0,4; 0,52], [0,58; 0,8];
b) ^Jx + j x + ^C -12 = 0 pe [100; 150];
c) (2 - x2) c o s (x ) + 2x s in (x ) = 0
d) in (1 , f i , iYl - + ln —+ ln—
\ x U xJJ
-2 = 0
pe [-4,5; -4] [4; 4,5];
pe [0,1; 0,5].
© Modificaţi programul elaborat în exerciţiul 4, pentru a calcula soluţiile ecuaţiilor, utilizînd metoda
Newton, pentru £ = 0,00001:
a) 2cos2(x) - ex/2 = 0 pe [0,1; 0,74], M2=4, m1 =0,5;
b) x5 - 4x + 9 = 0 pe [-2; -1], M2=150, m1 = 1.
© Fie dată funcţia /(x) = sin2(x)- Calculaţi soluţia aproximativă a ecuaţieif(x) = 0 pe segmentul [0,5; 0,7] cu exactitatea £ = 0,00001, utilizînd metoda Newton.
O Separaţi soluţiile, apoi calculaţi soluţiile ecuaţiilor, folosind metoda Newton, pentru
£ = 0,00001:
a) x5 - 80 x2 + 89 = 0; b) ex - x2 = 0.
34
Test de evaluare
Selectaţi răspunsul corect:
1. A rezolva ecuaţiaf(x) = 0 înseamnă a determina punctele:
a) de intersecţief(x) cu axa 0y;
b) de intersecţie f(x) cu axa 0x;
c) în caref(x) nu este definită.
2. A separa soluţiile ecuaţiei f(x) = 0 înseamnă a determina:
a) un interval pe axa 0x, care va conţine toate soluţiile ecuaţiei f(x) = 0;
b) toate intervalele pe axa 0x, care au proprietatea de a conţine exact cîte o soluţie a ecuaţiei f(x) = 0;
c) toate intervalele pe axa 0x, care au proprietatea de a nu conţine nicio soluţie a ecuaţiei
f(x) = 0;
d) domeniul de valori al funcţiei f(x).
3. Metoda bisecţiei de rezolvare a ecuaţiilor algebrice şi transcendente se bazează pe divizarea
intervalului pe care este căutată soluţia ecuaţiei în părţi:
a) egale;
b) proporţionale, determinate de coarde, trasate consecutiv;
c) proporţionale, determinate de tangente, trasate consecutiv;
d) proporţionale, determinate de coarde şi tangente, trasate consecutiv.
4. Formula recurentă de calcul a aproximării x. a soluţiei ecuaţieif(x) = 0 prin metoda coardelor
este:
a) xi+\ = xi + (e -*,■); c)
b) fix,)
m - f i x ,)
d) xM =x,~
/(*,)
fix,)
f ( e ) + f ( x i)
5. Aproximarea iniţială în cazul aplicării metodei tangentelor este acea extremitate e a intervalului [a, b] pe care este căutată soluţia, pentru care este adevărată relaţia:
a) ; c) . ; '
b) ; d) .
E Calculaţi folosind programele elaborate anterior:
__j_ •^J:-ln(3x2-2x+7)
1. Soluţia ecuaţiei pe [10; 15] prin metoda bisecţiei, pentru 5, 10, 20
Ax2 - jc + 12
de divizări ale segmentului iniţial şi prin metoda coardelor, pentru 5, 10, 20 de iteraţii. Explicaţi
diferenţa dintre rezultatele obţinute.
2. Soluţia ecuaţiei x2 - sin 5x = 0 pe [0,5; 0,6] prin metoda tangentelor, pentru 2, 4, 6 divizări ale
segmentului iniţial şi cu exactitatea s: 0,001; 0,00001; 0,0000001.
Consideraţi: m1= 

Niciun comentariu:

Trimiteți un comentariu