Sunteți pe pagina 1din 10

1.

Metoda bisectiei
Fie functia f(x) este continua pe [a,b],radacina X a ecuatiei f(x)=0 este izolata pe acest
interval,iar
b-a>2 *ε ,unde ε este un numar pozitiv suficient de mic ( ε =0.01) . Elaboram
algoritmul de calcul al radacinii X cu precizia data ε ,utilizind metoda injumatatirii
intervalului.
ALGORITM
Pasul(1) Divizam intervalul [a,b] in doua jumatati prin punctul c=(a+b)/2

Pasul(2) Calculam valoarea f(c). Daca f(c)=0, atunci c este valoarea exacta a
radacinii si procesul de calcul se stopeaza.
.
. Altfel , daca f(c)<>0,din cele doua jumatati [a,b] si
[a,c] o alegempe aceea ,la ale carei extremitati functia are valori de semne opuse pe
care il renotam [a1,b1].

Pasul(3) Daca b1-a1>2* ε,repetam aceleasi rationamente pentru intervalul nou


[a1,b1].

Pasul(4) Prin renotare capatam [a2,b2] de lungimea (b-a)/4

Continuind procesul injumatatirii intervalului ,vom obtine fie ca la un anume pas


mijlocul intervalului va fi radacina ecuatiei,fie un sir de intervale incluse unul in
altul . Rezulta ca pentru calculul radacinii cu precizia ε ,procesul injumatatirii
intervalului trebuie continuat pina la prima valoare a lui n ,care satisface
inegalitatea
(b-a)/2 la puterea n<=2* ε
Adica
n= [ln((b-a)/E)/ln2].

Fig. 1. Calculul
consecutiv al
segmentelor, care
conţin soluţia ec
Estimarea erorii. Deoarece X e un punct al segmentului [ ai,bi] rezultă că
diferenţa dintre soluţia exactă şi cea calculată nu este mai mare decît lungimea
segmentului
[ai,bi]. Prin urmare, localizarea soluţiei pe un segment cu lungimea ε asigură o eroare
ce nu depăşeşte lungimea ε a segmentului.

‫ ׀ ﻉ‬- ai ‫ ׀ > ׀‬b – ai ‫׀‬

2. Determinăm pe ce interval se află soluţiile


ecuaţiei x*x*x+4*x+2= 0
Pentru a determina pe ce interval se află soluţiile ecuaţiei x*x*x+4*x+2=0 vom
utiliza metoda analitică de izolare a rădăcinilor. În acest scop vom compune tabelul
semnelor valorilor f(x), utilizînd şirul Rolle:

-5 -4 -3 -2 -1 0 1 2 3 4 5
- - - - - + + + + + +

3.Determinăm rădăcinile ecuaţiei cu ajutorul


limbajului Pascal.
Fie ecuaţia x*x*x+4*x+2=0. Funcţia f(x) este continuă pe întreaga axă numerică,
iar rădăcinile ecuaţiei date sunt izolate după cum urmează:X1 [-1,0];
Aplicăm programul de mai jos P10 la determinarea rădăcinilor ecuaţiei date cu
precizia eps = 0,01:

Program P332;
Uses crt;
Function F (x:real):real;
Begin F: =x*x*x+4*x+2; end;
Function Bisect (a,b,Eps: real; afis:boolean;
Var nv,n:byte): real;
Var c,Fa,Fc:real
Begin
n: = Trunc (Ln ((b-a)/eps)/Ln(2)); Fa: =f(a);
Repeat
c: =(a+b)/2; Fc: =f(c);
If afis then writeln (`x=`, c:0:nc, ` f(x) =`, Fc:0:nc);
If Fc <> 0 then If Fa*Fc< 0 then b: =c
else begin a: =c; Fa: =Fc; writeln (c:7:5,’ ’ ,f(c):0:5);
End;
Writeln (c, ` `,f(c) );
Until (abs (b-a)< =2* Eps) or (Fc=0);
If Fc <> 0 then c: = (a+b)/2;
Bisect: =c;
End;
Procedure Rezolvare (a,b,eps: Real; nc, k: byte);
Var x:real; n:byte;
Begin If f(a)*f(b) <0 Then begin
x: =Bisect (a, b, Eps, false, nc, n);
writeln (`x`, k `=`, x:0:nc, ` f(x`, k,`) =`, f(x):0:nc);
writeln (`n`,k, `=`,n);
End
Else Writeln (`Nu este izolată rădăcina`,k);
End;
Begin ClrScr; Rezolvare (-1,0, 0.01, 5,1);
Readln;
End.

4. Aplicînd programul de mai sus P332 la


determinarea rădăcinilor ecuaţiei date cu
precizia eps = 0,01, după 6 iteraţii, obţinem:
-0.5000000+0000 -4.62500000000000E+0000
-0.47968421+0000 -1.39062500000000E+0000
-0.47846582 +0000 -9.57031250000000E-0002
-0.47646580+0000 4.76318359375000E-0001
-0.4765809+0000 1.96441650390625E-0001
-0.4765646 +0000 5.19142150878906E-0002
x1=-0,47656 f(x1)= -0.01448
n=6
5. Metoda coardei
Fie f:[a, b] → R, continuă pe intervalul (a, b), cu f(a)·f(b)<0, deci are semne opuse
la capetele intervalului.
Pentru început vom presupune f(a)>0
0(a) a
fbf(b
B
yA ξ
)
când f(a)>0

f ''( x) > 0, ∀x ∈ (a, b)


"adună apa"

Ducem coarda AB.


Ştiind că ecuaţia dreptei care trece prin două puncte A(x1, y1) şi B(x2, y2) este
şi că, în cazul nostru punctele sunt A(a, f(a)) şi B(b,
y2 − y1
y − y1 = (x − x1 )
x2 − x1
f(b)), obţinem

x−a y − f (a )
=
b − a f (b) − f ( a)
Intersectând această dreaptă cu dreapta y=0 vom obţine
sau, notând
f (a) f (a)
x1 = a − ( b − a) h1 = − ( b − a)
f (b) − f ( a) f (b) − f (a )
x1=a+h1

Făcând în relaţia de mai sus +b -b se obţine:

f (b)
x1 = b − (b − a )
f (b ) − f ( a )
Procedând analog se va obţine, pe rând

f ( a)
x2 = x1 − (x1 − a )
f ( x1 ) − f ( a)

f (a)
x3 = x2 − (x 2 − a )
f ( x2 ) − f ( a )
...

f (a )
xn = xn −1 − (xn −1 − a )
f ( xn −1 ) − f (a )

deci pentru f(a)>0 şi


a +b
f ''( ) >0 a fix
2
dacă
a +b
f (a ) ⋅ f ''( ) < 0 ⇒ b fix
2

6. Determinăm rădăcinile ecuaţiei cu ajutorul


limbajului Pascal.
Fie ecuaţia x*x*x+4*x+2=0. Funcţia f(x) este continuă pe întreaga axă numerică, iar
rădăcinile ecuaţiei date sunt izolate după cum urmează : 1,0-] 1 ‫;]ﻉ‬
Aplicăm programul de mai jos COARDA la determinarea rădăcinilor ecuaţiei date cu
precizia eps = 0,01:

Program COARDA;
uses crt;
var a,b,c,e,x: real;
n,i: integer;
Function f(x:real):real;
begin
f:= x*x*x+4*x+2;
end;
begin clrscr;
a:=-1; b: =0; n=6;
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;
for i:=1 to n begin
x:=x-(f(x))/(f(e)-f(x))*(e-x);
writeln (`x=`, x:7:5,`f(x) =`, f(x):7:5); end;
readln
end.

7. Rezultatele furnizate de programul


COARDA sunt următoarele:

Intrare
f(x)=x-4x+1
Ieşire
n x
0 -0.50000
1 -0.473684
2 -0.473465
Soluţiile
0.01+0.47346-=1 ‫ﻉ‬

Colegiul Financiar-Bancar “A.Diordita”

Lucrare de laborator
Tema: Rezolvarea ecuatiilor prin
metode numerice
Controlat Efecuat
Prof . T.Zatica elev Rusu Dorin
Grupa CBO703

8.Metoda tangentei (metoda Newton )

Fie o ecuaţie neliniara sau trascendentă de forma f(x)=0 şi fie ca functia f(x)
are pe intervalul [a,b] o singură rădăcina reala, iar prima derivata f /(x) si cea a
două f //(x) sunt continuie şi nu menţin semnul constant în intervalul dat.

Metoda constă in aproximarea rădăcinii precise α cu abscisa punctului de


intersecţie a tangentei cu axa Ox, care este dusă la curba f(x) in punctul k cu
coordonatele {xk ,f(xk)} alese în mod corespunzător.
Altfel spus, arcul de curbă f(x) se inlocuieşte cu o tangentă la curba intr-un
punct k care se deplaseaza in direcţia rădăcini α (fig 1):
Fig. 1. Schema obţinerii soluţiei prin metoda tangentei

Pentru obţinerea convergenţei sigure spre rădăcina căutată ca punctul iniţial


x0 trebuie să fie luat acel capăt al intervalului [a,b] la care semnul funcţiei coincide
cu semnul primei derivatei. Deci, dacă f(b)· f /(x) > 0 atunci punctul iniţial este
limita dreaptă x0 = b, iar dacă f(a)· f /(x) > 0 atunci punctul initial va fi limita
stângă x0 = a.
Fie punctul de plecare al procesului de calcul este limita dreaptă x0= b.
Construim o tangentă la curba data in punctul B(x0, f(x0) ). La intersecţia tangentei
cu axa ox se obţine prima aproximare – punctul x1. Construim, din nou, o tangentă
la curba dată in
punctul nou B1 cu coordonate B1{ x1, f(x1)}. Intersecţia ei cu axa absciselor o notam
cu x2. Din nou construim o tangentă,acum în punctul B2 cu coordonate B2{ x2,
f(x2)}, repetând procedura.
Procesul de calcul genereaza un şir de aproximări succesive x1,x2,x3,...,xn ,

astfel încât , unde α este valoarea precisă a rădăcinii cautate.


lim xn = α
n→∞
Relaţie de calcul pentru determinarea coordonatei xk+1 este:
, f /(xk)≠ 0 , k=0,1,2,3….., n
f ( xk )
x k +1 = x k −
f ′( x k )

In cazul in care f /(xk)= 0 , atunci se va face atribuirea: xk+1= xk .

Calculul se opreşte atunci când se realizeaza condiţia:

| xn –xn-1 | ≤ εad ,

unde εad este eroarea de aproximare admisibilă.

9.Determinăm rădăcinile ecuaţiei cu ajutorul


limbajului Pascal.
Program Newton;
Var a,b,c,x:real;
i,n:integer;
Function f(x:real):real;
Begin f:=x*x*x +4*x+2 ; end;
Function f1(x:real):real;
Begin
F1:=3*sqr(x)+4;end;
a:= -1; b:=0; n:= 6;
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)/f1(x);
writeln (’x=’,x:15:12, ’f(x)=’,f(x):15:12); readln ;
END.
10.Rezultatele furnizate de programul
NEWTON sint urmatoarele:
Intrare
f(x)=x-4x+1
Ieşire
n x
0 -0.500000000000
1 -0.473684210527
2 -0.473465822232
3 -0.473465807729
4 -0.473465807729
5 -0.473465807729
Soluţiile
0.01+0.473465807729-=1 ‫ﻉ‬

S-ar putea să vă placă și