Documente Academic
Documente Profesional
Documente Cultură
RAPORT
la lucrarea de laborator nr. 1
A verificat: Șt.Buzurniuc
Chișinău 2019
Sarcina lucrarii. Se consideră ecuația neliniară f(x)=0ș Să se determine rădăcini ale ecuației prin metode:
1) Bisecția cu precizia 0.001.
2) Newton precizia 0.0001.
3) Secantelor precizia 0.0001.
4) Iterațiilor simple cu precizia 0.0001.
Grafic Functiei
Cod;
#include <iostream>
#include <cmath>
float ka=fx(a)*fx2(a);
float kb=fx(b)*fx2(b);
float x;
if (ka>kb) {x=a;} else {x=b;}
while (abs(fx(x))>e){
x=cas(x);
}
cout<<"Newton:\n x="<<x<<"\n";//<<" f(x)="<<fx(x)<<"\n";
}
while (abs(fx(c))>e){
c=(a+b)/2;
if(fx(c)<0){b=c;}
else {a=c;}
}
cout<<"Bisectie:\n c="<<c<<"\n";//<<" f(c)="<<fx(c)<<"\n";
}
}
void IteratieSimple(float a, float b, float e){
float x0; // Начальное приближение
float x1,y;
x0=(a+b)/2.0;
x1 = x0;
y =f(x1);
int main(){
float x=0,a=0,b=0;
float e=0.001, e2= 0.00001;
///////////////////////////////////// Нахождение интервалов
if(fx(x)>0){
b=0;
while (fx(x)>0){
--x;
b=x;
}
}
else {
a=0;
while (fx(x)<0){
++x;
a=x;
}
}
cout<<a<<" "<<b<<"\n";
/////////////////////////////////////// Метод 1.
Bisectie(a,b,e);
/////////////////////////////////////// Метод 2.
NewTon(a,b,e2);
/////////////////////////////////////// Метод 3.
MetodSecantelor(a,b,e2);
/////////////////////////////////////// Метод 4.
// cout<<"\n";
IteratieSimple(a,b,e2);
cout<<"\n\n\n";
return 0;
}
Output;
Concluzie.
Deoarece nu este necesară cunoașterea derivatului, cu aceeași cantitate de calcul în metoda secantă, se poate obține
mai multă precizie decât în metoda Newton.