Masalaning ko’rinishi
2.4 Asosiy algoritmda amallar bajarilishi ketma-ketlikligi keltirish, ya’ni:
1) kiritish (n, m, a i );
32
2) S = 0;
3) i = 1;
4) S = S + a i
;
5) i = i + 1;
6) agar ( i <= n ) shart bajarilsa, u holda => (4);
7) P = a 1 ;
8) i = 2 ;
9) agar (P < a i ) shart bajarilsa, u holda P = a i;
10) i = i + 1;
11) agar ( i <= n ) shart bajarilsa, u holda => (9) ;
12) R = S – P ;
13) muhrlash (R) .
Yuqoridagi keltirilgan masalani yechish algoritmini ixchamlashtirish
mumkin:
1) kiritish (n, m, a i );
2) S = a 1 ;
3) P = a 1 ;
4) i = 2;
5) S = S + a i
;
6) agar (P < a i ) shart bajarilsa, u holda P = a i
;
7) i = i + 1;
8) agar ( i <= n ) shart bajarilsa, u holda => (5) ;
9) R = S – P ;
10) muhrlash (R) .
Algoritmda yig‘indi va maksimal qiymat aniqlash jarayonida boshlang‘ich
indeks qiymatini tenglashtiriladi (S = a 1 va P = a 1 ) va jarayon massivning 2 chi
elementini qayta ishlashdan boshlandi. Ya’ni bir takrorlash jarayonida ikkita:
massiv element qiymatlari yig‘indisini hisoblash va maksimal qiymatni aniqlash
amalga oshiriladi.
Funksiya uzluksiz va [a,b] oraliq chegaralarida har xil ishorali
qiymatlarga ega deb faraz qilinadi. Oraliqni ikkiga bo‘lish usuli asosida f(x)=0
funksiyaning ildizini topish dasturini tuzing.
Masalani yechishdan avval oraliq chegarasidagi funksiya qiymatlarini
moslash kerak, ya’ni x=a nuqtada funksiya manfiy, x= b nuqtada musbat qiymatga
ega bo‘lish ta’minlanadi. Ularni joyma-joy almashtirish uchun “uch likopcha”
usulidan foydalaniladi. So‘ngra oraliqni ikkiga bo‘lish usuli asosida f (x) = 0
funksiyaning ildizini aniqlash jarayoni amalga oshiriladi. Uning uchun, avvalo,
s=(a+b)/2 o‘rta qiymat aniqlanadi va u=f (s) funksiya qiymatining ishorasi
aniqlanadi. Agar f (s)<0 bo‘lsa, u holda a=s, aks holda (f (s) > 0 bo‘lsa) – b=s deb
qabul qilinadi. Bu jarayon |f (a)-f (b)|≤ε shart bajarilguncha davom etadi va
funksiyaning ildizi x=(a+b)/2 deb hisoblanadi (bunda ε >0 - etarlikcha kichik
musbat son).
Algoritmning so‘zlar orqali ifodalanishi usulidan foydalanamiz.
1) ma’lumotlarni kiritish (a, b, ε, f (x) );
2) agar (f (a)>0 va f (b)<0)) bo‘lsa {c=a; a=b; b=c;}
3) ya=f (a);
4) yb=f (b);
5) agar (ya-yb) <=ε , u holda {x= (a+b)/2; => (10)}
6) ys=f ((a+b)/2);
7) agar (y3>0) bo‘lsa, u holda b=(a+b)/2, aks holda a=(a+b)/2;
8) ya=f (a);
9) yb =f (b);
10) muhrlash (x).
4-misol. Berilgan [a,b] oraliqda aniqlangan uzluksiz u= f (x) funksiya bilan
OX o‘qi orasida hosil bo‘lgan S yuzani trapetsiya formulasi asosida taqribiy
hisoblash algoritmi keltiriladi:
1) S = 0;
2) h = (b - a) / n;
3) i = 0;
4) S=S + ( f (a+i*h)+ f (a+(i+1)*h)*h / 2;
5) i = i + 1;
6) agar i < n , u holda => (4);
7) muhrlash (S).
0>
Do'stlaringiz bilan baham: |