Documente Academic
Documente Profesional
Documente Cultură
METODA BIPARTIŢIEI
4.1 SCOP
Înţelegerea principiului metodei bipartiţiei pentru rezolvarea ecuaţiilor şi a
modului de aplicare al acesteia utilizând programul MathCAD.
b+a T
x= ± . (4.1)
2 2
a+b
a 2 b
a + 3b
4
⎛a+b⎞ ⎡a + b ⎤
Deoarece f (a ) ⋅ f ⎜ ⎟ > 0 , se trage concluzia că x ∈ ⎢ , b ⎥ . Se
⎝ 2 ⎠ ⎣ 2 ⎦
procedează la înjumătăţirea intervalului, căutându-se partea care conţine rădăcina.
⎛a+b⎞ ⎛ a + 3b ⎞ ⎡ a + b a + 3b ⎤
Cum f ⎜ ⎟⋅ f⎜ ⎟ < 0 , rezultă intervalul x ∈ ⎢ , . În acelaşi mod,
⎝ 2 ⎠ ⎝ 4 ⎠ ⎣ 2 4 ⎥⎦
⎡ 3a + 5b a + 3b ⎤
după încă o iteraţie, se obţine x ∈ ⎢ , .
⎣ 8 4 ⎥⎦
Se observă că între lungimile intervalelor rezultate după fiecare iteraţie există
relaţia:
b − a = 2 b1 − a1 = 2 2 b2 − a 2 = ...... = 2 n bn − a n . (4.2)
bn − a n ≤ T . (4.3)
b−a
2n = (4.4)
T
din care se calculează numărul minim de paşi necesari, n, pentru atingerea preciziei T.
Deşi această metodă este precisă, ea este lent convergentă, necesitând un
număr mare de paşi pentru obţinerea unei soluţii precise.
f ( x) = x 2 + 2 x − 15 (4.5)
asociată ecuaţiei
x 2 + 2 x − 15 = 0 . (4.6)
150
100
a := 0
f ( x) 50
b := 10
0
50
0 2 4 6 8 10
x
2. Verificarea îndeplinirii condiţiilor necesare aplicării metodei
Pe intervalul [ a, b] , funcţia f (x ) trebuie să îndeplinească condiţiile:
a. să fie continuă;
b. să aibă o singură soluţie pe acest interval;
c. să satisfacă inegalitatea f ( a ) ⋅ f (b) ≤ 0 .
3. Calculul numărului de paşi necesari pentru a obţine o precizie impusă
Dacă pentru exemplul considerat se impune pentru dimensiunea intervalului
final ε = 0.05, numărul de paşi de calcul necesari, n, este dat de expresia:
⎛∆⎞
ln⎜ ⎟
ε
n= ⎝ ⎠.
ln(2)
∆ := b − a ⎛∆⎞
ε := 0.05 ln⎜
∆ = 10
n :=
⎝ε⎠
ln( 2)
n = 7.644
În concluzie, pentru a se obţine o precizie cel puţin egală cu ε = 0.05, sunt
necesare 8 cicluri de calcul.
4. Elaborarea secvenţei de program pentru divizarea intervalului
Se propune varianta următoare:
a b
c
2
a if( f( a ) . f( c ) 0 , c , a )
b if( f( a ) . f( c ) 0 , c , b )
dif a b
−6
TOL := 10
a+b
c := c=5 Coordonata punctului de divizare a intervalului
2
a := if( f ( a) ⋅ f ( c) ≥ 0 , c , a) a=0 Noua valoare a capãtului din stânga
a+b
c :=
2
a := if( f ( a) ⋅ f ( c) ≥ 0 , c , a) c = 3.75
a = 2.5
b := if( f ( a) ⋅ f ( c) ≤ 0 , c , b )
b = 3.75
ε := a − b ε = 1.25
i := i + 1 i=3
ε
x = 3.125 ± 0.625 adică x = c ± .
2
Pentru a se obţine soluţia cu precizia cerută mai trebuiesc efectuate încă 5 iteraţii.
a +b
i i
a ←
i+ 1 2
b ←b
i+ 1 i
⎛ ai + b i ⎞
( i)
if f a ⋅ f ⎜
⎝ 2 ⎠
0
a +b
i i
a ←
i+ 1 2
b ←a
i+ 1 i+ 1
⎛ ai + b i ⎞
( i)
if f a ⋅ f ⎜
⎝ 2 ⎠
<0
a +b
i i
b ←
i+ 1 2
a ←a
i+ 1 i
a +b
i+ 1 i+ 1
x ←
i+ 1 2
a −b
i+ 1 i+ 1
er ←
i+ 1 2
i←i+ 1
( a b x er )
⎡⎢⎛⎜ 0 ⎞ ⎛⎜ 10 ⎞ ⎛⎜ 5 ⎞ ⎛⎜ 5 ⎞ ⎤⎥
⎢⎜ 0 ⎟ ⎜ 5 ⎟ ⎜ 2.5 ⎟ ⎜ 2.5 ⎟ ⎥
⎢⎜ 2.5 ⎟ ⎜ 5 ⎟ ⎜ 3.75 ⎟ ⎜ 1.25 ⎟ ⎥
⎢⎜ 2.5 ⎟ ⎜ 3.75 ⎟ ⎜ 3.125 ⎟ ⎜ 0.625 ⎟ ⎥
⎢⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎥
bipart ( 0 , 10, 0.05) = ⎢⎜ 2.5 ⎟ ⎜ 3.125 ⎟ ⎜ 2.813 ⎟ ⎜ 0.313 ⎟ ⎥
⎢⎜ 2.813 ⎟ ⎜ 3.125 ⎟ ⎜ 2.969 ⎟ ⎜ 0.156 ⎟ ⎥
⎢⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎥
⎢⎜ 2.969 ⎟ ⎜ 3.125 ⎟ ⎜ 3.047 ⎟ ⎜ 0.078 ⎟ ⎥
⎢⎜ 2.969 ⎟ ⎜ 3.047 ⎟ ⎜ 3.008 ⎟ ⎜ 0.039 ⎟ ⎥
⎢⎣⎜⎝ 2.969 ⎠ ⎜⎝ 3.008 ⎠ ⎜⎝ 2.988 ⎠ ⎜⎝ 0.02 ⎠ ⎥⎦
x 3 + 5x − 6 = 0 ,
ln( x 3 + 5 x − 5 ) = 0 ,
1.23457 x 5 − 1.752137 x 3 − 2.2145793 = 0