|
Algebraik va transtsendent tenglamalar yechimlarini taqribiy usullar bilan topish
|
Sana | 21.04.2024 | Hajmi | 1.12 Mb. | | #203480 |
Bog'liq Task1 14999, 2021 O‘zbekiston respublikasi iqtisodiyot tarmoqlarida raqamli i-fayllar.org, nomsiz
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Infokommunikatsiya injiniringgi
2-bosqich 430-22-guruh talabasi
Isroilov Ilhomning
Algoritmlarni loyihalash
fanidan bajargan
1-amaliy ishi
Topshirdi: Isroilov Ilhom
Tekshirdi: Axmedov Oybek
Toshkent 2024
Algebraik va transtsendent tenglamalar yechimlarini taqribiy usullar bilan topish.
12. a) x3-3x2+2x-4=0 b) x(x+1)2=2
A
Analitik usul. x3-3x2+2x-4=0
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y
|
-64
|
-28
|
-10
|
-4
|
-4
|
-4
|
2
|
Jadvalda Y qiymatlarining ishoralari o’zgarishiga qarab yechimlar joylashgan [2; 3] oraliqni tanlab oldim.
Dastur qismi:
#include
#include
double f(double x) {
return pow(x, 3)-3*x*x +2* x - 4;
}
int main() {
double a = 0, b = 3, eps;
std::cout << "Epsilonni kiriting: ";
std::cin >> eps;
double c = (a + b) / 2;
while (std::abs(b - a) > eps) {
if (f(a) * f(c) < 0) {
b = c;
} else {
a = c;
}
c = (a + b) / 2;
}
std::cout << "Yechim = " << (a + b) / 2 << std::endl;
return 0;
}
b) Grafik usul.
Berilgan ) x3-3x2+2x-4=0 tenglamani ikki qismga, f1 va f2 ga ajratdim, bunda f1 = f2.
x3=3x2-2x+4 deb oldim
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y1
|
-27
|
-8
|
-1
|
0
|
1
|
8
|
27
|
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y2
|
|
|
|
|
|
|
|
Y1=f1 va Y2=f2 funktsiyalar grafik chizdim va kesishish nuqtalari korsatdim tenglama ildizlari joylashgan oraliq [2; 3] ni topdim.
3 - vazifa
Urinmalar usulining algoritmi:
Urinmalar usuli uchun dastur kodi:
#include
#include
double F(double x) {
return pow(x, 3)-3*x*x +2* x - 4;
}
double F1(double x) {
return 3*x*x-6*x+2;
}
double F2(double x) {
return 6*x-6;
}
int main() {
double a = 0, b = 3, x1, x2, eps;
std::cout << "aniqlikni kiriting= ";
std::cin >> eps;
if (F1(a) * F2(a) > 0) {
x1 = b;
} else {
goto label2;
}
label1:
x2 = x1 - F(x1) / F1(x1);
if (std::abs(x2 - x1) > eps) {
x1 = x2;
goto label1;
} else {
goto label3;
}
label2:
if (F1(a) * F2(a) < 0) {
x1 = a;
}
label4:
x2 = x1 - F(x1) / F1(x1);
if (std::abs(x2 - x1) > eps) {
x1 = x2;
goto label4;
}
label3:
std::cout << "tenglama yechimi= " << x1 << std::endl;
return 0;
}
B
x(x+1)2=2
Soddalashtirib olaman x3+2x2+x-2=0
Analitik usul
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y
|
-14
|
-4
|
-2
|
-2
|
2
|
16
|
46
|
Jadvalda Y qiymatlarining ishoralari o’zgarishiga qarab yechimlar joylashgan [0; 1] oraliqni tanlab oldim.
Dastur qismi:
#include
#include
double f(double x) {
return pow(x, 3)+2*x*x + x - 2;
}
int main() {
double a = 0, b = 1, eps;
std::cout << "Epsilonni kiriting: ";
std::cin >> eps;
double c = (a + b) / 2;
while (std::abs(b - a) > eps) {
if (f(a) * f(c) < 0) {
b = c;
} else {
a = c;
}
c = (a + b) / 2;
}
std::cout << "Yechim = " << (a + b) / 2 << std::endl;
return 0;
}
b) Grafik usul.
Berilgan x3+2x2+x-2=0tenglamani ikki qismga, f1 va f2 ga ajratdim, bunda f1 = f2.
x3=-2x2-x+2 deb oldim
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y1
|
-27
|
-8
|
-1
|
0
|
1
|
8
|
27
|
X
|
-3
|
-2
|
-1
|
0
|
1
|
2
|
3
|
Y2
|
|
|
|
|
|
|
|
Y1=f1 va Y2=f2 funktsiyalar grafik chizdim va kesishish nuqtalari korsatdim tenglama ildizlari joylashgan oraliq [0; 1] ni topdim.
3 - vazifa
Urinmalar usulining algoritmi:
Urinmalar usuli uchun dastur kodi:
#include
#include
double F(double x) {
return pow(x, 3)+2*x*x + x - 2;
}
double F1(double x) {
return 3*x*x+4*x+1;
}
double F2(double x) {
return 6*x+4;
}
int main() {
double a = 0, b = 1, x1, x2, eps;
std::cout << "aniqlikni kiriting= ";
std::cin >> eps;
if (F1(a) * F2(a) > 0) {
x1 = b;
} else {
goto label2;
}
label1:
x2 = x1 - F(x1) / F1(x1);
if (std::abs(x2 - x1) > eps) {
x1 = x2;
goto label1;
} else {
goto label3;
}
label2:
if (F1(a) * F2(a) < 0) {
x1 = a;
}
label4:
x2 = x1 - F(x1) / F1(x1);
if (std::abs(x2 - x1) > eps) {
x1 = x2;
goto label4;
}
label3:
std::cout << "tenglama yechimi= " << x1 << std::endl;
return 0;
}
|
| |