5-laboratoriya ishi
Mavzu: Algebraik va trancendent tenglamalarni yeshishda oraliqni teng ikkiga bo’lish, iteraciya usullari.
Tayanch iboralar: Tenglama, tenglamaning ildizlari, bir no‘malumli tenglamalar, algebraik tenglama, trancendent tenglama, tenglamalarni taqribiy yechish usullari, kesmani ikkiga bo’lish usuli.
Kesmani ikkiga bo’lish (biseksiya) usuli
Algebraik va trancendent tenglamalar ildizlari yotadigan oraliqlar ajratib olingandan so’ng tenglamaning ildizini taqribiy hisoblash uchun, taqribiy hisoblash usullaridan biri qullaniladi.
Demak tenglama berilgandan so’ng, tenglamaning ildizlari yotgan oraliqlar ajratib olinadi, taqribiy ildizni topish usuli tanlanadi, tanlangan usulga mos ravishda algorimning blok–sxemasi va biror bir dasturlashtirish tilida blok–sxemaga mos ravishda dastur tuziladi. Dastur kompyuterga terilib, natijalar olinadi va taxlil qilinadi.
Tenglamalarning ildizlarini taqribiy yechish usullaridan biri bu kesmani teng ikkiga bo’lish usulidir. Bunda berilgan [a;b] kesma teng ikkiga bulinib [a;с] yoki [с;b] kesmalarda f(a)∙f(c)<0 yoki f(c)∙f(b)<0 shart tekshiriladi va с=(a+b)/2 qilib olinadi va ildiz b-a≤ε shart bajarulgunga qadar davom etirilib topiladi.
Endi usul algoritmini blok-sxemasini ifoda etib, u asosida dastur ta’minotini yarataylik va algoritm hamda dasturning ishga yaroqlilik holatini “test” misol orqali bohalaylik.
Algoritm blok-sxemasi
Misol: Oraliqni teng ikkiga bo’lish usuli yordamida
Tenglamani biror ildizini 0.001 aniqlikda toping.
Dastur matni (Paskalda)
Program Teng_bolish;
Label L1;
var
k:integer; a,b,c,eps:real;
function f(x:real):real;
begin
f:=sqrt(x+2)+0.7*x;
end;
begin k:=0;
L1:writeln(‘a,b=’); readln(a,b);
If f(a)*f(b)>0 then goto L1;
readln(eps);
while abs(b-a)>eps do
begin
C:=(a+b)/2; k:=k+1;
Writeln(k,c:6:5,f(c):8:5);
If f(a)*f(c)<0 then b:=c else
a:=c;
end;
End.
Yeshish: Dastlab, tenglamaning ildizi yotgan oraliqni yuqorida berilgan usullar yordamida ajratamiz. Grafik usulni qo’llab tenglamaning yagona ildizi (-2,-1) oraliqda ekanligi ko’rishimiz mumkin:
a=-2, b=-1, ɛ=0.001 boshlang’ich qiymatlarni kiritamiz va oraliqni teng ikkiga bo’lishlar yordamida yeshimga yaqinlashuvchi algoritmni dastur bo’yicha qo’llab, quyidagi natijalarga erishamiz.
N
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-1.50000
-1.25000
-1.12500
-1.18750
-1.21875
-1.23438
-1.24219
-1.24609
-1.24414
-1.24316
-1.24268
-1.24292
-1.24304
-1.24298
|
0.34289
0.00897
0.14791
0.07014
0.03076
0.01094
0.00099
0.00399
0.00150
0.00025
0.00037
0.00006
0.00010
0.00002
|
Olingan natijalardan ko’rinib turibdiki, ɛ=0.001 aniqlikdagi x=-1.24414 taqribiy yechimga n=9 da erishdik. n ning ortib borishi bilan yechim aniqligi ham ortib borayotganligini jadvaldan kuzatishimiz mumkin.
Iteraciya usullari.0>0>0>
Do'stlaringiz bilan baham: |