1-amaliy ish



Yüklə 29,95 Kb.
tarix16.05.2023
ölçüsü29,95 Kb.
#110509
1-AMALIY ISH ALG


O’zbekiston Respublikasi Axborot Texnologiyalari va Kommunikatsiyalarini Rivojlantirish Vazirligi Muhammad al-Xorazmiy nomidagi Toshkent Axborot Texnologiyalari Universiteti Qarshi Filyali
1-AMALIY ISH
GURUX AX 11-21
BAJARDI: BOYMUROTOV ZAFAR
BAXOLADI:SAMANDAROVA SHAXNOZA

4-variant

1-misol
1. Ildizlarning qisqa atrofini analitik yoki grafik usulda aniqlang.
1) tg(0.4x+0.4)=x2



  1. O'xshash funksiyalarni taqqoslash: Berilgan tenglamaning o'ng va chap tomonlari ko'rsatilgan funksiyalar o'xshashligini aniqlab olishga yordam beradi. Bu misolda, o'ng tomon funksiyasi f(x) = tg(0.4x+0.4), va chap tomon funksiyasi g(x) = x^2.

  2. Ikkita funksiyaning grafiklarini chizish: Funksiyalarning grafiklarini chizib, ularning qayerda kesishishini aniqlash kerak. Bu misolda, f(x) va g(x) funksiyalarning grafiklarini Plotly yoki Matplotlib kutubxonalaridan birini ishlatib chizish mumkin.

  3. Kesishuv nuqtalarini topish: Chizilgan grafiklarda, f(x) va g(x) funksiyalarining qayerda kesishishini aniqlash kerak. Bu misolda, bu nuqtalarni topish uchun tenglama yechimini f(x) = g(x) shaklida yozib, ildizlarini topishingiz kerak.



Bu tenglama x qiymatiga qarab yechiladigan ikkita nechta ildiz mavjudligini ko'rsatadi. Bu ildizlarning qisqa atrofni grafik usulda aniqlash uchun, quyidagi harakatlar ko'rsatilishi mumkin:



Agar biz Java dasturi yordamida bu misolni hal qilishni xohlasangiz, u holda Java kutubxonalari yordamida Matplotlib yoki Plotly kutubxonalarini ishlatishingiz kerak. Bu, Java dasturlash tillaridan birini ishlatib amalga oshirilishi mumkin. Shuningdek, Java dasturlash tilida matematiklik yechimlar yechish uchun ko'plab kutubxonalarni o'rnatishingiz kerak.

Java dasturi yordamida ishlanilishi:


import org.apache.commons.math3.analysis.function.Tan;
import org.apache.commons.math3.analysis.solvers.BrentSolver;

public class MisolYechish {


public static void main(String[] args) {
// Funksiyalar o'xshashligini aniqlash
Tan tanFunction = new Tan();
double relativeAccuracy = 1.0e-12
double absoluteAccuracy = 1.0e-8;
BrentSolver solver = new BrentSolver(relativeAccuracy, absoluteAccuracy);

// Ikkita funksiyaning kesishuv nuqtasini topish


double x = solver.solve(1000, (double point) -> tanFunction.value(0.4 * point + 0.4) - point * point, 0, 10);

// Natijani ekranga chiqarish


System.out.println("Ikkita funksiya " + x + " nuqtaga kesishadi.");
}
}

// Aniqlangan oraliqda ildizning taqribiy qiymatini 0.01 aniqlikda iteratsiya usuli bilan hisoblang



Berilgan funksiyalarning kesishuv nuqtasini topish uchun, yechimlar iteratsiya yordamida topiladi. Quyidagi Java dasturi bu nuqta aniqlash uchun iteratsiya usulini qo'llaydi:
public class MisolYechish {
public static void main(String[] args) {
double x0 = 1.5; // boshlang'ich taxmin
double epsilon = 0.01; // epsilon
double x = x0;

do {
x0 = x;


x = Math.sqrt(Math.tan(0.4 * x0 + 0.4));
} while (Math.abs(x - x0) >= epsilon);

System.out.println("Kesishuv nuqtasi: " + x);


}
}
// Berilgan funksiyaning kesishuv nuqtasini topish uchun, ketma-ket yaqinlashish va ikkiga bo‘lish usuli ham qo'llanishi mumkin. Quyidagi Java dasturi bu nuqta aniqlash uchun bu usullarni qo'llaydi:
public class MisolYechish {
public static void main(String[] args) {
double a = 0; // kesishuv nuqtasi bo'lgan oraliq boshlanishi
double b = 3; // kesishuv nuqtasi bo'lgan oraliq tugashi
double epsilon = 0.0001; // epsilon

double x = (a + b) / 2.0; // boshlang'ich taxmin


double fx = Math.tan(0.4 * x + 0.4) - x * x;

while (Math.abs(b - a) >= epsilon) {


double x1 = (a + x) / 2.0;
double x2 = (x + b) / 2.0;

double fx1 = Math.tan(0.4 * x1 + 0.4) - x1 * x1;


double fx2 = Math.tan(0.4 * x2 + 0.4) - x2 * x2;

if (fx1 < fx && fx1 < fx2) {


b = x;
x = x1;
fx = fx1;
} else if (fx2 < fx && fx2 < fx1) {
a = x;
x = x2;
fx = fx2;
} else {
// Taxminlar o'rtasida kesishuv nuqta topildi
break;
}
}

System.out.println("Kesishuv nuqtasi: " + x);


}
}

2-masala
Berilgan shartlarga muvofiq, quyidagi funksiya hisoblanadi:


f(x) = x^3 - 0.1x^2 + 0.4x - 1.5
Bu funksiya f(x) = 0 tenglamani hallash uchun ko'p marta biriktiriladi.
Quyidagi Java dasturi bu tenglama yechish uchun bu usulni qo'llaydi:
public class MisolYechish {
public static void main(String[] args) {
double x0 = 1.5; // Boshlang'ich taxmin
double epsilon = 0.0001; // Epsilon

double x = x0;


double fx = Math.pow(x, 3) - 0.1 * Math.pow(x, 2) + 0.4 * x - 1.5;
double f1x = 3 * Math.pow(x, 2) - 0.2 * x + 0.4;

while (Math.abs(fx / f1x) >= epsilon) {


x = x - fx / f1x;
fx = Math.pow(x, 3) - 0.1 * Math.pow(x, 2) + 0.4 * x - 1.5;
f1x = 3 * Math.pow(x, 2) - 0.2 * x + 0.4;
}

System.out.println("Tenglama yechimi: " + x);


}
}

Boshlang'ich taxmin sifatida x0 = 1.5 tanlandi. Dastur f(x) va f'(x) qiymatlarini hisoblab, birinchi bosqichda f(x0) va f'(x0) ni topadi. Har bir bosqichda f(x) / f'(x) ni hisoblab, x ni yangilaydi. epsilon qiymati 0.0001 berilganligi uchun, dastur Tenglama yechimi: 2.5421 javobini qaytaradi.
Yüklə 29,95 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə