Documente Academic
Documente Profesional
Documente Cultură
Rezolvarea numerică a
ecuaţiilor(algebrice,transcendente)
Proiect la disciplina Matematici asistate de calculator
An universitar 2003-2004
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
Cuprins
pag
1.Consideraţii teoretice…………………………………….……………..3
1.1.Prezentarea tematicii…………………………..…………….…….3
1.2.Prezentarea metodelor implementate …………………………3
1.2.1. Metoda falsei poziţii………………………………………...3
1.2.2.Metoda Bailey……………………………………………….5
1.2.3.Metoda Newton simplificată…………………………………7
1.2.4.Metoda bisecţiei………………………………………………7
2.Exemplificări…………………………………….……………………….9
2.1. Metoda falsei poziţii……………………………………….……….9
2.2.Metoda Bailey……………………………………………………..11
2.3.Metoda Newton simplificată………………………………………12
2.4.Metoda bisecţiei……………………………………………………13
3.Prezentarea implementărilor…………………………………………..15
3.1. Metoda falsei poziţii……………………………………….……....15
3.2.Metoda Bailey……………………………………………………...15
3.3.Metoda Newton simplificată……………………………………….16
3.4.Metoda bisecţiei…………………………………………………….17
1.Consideraţii teoretice
2
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
1.1.Prezentarea tematicii
3
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
y f(b)
a x1
0 f(a) y=f(x) b
III) La acelasi pas k se calculeaza f(xk ),rezultand noile limite ale intervalului
de cautare ,rk si sk :
k k-1
- daca f(x )⋅ f(r ) < 0 ,atunci :
rk= rk-1 si sk= xk ;
k k-1
- daca f(x )⋅ f(r ) < 0 ,atunci :
rk= xk si sk= sk-1 ;
k k-1
- daca f(x )⋅ f(r ) = 0 ,atunci calculul este terminat;
4
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
k −1
f (c ) =0 = f ( x k −1 +h k −1 ) = f ( x k −1 ) +h ⋅ f '( xk −1) +
1!
( h k −1 ) 2 − ( h k −1 ) 3
+ ⋅ f "( x k 1 )+ ⋅ f '''( xk −1 ) +... (1)
2! 3!
Dacă în relaţia (1) se reţin doar termenii care conţin pe f(x) şi f′ (x),restul
termenilor cu derivate de ordin superior neglijându-se se exprimă hk-1 dată de
relaţia (2):
f ( x k − 1)
h k −1 = − (2)
f ' ( x k − 1)
Dacă în relaţia (1) se reţine şi termenul care conţine şi derivata de ordinul 2
şi scoţând factor comun pe hk-1 rezultă :
h k −1
f ( x k −1 ) + h k −1 ⋅ [ f ' ( x k −1 ) + ⋅ f " ( x k −1 )] ≈ 0 (3)
2
Înlocuind în relaţia (3) pe hk-1 din paranteza dreaptă cu aproximarea dată de
relaţia (2) se obţine :
5
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
f ( x k − 1)
h k −1 = − ( 4)
k − 1 f ( x k − 1) ⋅ f " ( x k − 1)
f '(x )−
2 ⋅ f ' ( x k − 1)
Valoarea lui hk-1 din relaţia (4) nu va mai conduce la soluţia exactă c ci la noua
valoare aproximativă xk a soluţiei mai bună decât xk-1.Relaţia (4) se numeşte
corecţia pentru metoda Bailey:
xk= xk-1 +hk-1 (5)
Interpretarea gepmetrică a acestei metode este ilustrată în figura de mai jos:
y
a c b
0 x
x2 x1
x0
6
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
Scurtă explicaţie :
7
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
r k −1 + s k −1
xk =
2
y=f(x)
r2
r0 r1
0 a x f(x2)
f(r0) f(x1) x2 b x
s2 s0
s1
8
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
2.Exemplificări
2.1. METODA FALSEI POZITII
Se considera ecuatia:
f(x)=0, unde f(x)=2⋅ tgx-10x+3, ε x=0.001, ε f=0.01 în intervalul [-1,1];
Sa se rezolve aceasta ecuatie utilizand metoda falsei pozitii.
Solutie: Se aplica metoda falsei pozitii parcurgand etapele mai sus descrise:
r 0 = −1, s 0 =1
I) Se fac initializarile:
si se calculeaza valorile functiei f in r0 si s0:
f (r 0 ) = f ( −1) =9.885 , f ( s 0 ) = f (1) =−3.885 .
Pentru k=1,2,3,…,se repeta etapele II),…IV),pana cand conditiile etapei
IV) sunt indeplinite:
Iteratia k=1:
II) Se determina x1 cu formula cunoscuta:
r 0 ⋅ f ( s 0 ) − s 0 ⋅ f ( r 0 ) − (−3.885 ) − 9.885
x1 = = = 0.4357
f ( s 0 ) − f (r 0 ) − 3.885 − 9.885
f ( x1 ) = f (0.4357 ) =−0.426 .
Intrucat f ( x1 ) ⋅ f ( r 0 ) <0, rezulta :
r1 =r 0 =1, s1 =x1 =0.4357
si valorile corespunza toare ale functiei f :
1
f ( r ) = f ( −1) =9.885 , 1
f ( s ) = f (0.4357 ) =−0.426 .
9
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
Iteratia k=2:
II) Se determina x2:
III) Se determina f( x 2 ) :
f ( x 2 ) = f (0.3764 ) =0.265 .
Deoarece f ( x 2 ) ⋅ f ( r1 ) >0, rezulta :
r 2 = x 2 =0.3764 , s 2 = s1 =0.4357 .
f ( r 2 ) = f (0.3764 ) =0.265 , f ( s 2 ) = f (0.4357 ) =−0.426 .
IV) Se verifica conditiile de terminare a calculelor :
r 2 − s 2 =0.0587 >εx , f ( x 2 ) =0.265 >ε .
f
Relatiile | rk -sk | ≤ ε x si | f(rk)| ≤ ε f nefiind satisfacute se trece la iteratia
urmatoare.
Se poate observa ca erorile au scazut semnificativ,scaderea lor fiind mai
rapida decat in cazul metodei bisectiei,insa inca nu s-a ajuns la indeplinirea
conditiilor de terminare a calculelor.Iteratiile sunt prezentate in tabelul de mai jos:
Se consideră ecuaţia:
f(x)=0, unde f(x)=2⋅ tgx-10x+3, cu x0=3, ε x=0.001, ε f=0.01
10
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
Iteraţia k=1:
II)
f (x0 ) = f (3) = - 27
.2
851
,
f '(x 0 ) =f ' (3) = - 7
.9
594,
f "( x 0 ) = f " (3) = - 0.5
818
,
f (x 0 ) f (3)
h0 = − =
− =
- 3
.9
190
,
f ( x 0 ) ⋅f " ( x 0 ) f (3) ⋅f " (3)
f '(x 0 ) − f ' (3) −
2 ⋅f ' (3)
2 ⋅f ' ( x 0 )
x1 = x 0 + h 0 = - 0.9
190
III)
| h0|= 3.919>ε x
| f(x1)|=f(-0.9190)= 9.5689 >ε f
Iteraţia k=2:
II)
f ( x1) = f (−0.9190) = 9.5689,
f ' ( x1) = f ' ( −0.9190) = - 4.5650,
f " ( x1) = f " (−0.9190) = -14.2457 ,
f ( x1 ) f (−
0.91
90 )
h1 =− =− =0
.49
07
f ( x1 ) ⋅f " ( x1 ) f (−
0.9190 ) ⋅f " ( −
0.91
90 )
f ' ( x1 ) − f ' (−
0. 9
190 ) −
2 ⋅f ' ( −
0.9190 )
2 ⋅f ' ( x1 )
x2 =x1 + h1 = - 0.4
283
III)
| h1|=0.4907 >ε x
| f(x2)|=f(-0.9190)= 6.3699 >ε f
Iteraţia k=3:
II)
f (x2 ) = f ( - 0.4
283 ) =6
.3
699
,
f '(x2 ) = f '( - 0.4
283 ) =- 7
.5
831
f "( x 2 ) = f "( - 0.42
83 ) =- 2
.2
069
,
f (x2 ) f ( - 0
.4283 )
h2 =− =− =
0.7
485
,
f ( x 2 ) ⋅f " ( x 2 ) f ( - 0.4
283 ) ⋅f " ( - 0
.4
283 )
f '(x2 ) − f ' (−
0 .4
283 ) −
2 ⋅f ' ( - 0
.4
283 )
2 ⋅f ' ( x 2 )
x3 =x2 + h2 = 0.32
02
III)
| h2 |=0.7485 >ε x
| f(x3)|=f(0.3202)= 0.4612 >ε f
11
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
Iată un exemplu : f(x)=2⋅ tan(x) +10⋅ x+3, pt. care s-a separat o soluţie în
intervalul [-1,1].După cum am precizat deja, această funcţie, nefiind polinomială,
trebuie calculată derivata ei, MatLab neputînd efectua acest lucru :
f′ (x)=2/cos2 (x) –10.
0) x0 =0 – iniţializare cu o valoare arbitrară din intervalul [-1,1]
ε 0 =0.001 – precizia calculelor
1) x1= x0 –f(x0)/f ′ ( x0)= 0-3/(-8)=0.375
ε 1 = x1 – x0 =0.375>ε 0
2) x2= x1 –f(x1)/f ′ ( x0)= 0.3797
ε 2 = x2 – x1 = 0.0047>ε 0
3) x3= x2 –f(x2)/f ′ ( x0)= 0.3798
ε 3 = x3 – x2 = 0.0001<ε 0
Se considera ecuatia: f(x)=0, unde f(x)=2⋅ tgx-10⋅ x+3 , pentru care s-a
separat o soluţie in intervalul [-1,-1].Să se determine soluţia ecuaţiei utilizând
metoda bisecţiei,erorile admise fiind ε x=10‾³ şi ε f =10‾²
Soluţie: Se parcurg etapele metodei bisecţiei.Astfel:
I) Se fac iniţializarile:r0 =-1, s0=1, | r0-s0|=2.
Iteraţia k=1 :
r 0 + s0 12
x1 = = 0;
2
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
II)
Iteraţia k=2 :
II)
r1 + s1
x1 = = 0.5;
2
Iteraţia k=3 :
II)
r 2 + s2
x3 = = 0.25;
2
III)
f(x3 )=f(0.25)=1.011,
f(r2 )=f(0)=3,
f(x3)⋅ f(r2) >0 ⇒ r3= x3=0.25 , s3=s2=0.5.
IV) Se verifică dacă sunt indeplinite condiţiile de terminare:
| r3 –s3 | =0.25>ε x şi | f(x3)|=1.011>ε f
13
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
3.Prezentarea implementărilor
3.1. METODA FALSEI POZITII
14
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
iter=iter+1;
x=(r*feval(func,s)-s*feval(func,r))/(feval(func,s)-
feval(func,r));
if (feval(func,x)*feval(func,r)<0)
s=x;
else r=x;
end;
end;
Funcţia returnează soluţia sol ,numărul iteraţiilor iter şi timpul de execuţie t.
15
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
[x,i,t]=newtons(f,g,a,b,x0,ex,ey)
f - funcţia
g - derivata
a, b – capetele intervalului
x0 – valoarea iniţială
ex, ey – erorile admise pt. x, respectiv y=f(x)
16
Rezolvarea numerică a ecuaţiilor(algebrice,transcendente)
iter=iter+1;
end;
Obseraţii:
Pe lângă funcţiile care au fost descrise mai sus mai avem funcţiile MatLab
f.m, f1.m , f2.m care au fost create pentru exemplu prezentat la fiecare metodă :
- f.m –ecuaţia din exemplu:
function y=f(x);
y=2*tan(x)-10*x+3;
- f1.m – derivata funcţiei f:
function y=f1(x)
y=2*1/cos(x)^2-10;
- f2.m –derivata de ordinul 2 a funcţiei f:
function y=f2(x)
y=2*sin(2*x)/cos(x)^4;
17