Professional Documents
Culture Documents
Lab 1 MMC
Lab 1 MMC
RAPORT
La lucrarea de laborator nr 1
Tema : Rezolvarea ecuatiilor algebrice i transcendente
Chiinu 2016
Scopul lucrarii:
1)Sa se separe radacinele reale ale ecuatiei f(x)=0 unde y=f(x) este o functie reala de variabila
reala.
2)Sa se determine o radacina reala a ecuatiei date cu ajutorul metodei injumatatirii intervalului cu
o eroare mai mica decit =102.
Varianta : 32-33
3 25 + 19 = 0;
lg(2 + 3) + 2 11 = 0;
Derivata f(x)=3x2+25
x -2 -1 0 1
Y + + + -
#include<conio.h>
#include<math.h>
#include<stdio.h>
#define f1 pow(x,3)-25*x+19
#define f2 log(2*x+3)+2*x-11
float a, b;
int c;
long nr = 0;
float fonction(float x)
if (c == 1) return f1;
float derivee(float x)
if (c == 1) return f1der;
}
float iteration(float x)
if (c == 1) return (float)(f1it);
else{
return (float)f2it;
float bisect()
float c;
do
nr++;
c = (a + b) / 2;
if (fonction(c) == 0) return c;
else
if (fonction(a)*fonction(c)<0) b = c;
else a = c;
c = a + (b - a) / 2;
return (c);
nr++;
x0 = x1;
x1 = iteration(x0);
return x1;
x = x0 - fonction(x0) / derivee(x0);
nr++;
x0 = x;
return x;
nr++;
x0 = x1;
x1 = x2;
x2 = x1 - (fonction(x1)*(x1 - x0)) / (fonction(x1) - fonction(x0));
return(x2);
int main() {
int n;
float x0;
c = 0;
cin >> c;
cin >> n;
cout << "Solutia ecuatie ." << c << " pe intervalul" << "(" << a << "," << b << "):" <<
endl;
x0 = bisect();
printf("%4.2f", x0);
printf("%8.6f\n", fonction(x0));
nr = 0;
nr = 0;
printf("%8.6f", newton(x0));
printf("%8.6f\n", fonction(newton(x0)));
nr = 0;
nr = 0;
getch();
return 0;
}
Pentru functia 2 :
Concluzie :
In aceasta lucrare de laborator am separat radacinile reale ale fuctiei algebrice si celei transcendente
utilizand metodele urmatoare : metoda lui Newton,metoda secantei,metoda aprocimatiilor
succesive.Pentru fucntia transcendenta am folosit metoda grafica de separare a radacinilor,iar pentru cea
algebrica sirul lui Rolle.
Facind programul am constatat ca fiecare metoda are rezultatul sau si numarul de iteratii diferit.