Documente Academic
Documente Profesional
Documente Cultură
Raport la
Lucrare de laborator Nr.1
la Metode și Modele de Calcul
Chișinau, 2019
Rezolvarea numerică a ecuațiilor neliniare
Sarcini de lucru:
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 rădăcină reală a ecuației date cu ajutorul metodei injumă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,evaluările pentru funcții
și derivată.
Nr. Variantei: 13
a) 𝑥 lg 𝑥 − 1.2 = 0 b) 𝑥 3 − 0.1𝑥 2 + 0.4𝑥 − 1.5 = 0
′ (𝑥)
15𝑥 2 − 𝑥 + 2
𝑓 =
5
15𝑥 2 − 𝑥 + 2 = 0
𝛥 = (−1)2 − 4 ∗ 15 ∗ 2 = −121 < 0
-16 0 16
- - +
double func(double x)
{
return //functia;
}
int main(){
if (func(x0)*func(x1)<0){
if (func(x0)*y<0){
x1=x;
} else {
x0=x;
}
cout<<"\n\nF("<<x<<")="<<func(x);
}
} else
std::cout<<"Erroare interval";
}
Rezultatele pentru functia 𝑥 lg 𝑥 − 1.2 = 0 :
if(fabs(f)>fabs(dx))
goto divergent;
dx = -f;
*x += dx;
divergent:
std::cout<<"Iter: proces divergent\n";
return 2;
int main(){
double x;
std::cout<<"Introduceti valoare pentru x de pe interval"<<endl;
std::cout<<"x0 = ";
cin>>x;
Iter(func, &x);
return 0;
}
Rezultatele pentru functia 𝝋 = 1 + 𝑐(𝑥 lg 𝑥 − 1.2)𝑢𝑛𝑑𝑒𝑐 = −0.159 :
x=a;
y=func(x);
y1=func_d(x);
x=x-y/y1;
y=f(x);
y1=f1(x);
if (i>iter){
cout<<"problema nu se poate rezolva in nr.maxim de iteratii";
return 0;
} else return x;
int main(){
double x, y1, y, a, b;
std::cout<<"a="; cin>>a;
std::cout<<"b="; cin>>b;
x=itang(a,b,func,func_d);
double func(double x)
{
return //functia;
}
int main(){
int i = 0;
double x,x0,x1,a,b,y;
std::cout<<"a="; cin>>a;
std::cout<<"b="; cin>>b;
if (func(x0)*func(x1)<0){
if (func(x0)*y<0){
x1=x;
} else {
x0=x;
}
std::cout<<"\n\nf("<<x<<")="<<func(x)<<" la iteratia "<<(int)i;
i++;
}
if (i>iter){
cout<<"problema nu se poate rezolva in nr.maxim de iteratii";
}
} else{
cout<<"interval invalid";
}
}
Rezultatele pentru funcția 𝑥 lg 𝑥 − 1.2 = 0 :