|
Интегрални тақрибий ҳисоблашга доир дастурлар
|
bet | 2/2 | Sana | 12.06.2024 | Hajmi | 312,3 Kb. | | #263050 |
5. Интегрални тақрибий ҳисоблашга доир дастурлар.
интегрални ҳисоблайлик,
5.1. Тўғри тўртбурчаклар формуласи.
функция, оралиқ, бўлинишлар сони
ҳисобланадиган интеграл
қадам, тугун нуқталар
ТТ формуласи ва қиймати
5.2.Tрапеция формуласи:
функция, оралиқ, бўлинишлар сони
ҳисобланадиган интеграл
қадам, тугун нуқталар
Трапеция формуласи
5.3.Симпсон формуласи:
функция, оралиқ, бўлинишлар сони
ҳисобланадиган интеграл
қадам, тугун нуқталар
Симпсон формуласи
интегралнинг аниқ ва тақрибий қиймати
Натижатўғрилигикўринибтурибди.
#include
#include
using namespace std;
double funksiya(double x, char harf) {
if(harf =='a')
return exp(x)-10 * x - 2;
return pow(x,3)-3*x*x+9*x-10;
}
double funksiyaning_birinchi_tartibli_hosilasi(double x,char harf) {
if (harf == 'a')
return pow(2,x)+log(2)*x*pow(2,x);
return 3*x*x-6*x+9;
}
double funksiyaning_ikkinchi_tartibli_hosilasi(double x,char harf) {
if(harf =='a')
return pow(2, x+1)* log(2) + pow(log(2),2) * x * pow(2, x);
return 6*x-6;
}
void nyuton_usuli(double a, double b, double e, char harf) {
double x0 = 0;
if (funksiya(a,harf) * funksiyaning_ikkinchi_tartibli_hosilasi(a, harf) > 0)
x0 = a;
else
x0 = b;
int i = 1;
float x = x0 - funksiya(x0, harf) / funksiyaning_birinchi_tartibli_hosilasi(x0, harf);
while (fabs(x - x0) > e) {
i++;
x0 = x;
x= x0 - funksiya(x0, harf) / funksiyaning_birinchi_tartibli_hosilasi(x0, harf);
}
cout << "\nnyuton usulining natijasi (" << harf << " tenglama uchun)\n";
cout << "\tildizning taqribiy qiymati: " << x << endl;
cout << "\tzarur bo'lgan qadamlar soni: " << i << endl;
}
void vatarlar_usuli(double a, double b, double e,char harf) {
double x0 = 0;
double c = 0;
if (funksiya(a, harf) * funksiyaning_ikkinchi_tartibli_hosilasi(a, harf) < 0) {
x0 = a;
c = b;
}
else {
c = a;
x0 = b;
}
int i = 1;
double x = c - (x0 - c) / (funksiya(x0, harf) - funksiya(c, harf)) * funksiya(c, harf);
while (fabs(x0 - x) > e) {
i++;
x0 = x;
x = c - (x0 - c) / (funksiya(x0, harf) - funksiya(c, harf)) * funksiya(c, harf);
}
cout << "\nvatarlar usulining natijasi ("<
cout << "\tildizning taqribiy qiymati: " << x << endl;
cout << "\tzarur bo'lgan qadamlar soni: " << i << endl;
}
int main() {
double a = 0, b = 0, e = 0;
cout << "a (birinchi) tenglama uchun parametrlarni kiriting:\n";
cout << "a ning qiymatini kiriting: a="; cin >> a;
cout << "b ning qiymatini kiriting: b="; cin >> b;
cout << "e ning qiymatini kiriting: e="; cin >> e;
nyuton_usuli(a, b, e,'a');
vatarlar_usuli(a, b, e,'a');
cout << "\n----------------------------------------------\n\n";
cout << "b (ikkinchi) tenglama uchun parametrlarni kiriting:\n";
cout << "a ning qiymatini kiriting: a="; cin >> a;
cout << "b ning qiymatini kiriting: b="; cin >> b;
cout << "e ning qiymatini kiriting: e="; cin >> e;
nyuton_usuli(a, b, e,'b');
vatarlar_usuli(a, b, e,'b');
return 0;
}
|
| |