Sunteți pe pagina 1din 8

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 ecuaiilor algebrice i transendente

A efectuat: st. gr. C-151 Dutcovici Radu

A verificat: dr. conf un. E.Tutureanu

Chiinu 2016
Scopul Lucrrii:
S se separe analitic i grafic toate rdcinile reale al ecuaiilor
y 1=x 33 x 2+ 6 x 5 - mod analitic

y 2=x 33 x +5 - mod grafic


S se determine rdcinile reale ale funciilor cu exactitatea = 10-4 prin metoda
Coardelor i metoda Newton.
S se compare rezultatele obinute.

Mersul Lucrrii:

1. Separarea Rdcinilor:

a. Separarea rdcinilor prin modul analitic.


Pentru sepeararea rdcinilor n mod analitic este utilizata metoda irului lui
Rolle.

1. Derivm ecuaia y1
2
y d = y 2=3 x 6 x+ 6

2. Egalm derivat funciei cu 0 i aflm punctele de interseie cu axa Ox


y d =3 x26 x+6=0

=6243=3

3. Deteminm limitele pe care este posibil ca semnul funciei s alterneze


a
k =1+ unde a=max {|a1|,|a 2| , ,|an|}
|a0|
6
k =1+ =7
1

Intervalul de cutare este [ 7, 7 ]

4. Construim irul lui Rolle


x - 7
7013
.5
Sign --- +
(y) +

Avem o singur alternan de semn i respectic o singur soluie real pe


intervalul =[ 7, 7 ]

b. Separarea rdcinilor prin modul grafic.


3
1. Scriem ecuia x 3 x +5=0 sub forma f ( x )=g( x ) i obinem

x 3=3 x5
2. Construim graficile funciei
Graficul funciei este prezentat n fig. 1
Figura 1 Graficul funciei y2

Funcia are o singur rdcin real pe intervalul =[ 1, 3,5 ]

2. Determinarea rdcinilor funciei:


Pentru determinarea rdcinilor 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 <iostream>
#include <cmath>
#include <cstdio>
#include <iostream>

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) <0)


{
while (fabs(x0 - x1) > 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;
}
Afiarea Rezultatelor:

3. Compararea rezultatelor:

Metoda Rdcina ( x 0 ) Nr. de iteraii Eroarea


f 1( x ) f 2( x ) f 1(x ) f 2(x )
Coardelor 1.32216 0.00007 27 12 0.0001
4 6
Newton 1.32218 -0.0000 3 6 0.0001
5

Concluzie:
n urma efecturii lucrrii de laborator am rezolvat n practic rezolvarea numeric a
ecuaiilor algebricei 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.

S-ar putea să vă placă și