Lab 1 MN [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

REPUBLIC OF MOLDOVA MINISTERUL EDUCATIEI UNIVERSITATEA TEHNICA A MOLDOVEI Catedra de Calculatoare

RAPORT Lucrarea de Laborator № 1 Metodele Numerice

A efectuat:

A verificat :

Chisinau 2015

Lucrarea de laborator nr.1 Scopul lucrării : 1) Să se separe toate rădăcinile reale ale ecuației f(x)=0 unde y=f(x) este o funcție reală de variabilă reală. 2) Să se determine o radacină reală a ecuației date cu ajutorul metodei înjumătățirii intervalului cu o eroare mai mică decît ε=10 2 . 3) Să se precizeze rădăcina obținută cu exactitatea ε= 10 -6 = ,utilizînd: • metoda aproximațiilor succesive ; • metoda tangentelor (Newton); • metoda secantelor . 4) Să se compare rezultatele luînd în considerație numărul de iterații , evaluarile pentru funcții și derivată.

Ecuațiile propuse spre rezolvare:

Variant 19 : Varianta 20 : 2x +3x-0.5=0; 37x-52=0;

3x 2-

Mersul lucrarii : 1) Separarea rădăcinilor Pentru prima ecuație este convenabilă folosirea metodei grafice de separare a rădăcinilor. Chisinau 2015

1.1) Avem 2 radacini ξ(-2 ; 1.2) si ξ(1,2 ; 3):Pentru a doua ecuație folosim metoda șirului lui Rolle

X

-2

-1,2

1,2

Y

-6.25

-4.5

6.3

3 16.5

rădăcină reală ξ ( -1.2 ; 1.2) 1.2)Pentru a determina celelalte rădăcini folosim metoda grafică.

Chisinau 2015

1.3)Scriem ecuația 3x2-37x-52=0 sub forma

φ(x ) = ɡ ( x)

construim graficul nr 2 :

1.4) Avem 2 radacini ξ(-5 ; -3.5) si ξ(3.5 ; 6):Pentru a doua ecuație folosim metoda șirului lui Rolle

X

-5

-3.5

3.5

Y

8

34

-138

6 -58 rădăcină reală ξ ( -3.5 ; 3.5)

Chisinau 2015

2) Calculul rădăcinii reale prin metoda înjumătățirii intervalului: 2.2) #define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; double f(double x) { return pow(x, 3) - 37 * x -52;

Chisinau 2015

} int main() { int k = 0; double a = -3.5, b = 3.5, c = 0, eps = 0.01; while ((b - a)>eps) { k++; c = a + (b - a) / 2; if (f(c) == 0) break; if (f(a)*f(c)