Guruh: di 11-22 Fan nomi: Diffrenksiyal tenglama
Download 170.63 Kb.
|
1-mustaqil ish diffrinksiyal tenglama Komilov Sh
Muxammad al-Xorazmiy nomidagi Toskent axborot tenalogiyalari unversiteti Mustaqil ish-1 Guruh: DI 11-22
Qarshi 2023 Matematik yichilishi: Berilgan differentsial tenglama: y' = 3x + 1,9y^2 - 5xy Bu chiziqli bo'lmagan birinchi tartibli differentsial tenglama. Biz buni o'zgaruvchilarni ajratish usuli yordamida hal qilishimiz mumkin. Buning uchun tenglamaning qarama-qarshi tomonidagi x va y o'zgaruvchilarni ajratib, ikkala tomonni integrallashimiz mumkin: dy / (3x + 1.9y^2 - 5xy) = dx Chap tomonning maxrajidagi y ni koeffitsientga ajratib, tenglamani soddalashtirishga harakat qilishimiz mumkin: dy / y (3x - 5y + 1,9y) = dx dy / y (3x - 3,1y) = dx Keyinchalik, biz ikkala tomonni tegishli o'zgaruvchilarga nisbatan birlashtira olamiz: ∫ dy / y(3x - 3.1y) = ∫ dx Chap tomondagi integralni soddalashtirish uchun qisman kasr parchalanishidan foydalanishimiz mumkin: 1 / y (3x - 3,1y) = A / y + B / (3x - 3,1y) Ikkala tomonni y ga (3x - 3,1y) ko'paytirsak: 1 = Ay(3x - 3,1y) + B*y y = 0 o'rnatish B = 1 ni beradi. Buni tenglamaga qayta o'rniga qo'yish va x = 0 o'rnatish A = 10/31 ni beradi. Shunday qilib, integral quyidagicha bo'ladi: ∫ (10/31) dy / y - ∫ dy / (3x - 3,1y) Birinchi integralni yechish quyidagini beradi: (10/31) ln|y| - ln|3x - 3,1y| = x + C Bu erda C - integratsiya konstantasi. Ushbu ifodani logarifmik identifikatsiyalar yordamida soddalashtirishimiz mumkin: ln|y^(10/31) / (3x - 3,1y)| = x + C Ikkala tomonning eksponentsialni olish quyidagilarga olib keladi: |y^(10/31) / (3x - 3,1y)| = e^(x+C) = Ce^x, bu yerda C doimiy. Biz y ni ijobiy va salbiy holatlarni ko'rib chiqish orqali hal qilishimiz mumkin: y^(10/31) = C(3x - 3,1y) y^(10/31) + C3.1y = C3x Keyin y ni raqamli yoki grafik usullar yordamida hal qilishimiz mumkin. Yechim x ning qandaydir qiymatida y ning boshlang‘ich shartiga bog‘liq bo‘ladi. C++ yozilgan kod: #include #include using namespace std; double f(double x, double y) {
int main() { double x0, y0, h, xn, yn, k1, k2, k3, k4; int n; cout << "Enter the initial value of x: "; cin >> x0; cout << "Enter the initial value of y: "; cin >> y0; cout << "Enter the value of h: "; cin >> h; cout << "Enter the number of steps: "; cin >> n; xn = x0;
cout << "x\ty" << endl;
for (int i = 1; i <= n; i++) { k1 = h * f(xn, yn); k2 = h * f(xn + h / 2, yn + k1 / 2); k3 = h * f(xn + h / 2, yn + k2 / 2); k4 = h * f(xn + h, yn + k3); yn = yn + (k1 + 2 * k2 + 2 * k3 + k4) / 6; xn = xn + h; cout << xn << "\t" << yn << endl; } return 0; } Download 170.63 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling