1. Analitik yoki grafik ravishda berilgan tenglama ildizi yotgan oraliqni ajrating va ketma- ket yaqinlashish usuli yordamida 0.0001 aniqlikda yechimni toping hamda yechimni toppish uchun zarur bo’lgan iterarsiyalar sonini aniqlang.
Berilgan tenglamani quyidagi ikkita funksiya ko’rinishida yozib olamiz:
Bu funksiyalarni kesish oralig’ini topib, undan boshlang’ich yaqinlashish sifatida ixtiyoriy yechimni tanlab olamiz:
1.1.rasm
Oraliqni [1.5;2.5] deb olib, undan boshlang’ich yaqinlashish sifatida
ni olamiz. Bu masalani oddiy usulida yechish uchun quyidagi almashtirishdan foydalanamiz:
Bu almashtirish quydagi shartlarni ajarishi kerak:
yoki
k son sifatida qiymatni olamiz. Quyida bu masalaning C# dasturlash tilidagi dastur matnini keltiramiz:
void Iteration()
{
double x = -0.75, y, e = 0.0001; uint n = 0;
do
{
y = x + (Math.Log(x + 1) / Math.Log(3) - 2 / x);
x = y; n++;
} while (Math.Abs(y - x) < e);
Console.WriteLine("Yechim: " + x + " Iteratsiyalar soni: " + n);
}
Oddiy iteratsiya usulining mazmuni shundan iboratki, boshlang’ich yaqinlashish sifatida olingan qiymatimiz va tanlab olgan funksiyamizdan foydalanib quyidagichi ketma-ketlik tuzamiz:
Bu ketma-ketlik quyidagi shart bajarilgunga qadar davom etadi:
(*)
Bu ketma-ketlikning dastlabki hadlari
……
Ketma-ketlikning qolgan elementlari quyidagi oynada mavjud:
2. Analitik yoki grafik ravishda berilgan tenglama ildizi yotgan oraliqni ajrating va Nyuton usuli yordamida 0.0001 aniqlikda yechimni toping hamda yechimni toppish uchun zarur bo’lgan iterarsiyalar sonini aniqlang.
Aytaylik, funksiya biror oraliqda berilgan va shu oraliqda ikki marta differensiallanuvchi bo’lsin va oraliqning chetki nuqtalarida bir ishorali bo’lsin, ya’ni
Funksiyaning birinchi va ikkinchi tartibli hosilalarining oraliqdagi ishorasi o’zgarmasin. funksiya grafigiga oraliqning chetki nuqtalaridan urinmalar o’tkazamiz.Ma’lumki, urinma tenglamasi
agar
yoki
agar
Agar y ni o’rniga 0 qo’ysak birinchi yaqinlashishga ega bo’lamiz:
yoki
Bu yaqinlashishdan foydalanib navbatdagi yaqinlashishni topish mumkin:
Bu ketma-ketlik (*) shart bajarilgunga qadar davom etadi.
Masalaning C# dasturlash tilidagi matni:
static void Newton()//[0,0.5]
{
double x1 = 3.25, y1, n = 0, e = 0.0001, delta = 0;
while (true)
{
y1 = x1 - (Math.Log10(x1 + 1) - Math.Pow(2, x1) + 3 * x1) / (1 / (Math.Log(10) * (x1 + 1)) - Math.Pow(2, x1) * Math.Log(2) + 3);
delta = y1 - x1;
x1 = y1; n++;
if (Math.Abs(delta) < e)
{
break;
}
};
Console.WriteLine("Yechim: " + x1 + " Iteratsiyalar soni: " + n);
}
Dastur natijasi:
3.
Do'stlaringiz bilan baham: |