13
METODA BIPARTIŢIEI PENTRU REZOLVAREA METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII APROXIMATIVĂ A UNOR ECUAŢII Cuprins Cuprins Introducere Introducere - argument - argument Programarea erorilor Programarea erorilor Rezolvarea aproximativă a ecuaţiilor Rezolvarea aproximativă a ecuaţiilor algebrice şi transcendente algebrice şi transcendente

METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Embed Size (px)

DESCRIPTION

METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins. Introducere - argument Programarea erorilor Rezolvarea aproximativă a ecuaţiilor algebrice şi transcendente. Introducere - argument. - PowerPoint PPT Presentation

Citation preview

Page 1: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

METODA BIPARTIŢIEI PENTRU REZOLVAREA METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢIIAPROXIMATIVĂ A UNOR ECUAŢII

CuprinsCuprins IntroducereIntroducere - argument- argument

Programarea erorilorProgramarea erorilor

Rezolvarea aproximativă a ecuaţiilor algebrice şi Rezolvarea aproximativă a ecuaţiilor algebrice şi

transcendentetranscendente

Page 2: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Introducere - argumentIntroducere - argument

Analiza numerică este o ramură a matematicii, însă, concret, Analiza numerică este o ramură a matematicii, însă, concret, este o îmbinare benefică între matematică şi informatică, întrucât este o îmbinare benefică între matematică şi informatică, întrucât cunoaşterea unui limbaj de programare este indispensabilă.cunoaşterea unui limbaj de programare este indispensabilă.

Din punct de vedere metodic, analiza numerică, dar mai ales Din punct de vedere metodic, analiza numerică, dar mai ales metodele prezentate, pot fi algoritmizate foarte uşor, lucru care metodele prezentate, pot fi algoritmizate foarte uşor, lucru care influenţează pozitiv gândirea algoritmică a elevilor.influenţează pozitiv gândirea algoritmică a elevilor.

În liceu, pentru rezolvarea ecuaţiilor se învaţă o serie de În liceu, pentru rezolvarea ecuaţiilor se învaţă o serie de proprietăţi, cum ar fi: natura şi numărul de rădăcini, relaţii între proprietăţi, cum ar fi: natura şi numărul de rădăcini, relaţii între rădăcini şi coeficienţi, formule de rezolvare, etc. Totuşi, rezolvarea rădăcini şi coeficienţi, formule de rezolvare, etc. Totuşi, rezolvarea efectivă a unor ecuaţii se dovedeşte o problemă foarte dificilă. În efectivă a unor ecuaţii se dovedeşte o problemă foarte dificilă. În momentul în care se trece de gradul patru, (chiar dacă nici momentul în care se trece de gradul patru, (chiar dacă nici formulele de rezolvare a ecuaţiilor de gradele trei şi patru nu se formulele de rezolvare a ecuaţiilor de gradele trei şi patru nu se învaţă) nu mai dispunem de formule de calcul al rădăcinilor. Sfera învaţă) nu mai dispunem de formule de calcul al rădăcinilor. Sfera problemelor se reduce drastic la doar câteva cazuri particulare problemelor se reduce drastic la doar câteva cazuri particulare (ecuaţii binome, ecuaţii reciproce, bipătrate, şi altele). Chiar dacă, (ecuaţii binome, ecuaţii reciproce, bipătrate, şi altele). Chiar dacă, de exemplu, la analiză se învaţă şirul lui Rolle, aceasta nu aduce de exemplu, la analiză se învaţă şirul lui Rolle, aceasta nu aduce contribuţii decisive în rezolvarea efectivă a unor ecuaţii. Pentru a contribuţii decisive în rezolvarea efectivă a unor ecuaţii. Pentru a rezolva aceste ecuaţii, este nevoie ca aceste cunoştinţe să fie rezolva aceste ecuaţii, este nevoie ca aceste cunoştinţe să fie sistematizate, sedimentate, selectate şi aplicate prin procedee de sistematizate, sedimentate, selectate şi aplicate prin procedee de analiză numerică, aceasta realizând exact aceste lucruri. analiză numerică, aceasta realizând exact aceste lucruri.

Page 3: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Un alt avantaj al dobândirii cunoştinţelor în Un alt avantaj al dobândirii cunoştinţelor în domeniul analizei numerice în general şi al domeniul analizei numerice în general şi al metodelor discutate în particular îl constituie metodelor discutate în particular îl constituie faptul că o serie de rezultate din analiza faptul că o serie de rezultate din analiza matematică pot fi intuite mai uşor. Astfel, metoda matematică pot fi intuite mai uşor. Astfel, metoda bipartiţiei este un mod foarte uşor şi intuitiv, prin bipartiţiei este un mod foarte uşor şi intuitiv, prin care se poate demonstra că dacă o funcţie este care se poate demonstra că dacă o funcţie este definită pe un interval compact şi este continuă definită pe un interval compact şi este continuă pe acel interval, dacă acea funcţie îşi schimbă pe acel interval, dacă acea funcţie îşi schimbă semnul pe intervalul considerat, atunci ea are, în semnul pe intervalul considerat, atunci ea are, în mod cert, cel puţin o rădăcină reală, care chiar cu mod cert, cel puţin o rădăcină reală, care chiar cu ajutorul acestei metode poate fi determinată ajutorul acestei metode poate fi determinată aproximativ (cu o anumită precizie), adică se pot aproximativ (cu o anumită precizie), adică se pot determina, un anumit număr de cifre exacte ale determina, un anumit număr de cifre exacte ale rădăcinii.rădăcinii.

Page 4: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

1) Propagarea erorilor1) Propagarea erorilor Valori aproximative. Erori absolute, erori relative Valori aproximative. Erori absolute, erori relative

O aproximare aO aproximare a este un număr uşor diferit de numărul este un număr uşor diferit de numărul exact A, care in calcule îl înlocuieşte pe ultimul. Dacă a este mai exact A, care in calcule îl înlocuieşte pe ultimul. Dacă a este mai mic decât A, atunci spunem că a este o mic decât A, atunci spunem că a este o aproximare prin diferenţă.aproximare prin diferenţă. Dacă însă a este mai mare decât A, atunci a este o Dacă însă a este mai mare decât A, atunci a este o aproximare aproximare prin adaos (sau excesprin adaos (sau exces)) De exemplu: pentru , numărul 1,41 este o De exemplu: pentru , numărul 1,41 este o valoare aproximativă prin diferenţă, în timp ce 1,42 este o valoare valoare aproximativă prin diferenţă, în timp ce 1,42 este o valoare aproximativă prin adaos. aproximativă prin adaos.

Definiţia 1:Definiţia 1: Se numeşte Se numeşte eroare absolutăeroare absolută a numărului a numărului aproximativ a valoarea absolută a diferenţei dintre numărul exact aproximativ a valoarea absolută a diferenţei dintre numărul exact A şi valoarea aproximativă corespunzătoare, a: A şi valoarea aproximativă corespunzătoare, a:

..

Definiţia 3:Definiţia 3: Eroarea relativăEroarea relativă a unei valori a unei valori aproximative a este raportul dintre eroarea absolută a acestui aproximative a este raportul dintre eroarea absolută a acestui număr şi modulul numărului exact A (unde A 0). număr şi modulul numărului exact A (unde A 0).

2

a A a

A

Page 5: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

2) Rezolvarea aproximativă a ecuaţiilor algebrice şi 2) Rezolvarea aproximativă a ecuaţiilor algebrice şi transcendentetranscendente

Separarea rădăcinilorSepararea rădăcinilor

Dacă o ecuaţie algebrică sau transcendentă este suficient de Dacă o ecuaţie algebrică sau transcendentă este suficient de complexă, se întâmplă relativ rar să se obţină rădăcini cu complexă, se întâmplă relativ rar să se obţină rădăcini cu precizie. Altfel, în unele cazuri, coeficienţii ecuaţiei nu sunt precizie. Altfel, în unele cazuri, coeficienţii ecuaţiei nu sunt cunoscuţi decât aproximativ şi, în consecinţă, problema cunoscuţi decât aproximativ şi, în consecinţă, problema determinării exacte a rădăcinilor propriu-zise îşi pierde sensul.determinării exacte a rădăcinilor propriu-zise îşi pierde sensul.

Fie ecuaţia:Fie ecuaţia: f(x)=0 (1) .f(x)=0 (1) . unde funcţia f(x) este, prin definiţie, unde funcţia f(x) este, prin definiţie, continuă pe un anumit interval, finit sau infinit, . Toate continuă pe un anumit interval, finit sau infinit, . Toate valorile care anulează funcţia f(x), se numesc valorile care anulează funcţia f(x), se numesc rădăcini ale ecuaţiei rădăcini ale ecuaţiei sau sau zerourizerouri ale funcţiei f(x). ale funcţiei f(x).

Calculul aproximativ al rădăcinilor reale izolate ale ecuaţiei Calculul aproximativ al rădăcinilor reale izolate ale ecuaţiei (1) se face în general în două etape:(1) se face în general în două etape:

- separarea rădăcinilor, care constă în stabilirea intervalelor - separarea rădăcinilor, care constă în stabilirea intervalelor care pot conţine o singură rădăcină a ecuaţiei (1)care pot conţine o singură rădăcină a ecuaţiei (1)

- ameliorarea preciziei sau determinarea rădăcinilor - ameliorarea preciziei sau determinarea rădăcinilor aproximativeaproximative,, adică obţinerea preciziei impuse. adică obţinerea preciziei impuse.

a x b 0f

Page 6: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Pentru realizarea separării rădăcinilor se face apel la o Pentru realizarea separării rădăcinilor se face apel la o teoremă cunoscută din analiza matematică.teoremă cunoscută din analiza matematică.

Teorema 1:Teorema 1: Dacă o funcţie continuă f(x) are în extremităţile Dacă o funcţie continuă f(x) are în extremităţile intervalului intervalului

valori de semne contrare , atunci , acest valori de semne contrare , atunci , acest interval conţine cel puţin o rădăcină a ecuaţiei f(x)=0, fapt interval conţine cel puţin o rădăcină a ecuaţiei f(x)=0, fapt carecare probează existenţa a cel puţin unui număr , adică probează existenţa a cel puţin unui număr , adică

( (figura 1figura 1))..

, 0f f

, 0f

y)(f

)(xfy

)(f

Figura 1

)(f

)(f

)(xfy

y 0)( xf

Figura 2

Page 7: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Procesul de separare a rădăcinilor începe cu determinarea semnului Procesul de separare a rădăcinilor începe cu determinarea semnului funcţiei f(x) în câteva puncte intermediare, alegere care trebuie să reflecte funcţiei f(x) în câteva puncte intermediare, alegere care trebuie să reflecte particularităţile funcţiei f(x).particularităţile funcţiei f(x). Trebuie stabilit, într-un fel sau altul, dacă Trebuie stabilit, într-un fel sau altul, dacă această rădăcină este sau nu unică. Pentru separarea rădăcinilor este această rădăcină este sau nu unică. Pentru separarea rădăcinilor este suficient să aplicăm metoda suficient să aplicăm metoda bipartiţieibipartiţiei care constă în divizarea care constă în divizarea aproximativă a intervalului dat în două, patru, opt, etc. părţi egale (până aproximativă a intervalului dat în două, patru, opt, etc. părţi egale (până la un anumit pas), şi să determinăm semnul funcţiei f(x) în punctele de la un anumit pas), şi să determinăm semnul funcţiei f(x) în punctele de diviziune. diviziune.

Metoda bipartiţieiMetoda bipartiţiei Fie ecuaţia: f(x)=0 (1), unde este o funcţie continuă pe Fie ecuaţia: f(x)=0 (1), unde este o funcţie continuă pe

, iar . , iar .

Pentru calculul rădăcinilor ecuaţiei care aparţin intervalului dat, Pentru calculul rădăcinilor ecuaţiei care aparţin intervalului dat, împărţim acest interval în două părţi. Distingem două cazuri:împărţim acest interval în două părţi. Distingem două cazuri:

1. şi atunci este rădăcina căutată şi oprim 1. şi atunci este rădăcina căutată şi oprim procedeul;procedeul;

2. şi în acest caz selectăm2. şi în acest caz selectăm din cele două intervale pe acela din cele două intervale pe acela pentru care valorile funcţiei în capete au semne contrare. Renotăm pentru care valorile funcţiei în capete au semne contrare. Renotăm capetele acestui interval cu a şi b şi continuăm procedeul.capetele acestui interval cu a şi b şi continuăm procedeul.

:[ , ]f a b ( ) ( ) 0f a f b

( ) 02

a bf

2

a b

( ) 02

a bf

,a b

Page 8: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Se obţine astfel fie rădăcina exactă, fie un şir de intervale închise Se obţine astfel fie rădăcina exactă, fie un şir de intervale închise cuprinse unele în altele.cuprinse unele în altele. Capetele din stânga ale acestor intervale formează Capetele din stânga ale acestor intervale formează un şir crescător şi mărginit superior de b, iar capetele din dreapta formează un şir crescător şi mărginit superior de b, iar capetele din dreapta formează un şir descrescător şi mărginit inferior de un şir descrescător şi mărginit inferior de aa.. Observaţia 1: Metoda presupune că rădăcinile ecuaţiei (1) au fost Observaţia 1: Metoda presupune că rădăcinile ecuaţiei (1) au fost separate pe intervalul .separate pe intervalul . Observaţia 2: Dacă este o valoare aproximativă a lui , la pasul avem:Observaţia 2: Dacă este o valoare aproximativă a lui , la pasul avem:

.. Observaţia 5: În cazul în care rădăcinile nu au fost separate luăm, după Observaţia 5: În cazul în care rădăcinile nu au fost separate luăm, după caz, o valoare foarte mică pentru (de exemplu ) şicaz, o valoare foarte mică pentru (de exemplu ) şiSau astfel încât să avem .Sau astfel încât să avem . Observaţia 6: În momentul opririi procedeului, mai putem îmbunătăţi Observaţia 6: În momentul opririi procedeului, mai putem îmbunătăţi precizia calculelor, făcând media aritmetică a ultimelor două valori obţinuteprecizia calculelor, făcând media aritmetică a ultimelor două valori obţinute

,a b

1.

2nx b a

1a *10n cu n 1 0b 1 10 10na şib 1 1( ) ( ) 0.f a f b

nananana

Page 9: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Exemplul 1: Să determinăm rădăcina funcţiei , Exemplul 1: Să determinăm rădăcina funcţiei , rădăcină cuprinsă în intervalulrădăcină cuprinsă în intervalul . .

Soluţie:Soluţie: Avem: Deci . Avem: Deci .

FacemFacem Intervalul ales este . Continuăm Intervalul ales este . Continuăm

procedeul:procedeul:

Deci intervalul ales este Deci intervalul ales este

Intervalul alesIntervalul ales este este

3 2( ) 2 3 1f x x x x 0,1

(0) 1; (1) 1;f f (0) (1) 0f f

(0,5) 0,125 2 0,25 3 0,5 1 0,125f

1 10, 0,5a b 1 1,a b 0, (0,5)

(0,25) 0,0156 2 0,0625 3 0,25 1 0,3594f

2 2,a b 0,25 , 0,5

(0,375) 0,0527 2 0,1406 3 0,375 1 0,1035f

3 3,a b 0,375 , 0,5

(0, 4375) 0,0837 2 0,1914 3 0.4375 1 0,0134f

Page 10: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Intervalul ales va fi .Intervalul ales va fi .

Intervalul ales va fiIntervalul ales va fi

Intervalul ales va fi Intervalul ales va fi

Intervalul ales va fiIntervalul ales va fi

Intervalul ales va fiIntervalul ales va fi

Intervalul ales va fiIntervalul ales va fi

4 4,a b 0,375 , 0,4375

(0,4063) 0,0671 2 0,1651 3 0,4063 1 0,0442f

5 5,a b 0,4063 , 0,4375

(0,4219) 0,0751 2 0,1780 3 0,4219 1 0,0152f

6 6,a b 0,4219 , 0,4375

(0,4297) 0,0793 2 0,1846 3 0,4297 1 0,0008f

7 7,a b 0,4297 , 0,4375

(0,4336) 0,0815 2 0,1880 3 0,4336 1 0,0063f

8 8,a b 0,4297 , 0,4336

(0,4317) 0,0805 2 0,1864 3 0,4317 1 0,0028f

9 9,a b 0,4297 , 0,4317

Page 11: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

Intervalul ales va fiIntervalul ales va fi

Luăm în final Luăm în final

Programul C++ pentru metoda bipartiţieiProgramul C++ pentru metoda bipartiţiei

Programul în C++ prezentat în continuare determină soluţia unei Programul în C++ prezentat în continuare determină soluţia unei ecuaţii de forma în următoarele ipotezeecuaţii de forma în următoarele ipoteze

- soluţia este separată într-un interval ;- soluţia este separată într-un interval ;

- funcţia este continuă pe intervalul ;- funcţia este continuă pe intervalul ;

Datele de intrare sunt: capetele intervalului în care se caută soluţia, Datele de intrare sunt: capetele intervalului în care se caută soluţia, şi precizia dorită epsilon.şi precizia dorită epsilon.

Să determinăm rădăcina funcţiei cuprinsă în Să determinăm rădăcina funcţiei cuprinsă în intervalul .intervalul .

0,4307 0,0799 2 0,1855 3 0,4307 1 0,0010f

10 10,a b 0,4297 , 0,4307

1(0,4297 0,4302) 0,42992

( ) 0f x ,a b

,a b

3 2( ) 2 3 1f x x x x

0,1

Page 12: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

#include <iostream.h>#include <iostream.h> #include <math.h>#include <math.h> #include <stdlib.h>#include <stdlib.h> #include <conio.h>#include <conio.h> double f(double x)double f(double x) { return x*x*x-2*x*x+3*x-1; }{ return x*x*x-2*x*x+3*x-1; } void main()void main() {{ double a,b,c,eps;double a,b,c,eps; int t=0;int t=0; cout<<"\n a= "; cin>>a;cout<<"\n a= "; cin>>a; cout<<"\n b= "; cin>>b;cout<<"\n b= "; cin>>b; if (f(a)*f(b)>0)if (f(a)*f(b)>0) cout<<"\n Intervalul nu contine radacini";cout<<"\n Intervalul nu contine radacini"; elseelse

Page 13: METODA BIPARTIŢIEI PENTRU REZOLVAREA APROXIMATIVĂ A UNOR ECUAŢII Cuprins

if (f(a)*f(b)==0)if (f(a)*f(b)==0) if (f(a)==0) if (f(a)==0) cout<<"\n Solutia: x= "<<a;cout<<"\n Solutia: x= "<<a; else cout<<"\n Solutia: x= "<<b;else cout<<"\n Solutia: x= "<<b;

else else { {

cout<<"\n eps= "; cin>>eps;cout<<"\n eps= "; cin>>eps; dodo

{ c=(a+b)/2;{ c=(a+b)/2; if (f(c)==0) { cout<<"\n Sol este "<< c;if (f(c)==0) { cout<<"\n Sol este "<< c;

t=1;t=1; }} elseelse

if(f(a)*f(c)<0) b=c; else a=c;if(f(a)*f(c)<0) b=c; else a=c; }}while ((t==0)&&(fabs(b-a)>eps));while ((t==0)&&(fabs(b-a)>eps));

if (t==0) cout <<" \n Sol aprox este "<< (a+b)/2;}if (t==0) cout <<" \n Sol aprox este "<< (a+b)/2;}getch();getch();}}