Raport Lab 1 Metode Numerice  [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

Universitatea Tehnică a Moldovei Facultatate Calculatoare Informatică și microelectronică Catedra Informatică Aplicată

Raport Lucrare de laborator Nr.1 la disciplina: Metode Numerice

Tema: Rezolvarea numerică a ecuațiilor algebrice și transendente

A efectuat:

st. gr. C-151 Dutcovici Radu

A verificat:

dr. conf un. E.Tutureanu

Chişinău 2016

Scopul Lucrării:  Să se separe analitic și grafic toate rădăcinile reale al ecuațiilor y 1=x 3−3 x 2+ 6 x −5 - mod analitic y 2=x 3−3 x +5

- mod grafic

 Să se determine rădăcinile reale ale funcțiilor cu exactitatea ε = 10-4 prin metoda Coardelor și metoda Newton.  Să se compare rezultatele obținute. Mersul Lucrării: 1. Separarea Rădăcinilor: a. Separarea rădăcinilor prin modul analitic. Pentru sepeararea rădăcinilor în mod analitic este utilizata metoda șirului lui Rolle. 1. Derivăm ecuația y1 2 y d = y´ 2=3 x −6 x+ 6 2. Egalăm derivat funcției cu 0 și aflăm punctele de interseсție cu axa Ox y d =3 x2−6 x+6=0 ∆=−62−4∗3=−3 3. Deteminăm limitele pe care este posibil ca semnul funcției să alterneze a k =1+ unde a=max {|a1|,|a 2| ,⋯ ,|an|} |a0| 6 k =1+ =7 1 Intervalul de căutare este [ −7, 7 ] 4. Construim șirul lui Rolle x 7 7013 .5

Sign (y)

---

+

+

Avem o singură alternanță de semn și respectic o singură soluție reală pe intervalul ε =[ −7, 7 ] b. Separarea rădăcinilor prin modul grafic. 3 ❑ 1. Scriem ecuția x −3 x +5=0 sub forma f ( x )=g( x ) și obținem x 3=3 x−5 2. Construim graficile funcției

Graficul funcției este prezentat în fig. 1 Figura 1 Graficul funcției y2

Funcția are o singură rădăcină reală pe intervalul ε =[ 1, 3,5 ]

2. Determinarea rădăcinilor funcției: Pentru determinarea rădăcinilor reale a fost elaborat un program în limbajul de programarea C++ care utilizează ambele metode de determinare metoda Coardelor și metoda Newton. Schema bloc a metodei Coardelor este prezentat în fig. 2

fig. 2

Shema bloc al metodei Newton este prezentat în fig. 3

Listingul programului: #include #include #include #include using namespace std; double f1(double x) { return pow(x, 3) - 3 * pow(x, 2) + 6 * x - 5; } double f1_der(double x) { return 3 * pow(x, 2) - 6 * x + 6; } double f2(double x) { return pow(x, 3) - 3 * x + 5; } double f2_der(double x) { return 3 * pow(x, 2) - 3; } void calc_met_coarde(double a, double b, double eps, double(*f)(double)) { double x; double x0 = a; double x1 = b; double y; int iter = 0; if (f(a) * f(b) > 0) { if (f(a) < 0)) { x0 = b; x1 = a; } x = x0; while (fabs(f(x)) > eps) { x = x0 - f(x0) * (x1 - x0) / (f(x1) - f(x0)); if (f(x0) * f(x) < 0) x1 = x; else x0 = x; iter++; } printf("Metoda Coardelor:\n"); printf("x = %6f\n", x);

printf("f(x) = %6f\n", f(x)); printf("nr de iteratii = %d\n", iter); } else printf("eroarea!!!\n"); }

void itang(double a, double b, double eps, double(*f)(double), double(*f1)(double)) { int i = 0; double xn = f(a) * f1(a) > 0 ? b : a; double x1 = xn - f(xn) / f1(xn); double x0 = xn; if (f(a) * f(b) eps) { x0 = x1; x1 = x1 - f(x1) / f1(x1); i++; } printf("Metoda tangentelor:\n"); printf("x = %6f\n", x1); printf("f(x) = %6f\n", f(x1)); printf("nr de iteratii = %d\n", i); } else printf("Eroare!!!\n"); } int main() { printf("f1:\n"); calc_met_coarde(0, 3.5, 0.0001, f1); itang(0, 10, 0.0001, f1, f1_der); printf("\nf2:\n"); calc_met_coarde(-3, 0, 0.0001, f2); itang(-7, 0, 0.0001, f2, f2_der); return 0; }

Afișarea Rezultatelor:

3. Compararea rezultatelor: Metoda

Coardelor Newton

Rădăcina ( x 0 )

Nr. de iterații

f 1( x )

f 2( x )

f 1(x )

1.32216 4 1.32218 5

0.00007 6 -0.0000

Eroarea

ε

f 2(x )

27

12

0.0001

3

6

0.0001

Concluzie: În urma efectuării lucrării de laborator am rezolvat în practică rezolvarea numerică a ecuațiilor algebriceși transcendente. Ambele metode au oferit rezultate aproximativ egale Putem concluziona că cea mai eficientă dintr-e metodele studiate este metoda Newton. Conform tabelului rezultatelor metoda Newton este de 2 ori mai eficientă față de metoda Coardelor.