Uploaded by 『MiMico』

2-mustaqil ishi bajardi Shomurodov. P

advertisement
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI
QARSHI FILIALI
TT 14-21 (S) GURUH TALABASINING
ALGORITMLARNI LOYIHALASH
FANIDAN
2-MUSTAQIL ISHI
Bajardi:
Shomurodov.P
Qabulqildi:
Ablaqulov.K
1. Ketma-ketliklar, to‘plamlar, daraxtlar, graflarni ifodalash usullari
2. Taqribiy integrallash usullari aniqligi va hisoblash hajmi bo‘yicha taqqoslash
3. Algebraik va transtendent tenglamalarni taqribiy yechish usullarini yaqinlashish
tezligi bo‘yicha baxolash
4. Chiziqli algebraik tenglamalar sistemalarini taqribiy yechish usullari. Yaqinlashish
shartlari
Xulosa
Foydalaniladigan adabiyotlar
Ketma -ketliklar, daraxtlar, graflarni ifodalash usullari
Uzellar (elementlar) va ularning munosabatlaridan iborat elementlar to‟plamining ierarxik
tuzilmasiga daraxtsimon ma‟lumotlar tuzilmasi deyiladi. Daraxt – bu shunday chiziqsiz bog‟langan
ma‟lumotlar tuzilmasiki, u quyidagi belgilari bilan tavsiflanadi: - daraxtda shunday bitta element
borki, unga boshqa elementlardan murojaat yo‟q. Bu element daraxt ildizi deyiladi; - daraxtda
ixtiyoriy element chekli sondagi ko‟rsatkichlar yordamida boshqa tugunlarga murojaat qilishi
mumkin; - daraxtning har bir elementi faqatgina o‟zidan oldingi kelgan bitta element bilan
bog‟langan.64 4.2. Binar daraxtlarni qurish Binar daraxtda har bir tugun-elementdan ko‟pi bilan 2
ta shox chiqadi. Daraxtlarni xotirada tasvirlashda uning ildizini ko‟rsatuvchi ko‟rsatkich berilishi
kerak. Daraxtlarni kompyuter xotirasida tasvirlanishiga ko‟ra har bir element (binar daraxt tuguni)
to‟rtta maydonga ega yozuv shaklida bo‟ladi, ya‟ni kalit maydon, informatsion maydon, ushbu
elementni o‟ngida va chapida joylashgan elementlarning xotiradagi adreslari saqlanadigan
maydonlar. Shuni esda tutish lozimki, daraxt hosil qilinayotganda, otaga nisbatan chap tomondagi
o‟g‟il qiymati kichik kalitga, o‟ng tomondagi o‟g‟il esa katta qiymatli kalitga ega bo‟ladi. Har
safar daraxtga yangi element kelib qo‟shilayotganda u avvalambor daraxt ildizi bilan solishtiriladi.
Agar element ildiz kalit qiymatidan kichik bo‟lsa, uning chap shoxiga, aks holda o‟ng shoxiga
o‟tiladi. Agar o‟tib ketilgan shoxda tugun mavjud bo‟lsa, ushbu tugun bilan ham solishtirish
amalga oshiriladi, aks holda, ya‟ni u shoxda tugun mavjud bo‟lmasa, bu element shu tugunga
joylashtiriladi. Masalan, daraxt tugunlari quyidagi qiymatlarga ega 6, 21, 48, 49, 52, 86, 101. U
holda binar daraxt ko‟rinishi quyidagi 4.1-rasmdagidek bo‟ladi: 4.1-rasm. Binar daraxt ko‟rinishi
Natijada, o‟ng va chap qism daraxtlari bir xil bosqichli tartiblangan binar daraxt hosil qildik. Agar
daraxtning o‟ng va chap qism daraxtlari bosqichlarining farqi birdan kichik bo‟lsa, bunday daraxt
ideal muvozanatlangan daraxt deyiladi. Yuqorida hosil qilgan binar daraxtimiz ideal
muvozanatlangan daraxtga misol65 bo‟ladi. Daraxtni muvozanatlash algoritmini sal keyinroq
ko‟rib chiqamiz. Undan oldin binar daraxtni yaratish algoritmini o‟rganamiz. 4.3. Algoritm Binar
daraxt yaratish funksiyasi Binar daraxtni hosil qilish uchun kompyuter xotirasida elementlar
quyidagi 4.2-rasmdagidek toifada bo‟lishi lozim. 4.2-rasm. Binar daraxt elementining tuzilishi p –
yangi element ko‟rsatkichi next, last – ishchi ko‟rsatkichlar, ya‟ni joriy elementdan keyingi va
oldingi elementlar ko‟rsatkichlari r=rec – element haqidagi birorta ma‟lumot yoziladigan maydon
k=key – elementning unikal kalit maydoni left=NULL – joriy elementning chap tomonida
joylashgan element adresi right=NULL – joriy elementning o‟ng tomonida joylashgan element
adresi. Dastlab yangi element hosil qilinayotganda bu ikkala maydonning qiymati 0 ga teng bo‟ladi.
tree – daraxt ildizi ko‟rsatkichi n – daraxtdagi elementlar soni Boshida birinchi kalit qiymat va
yozuv maydoni ma‟lumotlari kiritiladi, element hosil qilinadi va u daraxt ildiziga joylashadi, ya‟ni
tree ga o‟zlashtiriladi. Har bir hosil qilingan yangi elementning left va right maydonlari qiymati 0
ga tenglashtiriladi. Chunki bu element daraxtga terminal tugun sifatida joylashtiriladi, hali uning
farzand tugunlari mavjud emas. Qolgan elementlar ham shu kabi hosil66 qilinib, kerakli joyga
joylashtiriladi. Ya‟ni kalit qiymati ildiz kalit qiymatidan kichik bo‟lgan elementlar chap shoxga,
katta elementlar o‟ng tomonga joylashtiriladi. Bunda agar yangi element birorta elementning u yoki
bu tomoniga joylashishi kerak bo‟lsa, mos ravishda left yoki right maydonlarga yangi element
adresi yozib qo‟yiladi. Binar daraxtni hosil qilishda har bir element yuqorida ko‟rsatilgan toifada
bo‟lishi kerak. Lekin hozir biz o‟zlashtirish osonroq va tushunarli bo‟lishi uchun key va rec
maydonlarni bitta qilib info maydon deb ishlatamiz. 4.3-rasm. Binar daraxt elementining tuzilishi
Ushbu toifada element hosil qilish uchun oldin bu toifani yaratib olishimiz kerak. Uni turli usullar
bilan amalga oshirish mumkin. Masalan, node nomli yangi toifa yaratamiz: class node{ public: int
info; node *left; node *right; }; Endi yuqoridagi belgilashlarda keltirilgan ko‟rsatkichlarni shu
toifada yaratib olamiz. node *tree=NULL; node *next=NULL; int n,key; cout<<"n=";cin>>n;
Nechta element (n) kiritilishini aniqlab oldik va endi har bir element qiymatini kiritib, binar daraxt
tuzishni boshlaymiz. for(int i=0;i>key; p->info=key; p->left=NULL; p->right=NULL;
if(i==0){ tree=p; next=tree;sontinue;} next=tree; while(1){ last=next; if(p->infoinfo) next=next>left; else next=next->right; if(next==NULL) break; } if(p->infoinfo) last->left=p; else last>right=p; } Bu yerda p hali aytganimizdek, kiritilgan kalitga mos hosil qilingan yangi element
ko‟rsatkichi, next yangi element joylashishi kerak bo‟lgan joyga olib boradigan shox adresi
ko‟rsatkichi, ya‟ni u har doim p dan bitta qadam oldinda yuradi, last esa ko‟rilayotgan element
kimning avlodi ekanligini bildiradi, ya‟ni u har doim p dan bir qadam orqada yuradi (4.4-rasm).
4.4-rasm. Binar daraxt elementlarini belgilash Shunday qilib binar daraxtini ham yaratib oldik.
Endigi masala uni ekranda tasvirlash kerak, ya‟ni u ko‟rikdan o‟tkaziladi yoki vizuallashtirsa ham
bo‟ladi. 68 4.4. Daraxt “ko‟rigi” funksiyalari 4.5-rasmdagidek binar daraxt berilgan bo‟lsin: 4.5rasm. 3 ta elemetdan iborat binar daraxt Binar daraxtlari ko‟rigini uchta tamoyili mavjud. Ularni
berilgan daraxt misolida ko‟rib chiqaylik: 1) Yuqoridan pastga ko‟rik (daraxt ildizini qism
daraxtlarga nisbatan oldinroq ko‟rikdan o‟tkaziladi): A, B, C ; 2) Chapdan o‟ngga: B, A, C ; 3)
Quyidan yuqoriga (ildiz qism daraxtlardan keyin ko‟riladi): B, C, A . Daraxt ko‟rigi ko‟pincha
ikkinchi usul bilan, ya‟ni tugunlarga kirish ularning kalit qiymatlarini o‟sish tartibida amalga
oshiriladi. 4.5. Daraxt ko‟rigining rekursiv funksiyalari 1. int pretrave(node *tree){ if(tree!=NULL)
{int a=0,b=0; if(tree->left!=NULL) a=tree->left->info; if(tree->right!=NULL) b=tree->right->info;
cout<info<<" -="" chapida="" "<<a<<"="" o’ngida="" "<<b<<"="" \n";=""
pretrave(tree-="" style="color: rgb(0, 0, 0); font-family: "Times New Roman";
font-size: 16px; font-style: normal; font-variant-ligatures: normal; fontvariant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none; white-space: normal;
widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decorationthickness: initial; text-decoration-style: initial; text-decoration-color:
initial;">left); pretrave(tree->right); } return 0;69 }; 2. int intrave(node
*tree){ if(tree!=NULL) { intrave(tree->left); cout<info; intrave(tree="">right); } return 0; }; 3. int postrave(node *tree){ if(tree!=NULL)
{ postrave(tree->left); postrave(tree->right); cout<info; }="" return=""
0;="" };="" daraxtning="" har="" bir="" tuguni="" 4.6-rasmdagidek="" oraliq=""
(2,="" 3,="" 5,="" 7="" elementlar)="" yoki="" terminal="" (daraxt=""
“barg”i)="" (4,="" 9,="" 10,="" 11,="" 8,="" 6="" bo‟lishi="" mumkin.="" 4.6rasm.="" daraxtsimon="" tuzilma="" 1.="" agar="" tugunning="" otasi="" yo‟q=""
bo‟lsa,="" bu="" tugun="" ildiz="" hisoblanadi.="" buni="" aniqlash="" uchun=""
dastur="" kodini="" keltiramiz.="" dasturda="" p="" izlanayotgan="" tugun.70=""
if(p="=tree)" cout<<left!="NULL)&&(p-">right!=NULL)) cout<left!=null)||(p>right!=NULL) cout<right==NULL)) cout<<<"binar daraxtda="" "<<key<<"=""
mavjud";="" return="" next;="" }="" if="" (next-="">info>key) next=next->left;
else next=next->right; } cout<<"tuzilmada izlangan element
yo’q!!!"<key){ search="p;" return="" 0;="" }="" if(keykey)="" p="p-">left; else
p=p->right; } Berilgan kalitga teng tugun topilmadi, element qo‟shish talab
qilinadi. Ota bo‟lishi mumkin tugunga q ko‟rsatkich beriladi, elementning o‟zi
esa yangi nomli ko‟rsatkichi bilan beriladi. node *q=new node; Qo‟yilayotgan
yangi element chap yoki o‟ng o‟g‟il bo‟lishini aniqlash lozim. If(keykey) q>left=yangi; else q->right=yangi; search=yangi; return 0; 4.8. Binar daraxtdan
elementni o‟chirish funksiyasi Tugunni o‟chirib tashlash natijasida daraxtning
tartiblanganligi buzilmasligi lozim. 73 Tugun daraxtda o‟chirilayotganda 3 xil
variant bo‟lishi mumkin: 1) Topilgan tugun terminal (barg). Bu holatda tugun
otasining qaysi tomonida turgan bo‟lsa, otasining o‟sha tomonidagi shoxi
o‟chiriladi va tugunning xotirada joylashgan sohasi tozalanadi. 2) Topilgan
tugun faqatgina bitta o‟g‟ilga ega. U holda o‟g‟il ota o‟rniga joylashtiriladi. 3)
O‟chirilayotgan tugun ikkita o‟g‟ilga ega. Bunday holatda shunday qism daraxtlar
zvenosini topish lozimki, uni o‟chirilayotgan tugun o‟rniga qo‟yish mumkin bo‟lsin.
Bunday zveno har doim mavjud bo‟ladi: - bu yoki chap qism daraxtning eng o‟ng
tomondagi elementi (ushbu zvenoga erishish uchun keyingi uchiga chap shox orqali
o‟tib, navbatdagi uchlariga esa, murojaat NULL bo‟lmaguncha, faqatgina o‟ng
shoxlari orqali o‟tish zarur); - yoki o‟ng qism daraxtning eng chap elementi
(ushbu zvenoga erishish uchun keyingi uchiga o‟ng shox orqali o‟tib, navbatdagi
uchlariga esa, murojaat NULL bo‟lmaguncha, faqatgina chap shoxlari orqali o‟tish
zarur). O‟chirlayotgan element chap qism daraxtining eng o‟ngidagi element
o‟chirilayotgan element uchun merosxo‟r bo‟ladi ( 12 uchun – 11 bo‟ladi).
Merosxo‟r esa o‟ng qism daraxtning eng chapidagi tuguni (12 uchun - 13).
Merosxo‟rni topish algoritmini ishlab chiqaylik (4.8-rasmga qarang). p – ishchi
ko‟rsatkich; q - p dan bir qadam orqadagi ko‟rsatkich; v – o‟chirilayotgan tugun
merosxo‟rini ko‟rsatadi; t – v dan bir qadam orqada yuradi; s - v dan bir qadam
oldinda yuradi (chap o‟g‟ilni yoki bo‟sh joyni ko‟rsatib boradi).74 4.8-rasm.
Binar daraxtdan oraliq tugunni o‟chirich tartibi Yuqoridagi daraxt bo‟yicha
qaraydigan bo‟lsak, oxir oqibatda, v ko‟rsatkich 13 tugunni, s esa bo‟sh joyni
ko‟rsatishi lozim. 1) Elementni qidirish funksiyasi orqali o‟chirilayotgan
elementni topamiz. p ko‟rsatkich o‟chirilayotgan elementni ko‟rsatadi. 2)
O‟chiriladigan elementning o‟rniga qo‟yiluvchi tugunga v ko‟rsatkich qo‟yamiz.
node *del(node *tree,int key){ node *p=new node; node *next=tree; node *q=NULL;
while(next!=NULL) { if (next->info==key){cout<<"Binar daraxtda "<<key<<"
mavjud"key){ q=next; next=next->left; } else {q=next;next=next->right;} }
if(next==NULL) cout<<"tuzilmada izlangan element yo’q!!!"right; else 75 if(p>right==NULL) v=p->left; if((p->left!=NULL)&&(p->right!=NULL)){t=p; v=p->right;
s=v->left;} while(s!=NULL){ t=v; v=s; s=v->left; } if((t!=NULL)&&(t!=p)){ t>left=v->right; v->right=p->right; v->left=p->left; } if(t==p) v->left=p->left;
if(q==NULL){ cout<info<<" ildiz\n";="" tree="v;" delete(p);="" return=""
tree;="" }="" if(p="=q-">left) q->left=v; else q->right=v; delete(p); //
o’chirilgan element joylashgan xotira yacheykasini tozalash return tree; } 4.9.
Daraxtni muvozanatlash algoritmi Binar daraxt muvozanatlangan yoki AVLmuvozanatlangan bo‟lishi mumkin. Daraxt AVL-muvozanatlangan (1962 yil sovet
olimlari Аdelson, Velsk76 Georgiy Maksimovich va Landis Yevgeniya
Mihaylovichlar tomonidan taklif qilingan) deyiladi, agar daraxtdagi har bir
tugunning chap va o‟ng qismdaraxtlari balandliklari farqi 1 tadan ko‟p bo‟lmasa.
Berilgan butun sonlar – kalitlar ketma-ketligidan binar daraxt yaratib olamiz
va uni muvozanatlaymiz. Daraxtni muvozanatlashdan maqsad, bunday daraxtga yangi
element kiritish va daraxtdan element izlash algoritmi samaradorligini
oshirishdan iborat, ya‟ni bu amallarni bajarishdagi solishtirishlar soni
kamayadi. Binar daraxtni muvozanatlash algoritmi quyidagicha bo‟ladi.
Binar daraxtning balandligi deb daraxt bosqichlari soniga aytiladi. Binar daraxt balandligini
aniqlash uchun uning har bir tuguni chap va o‟ng qismdaraxtlari balandliklari solishtiriladi va
maksimal qiymat balandlik deb olinadi. Misol uchun quyidagi 4.9-rasmdagi daraxtning balandligi 2
ga teng. 4.9-rasm. Binar daraxt balandligi Daraxt balandligini aniqlash dastur kodini keltiramiz. int
height(node *tree){ int h1,h2; if (tree==NULL) return (-1); else { h1 = height(tree->left);78 h2 =
height(tree->right); if (h1>h2) return (1 + h1); else return (1 + h2); } } 4.11. Binar daraxtni
muvozanatlanganmi yoki yo‟qligini tekshirish Daraxtning balandligini aniqlashni
o‟rganganimizdan keyin uning muvozanatlanganligini tekshirish mumkin. Binar daraxtning
muvozanatlanganligini tekshirish uchun uning har bir tugunini har ikkala qismdaraxti
balandliklarini hisoblab, farqlarini tekshirib ko‟rish kerak. Agar farq 0 yoki 1 ga teng bo‟lsa, bu
muvozanatlangan daraxt hisoblanadi. Quyida binar daraxtni muvozanatlanganlikka tekshirishning
rekursiv funksiyasini qo‟llovchi dastur keltirilgan. Dastur kodi #include #include using namespace
std; class node{ public: int info; node *left; node *right; }; int k=0,Flag=1; int height(node
*tree){ int h1,h2; if (tree==NULL) return (-1); else { h1 = height(tree->left); h2 = height(tree>right); if (h1>h2) return (1 + h1);79 else return (1 + h2); } } void vizual(node *tree,int l) { int i;
if(tree!=NULL) { vizual(tree->right,l+1); for (i=1; i<=l; i++) cout<<" "; cout<info<left,l+1); }=""
int="" avltree="" (node="" *tree){="" t;="" if="" (tree!="NULL){" t="height" (tree-="">left) height (tree->right); if ((t<-1) || (t>1)) { Flag = 0; return Flag; } AVLtree (tree->left); AVLtree
(tree->right); } } int GetFlag(){return Flag;} int main() { int n,key,s; node
*tree=NULL,*next=NULL; cout<<"n="; cin>>n; int arr[n]; for(int i=0; i>s; p->info=s; p>left=NULL;80 p->right=NULL; if(i==0){tree=p; next=tree; continue; } next=tree; while(1)
{ last=next; if(p->infoinfo)next=next->left; else next=next->right; if(next==NULL)break; } if(p>infoinfo)last->left=p; else last->right=p;} cout<<<"\nbinar daraxt:\n"; vizual(tree,0);
AVLtree(tree); if(GetFlag()) cout<<"ha, muvozanatlangan daraxt"; else cout<<"yo’q,
muvozanatlanmagan daraxt";cout<<end.< p="">
Binar daraxtni ko‟rikdan o‟tkazayotganda biz yuqorida har bir 81 tugunni o‟ngida va chapida
turgan tugunlarni so‟z bilan ifodaladik. Lekin bu usul bir muncha noqulay. Daraxtni vizual
ko‟rinishda ifodalash uni anglashning juda qulay usuli hisoblanadi. Daraxtni vizuallashtirishning
grafik ko‟rinishi va konsol oynasida ifodalash kabi turlari mavjud. Shundan konsol oynasida
daraxtni vizuallashtirishni ko‟rib chiqamiz. Bunda sonlar daraxt shaklida joylashtiriladi. Quyida
bunday usulning dastur kodi keltirilgan.
Yuqorida ko‘rilgan misollarda, odatda, biz masalani yechish algoritmini so‘zlar va matematik
formulalar orqali ifodaladik. Lekin algoritm boshqa ko‘rinishlarda ham berilishi mumkin. Biz endi
algoritmlarning eng ko‘p uchraydigan turlari bilan tanishamiz. 1. Algoritmning so‘zlar orqali
ifodalanishi. Bu usulda ijrochi uchun beriladigan har bir ko‘rsatma jumlalar, so‘zlar orqali buyruq
shaklida beriladi. 2. Algoritmning formulalar bilan ifodalanish usulidan matematika, fizika, kimyo
kabi aniq fanlardagi formulalarni o‘rganishda foydalaniladi. Bu usul ba’zan analitik ifodalash
deyiladi. 3. Algoritmlarning maxsus geometrik shakllar yordamida ifodalanishida masala yechish
jarayoni aniq va ravon tasvirlanadi va bu ko‘rinish blok-sxema deyiladi. 4. Algoritmning jadval
ko‘rinishda berilishi. Algoritmning bunday ifodasidan ham ko‘p foydalanamiz. Masalan, maktabda
qo‘llanib kelinayotgan to‘rt xonali matematik jadvallar yoki turli xil lotereyalar jadvali.
Funksiyalarning grafiklarini chizishda ham algoritmlarning qiymatlari jadvali ko‘rinishlaridan
foydalanamiz. Bu kabi jadvallardan foydalanish algoritmlari sodda bo‘lgani tufayli ularni
o‘zlashtirib olish oson. Yuqorida ko‘rilgan algoritmlarni tasvirlash usullarining asosiy maqsadi,
qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-ketligining eng qulay holatini
aniqlash va shu bilan inson tomonidan dastur yozishni yanada osonlashtirishdan iborat. Aslida,
dastur ham algoritmning boshqa bir ko‘rinishi bo‘lib, u insonning kompyuter bilan muloqotini
qulayroq amalga oshirish uchun mo‘ljallangan.
Hozirgi paytda o’nlik sanoq tizimida arifmetik amallarni bajarish usullari
hisoblash algoritmlariga soddagina misol bo’la oladi xolos. Hozirgi zamon
nuqtai nazaridan algoritm tushunchasi nimani ifodalaydi? Ma’lumki, inson
kundalik turmushida turli-tuman ishlarni bajaradi. Har bir ishni bajarishda esa
bir qancha elementar (mayda) ishlarni ketma-ket amalga oshirishga to’g’ri
keladi. Mana shu ketma-ketlikning o’zi bajariladigan ishning algoritmidir.
Ammo bu ketma-ketlikka e’tibor bersak, biz ijro etayotgan elementar ishlar
ma’lum qoida bo’yicha bajarilishi kerak bo’lgan ketma-ketlikdan iborat
ekanligini ko’ramiz. Agar bu ketma-ketlikdagi qoidani buzsak, maqsadga
erishmasligimiz mumkin.
Masalan, shaxmat o’yinini boshlashda shohni yura olmaymiz, chunki bu o’yin
algoritmida yurishni boshqa bir shaxmat donalaridan boshlash kerak yoki palov
pishirish algoritmida birinchi navbatda qozonga suv solib ko’ringchi, osh
qanday bo’lar ekan. Berilgan matematik ifodani soddalashtirishda amallarning
bajarilish ketma-ketligiga e’tibor bermaslik noto’g’ri natijaga olib kelishi
barchaga ma’lum.
Demak ishni, ya’ni qo’yilgan masalani bajarishga mayda elementar ishlarni
muayyan ketma-ketlikda ijro etish orqali erishiladi. Bundan ko’rinib turibdiki,
har bir ish qandaydir algoritmning bajarilishidan iboratdir. Algoritmni
bajaruvchi algoritm ijrochisidir. Algoritmning ijrochisi masalaning qanday
qo’yilishiga e’tibor bermagan holda natijaga erishishi mumkin. Buning uchun u
faqat avvaldan ma’lum qoida va ko’rsatmalarni qat’iy bajarishi shart. Bu esa
algoritmning juda muhim xususiyatlaridan biridir.
Umuman, ajgoritmlarni ikki guruhga ajratish mumkin. Birinchi guruh algoritmning
ijrochisi faqat inson bo’lishi mumkin ( masalan palovni faqat inson pishira
oladi), ikkinchi guruh algoritmlarning ijrochisi ham inson, ham EHM bo’lishi
mumkin (faqat aqliy mehnat bilan bog’liq bo’lgan masalalar). Ikkinchi guruh
algorimtlarning ijrochisini EHM zimmasiga yuklash mumkin. Buning uchun
algoritmni EHM tushunadigan biror tilda yozib, uni mashina xotirasiga kiritish
kifoya.
Shunday qilib, biz algoritm deganda, berilgan masalani yechish uchun ma’lum
tartib bilan bajarilishi kerak bo’lgan chekli sondagi buyruqlar ketma-ketligini
tushunamiz.
Biror sohaga tegishli masalani yechish algoritmini tuzish algoritm tuzuvchidan
shu sohani mukammal bilgan holda, qo’yilgan masalani chuqur tahlil qilishni
talab qiladi. Bunda masalani yechish uchun kerak bo’lgan ishlarning rejasini
tuza bilish muhim ahamiyatga ega. Shuningdek, masalani yechishda ishtirok
etadigan ob’ektlarning qaysilari boshlang’ich ma’lumot va qaysilari
natijaligini aniqlash, ular o’rtasidagi o’zaro bog’lanishni aniq va to’la
ko’rsata bilish, yoki dastur (programma) tuzuvchilar tili bilan aytganda,
masalaning ma’lumotlar modelini berish lozim.
Berilgan masala algoritmini yozishning turli usullari mavjud bo’lib, ular
qatoriga so’z bilan, bloktarh (bloksxema) shaklida, formulalar, operatorlar
yordamida, algoritmik yoki dasturlash tillarida yozish va hokazolarni kiritish
mumkin.
Endi biror usulda tuzilgan algoritmning ayrim xossalari va algoritmga qo’yilgan
ba’zi bir talablarni ko’rib chiqaylik.
1. Algoritm har doim to’liq bir qiymatlidir, ya’ni uni bir xil boshlang’ich
qiymatlar bilan ko’p marta qo’llash har doim bir xil natija beradi.
2. Algoritm birgina masalani yechish qoidasi bo’lib qolmay, balki turli-tuman
boshlang’ich shartlar asosida ma’lum turdagi masalalar to’plamini yechish
yo’lidir.
3. Algoritmni qo’llash natijasida chekli qadamdan keyin natijaga erishamiz yoki
masalaning yechimga ega emasligi haqidagi ma’lumotga ega bo’lamiz.
Yuqorida keltirilgan xossalarni har bir ijrochi o’zi tuzgan biror masalaning
algoritmidan foydalanib tekshirib ko’rishi mumkin. Masalan:
ax2 + bx + с = 0
kvadrat tenglamani yechish algoritmi uchun yuqorida sanab o’tilgan algoritmning xossalarini
quyidagicha tekshirib ko’rish mumkin.
Agar kvadrat tenglamani yechish algoritmi biror usulda yaratilgan bo’lsa, biz ijrochiga bu algoritm
qaysi masalani yechish algoritmi ekanligini aytmasdan a, b, с larning aniq qiymatlari uchun
bajarishni topshirsak, u natijaga erishadi va bu natija kvadrat tenglamaning yechimi bo’ladi. Demak,
algoritmni ijro etish algoritm yaratuvchisiga bog’liq emas.
Xuddi shuningdek a, b, с larga har doim bir xil qiymatlar bersak, algoritm har doim bir xil natija
beradi, ya’ni to’liqdir.
Yaratilgan bu algoritm faqatgina bitta kvadrat tenglamani yechish algoritmi bo’lib qolmay, balki
a,b,c larning mumkin bo’lgan barcha qiymatlari uchun natija hosil qiladi, binobarin u shu turdagi
barcha kvadrat tenglamalarning yechish algoritmi bo’ladi.
Algoritmning oxirgi xossasi o’z-o’zidan bajariladi, ya’ni kvadrat tenglamani yechish albatta chekli
qadamda amalga oshiriladi.
Dastur tuzuvchi uchun EHMning ikkita asosiy parametri o’ta muhimdir: hisoblash mashinasi
xotirasining hajmi va mashinaning tezkorligi. Shuningdek, algoritm tuzuvchidan ikki narsa talab
qilinadi. Birinchidan, u tuzgan dastur mashina xotirasida eng kam joy talab etsin, ikkinchidan, eng
kam amallar bajarib masalaning natijasiga erishsin. Umuman olganda, bu ikki talab bir-biriga
qarama-qarshidir, ya’ni algoritmning ishlash tezligini oshirish algoritm uchun kerakli xotirani
oshirishga olib kelishi mumkin. Bu xol, ayniqsa murakkab masalalarni yechish algoritmini tuzishda
yaqqol seziladi. Shuning uchun ham bu ikki parametming eng maqbul holatini topishga harakat
qilish kerak.
Mavzu: Taqribiy integrallash usullari aniqligi va hisoblash hajmi bo‘yicha taqqoslash
Reja:
Kirish
1. To‘g‘ri to‘rtburchaklar usuli
2. Trapetsiyalar va Parabolalar (Simpson) usullari
3. Aniq integralni taqribiy hisoblash
4. Aniq integralni taqribiy hisoblashning algoritmlari va dasturlari
Kirish.
Taqribiy hisoblashlar – MAT ning amaliyot uchun muhim boʻlimi. Differensial tenglamalar,
matematik analiz, algebra, optimal boshqaruv kabi sohalarda masalalarni yechish usullarini ishlab
chiqadi. Asosiy masalalari: 1) biror analitik ifoda bilan berilgan funksiyaning xususiy qiymatlarini
argumentlarining berilgan qiymatlariga qarab hisoblash; 2) koeffitsiyentlari sonlardan iborat
boʻlgan algebraik va transsendent tenglamalar va shunday tenglamalar sistemasini yechishning
Taqribiy hisoblashlari; 3) funksiyalarni differensiallash va integrallashning taqribiy hisoblari.
Taqribiy hisoblashlar yordamida olingan natija anikligiga, asosan, yaxlitlash xatosi va qoʻllanilgan
usul xatosi taʼsir etadi. Bu xatoliklarning hisoblash jarayonidagi taʼsirini kuzatib borish uchun
absolyut xato vanisbiy xato tushunchalari kiritilgan. Biror miqdorning aniq qiymati A bilan uning
taqribiy qiymati a orasidagi Aa qgʻ A — agʻ farqning absolyut qiymati a sonining absolyut xatosi, Za
q tqu nisbat esa a sonining ni s b i y xatosi deyiladi. Koʻpincha, nisbiy xato foizlarda ifodalanadi.
Taqribiy hisoblashlarda turli matematik jadvallar va zamonaviy hisoblash texnikalari muhim
vositadir.
Berilgan [a,b] kesmada uzluksiz bo`lgan f(x) funksiya uchun F(x) boshlang`ich funksiyani
b
topish mumkin bo`lsa, N`yuton Leybnits formulasi bo`yicha
 f ( x)dx aniq integralni
a
hisoblagan edik. Lekin har qanday uzluksiz funksiya uchun uning boshlang`ich funksiyasini hamma
vaqt topish qiyin, bazi hollarda esa boshlang`ich funksiyani elementar funksiyalar orqali ifodalab
bo`lmaydi.
Masalan.
sin x
 x dx,
cos x
2
2
 x2
dx
,

 x
 dx,  sin x 2 dx,  cos x 2 dx,  1  k sin xdx,
dx
 ln x , .
Bunday hollarda N`yuton Leybnits formulasidan foydalana olmaymiz. Shuning uchun
ularni taqriban bo`lsa ham hisoblashga to`g`ri keladi. Aniq integrallarni taqribiy hisoblaydigan bir
qancha usullar mavjud. Ulardan uchtasini: to`g`ri to`rtburchaklar, trapetsiyalar hamda parabola
(Simpson) usullarini keltiramiz.
1. To`g`ri to`rtburchaklar usuli
f(x) funksiya [a,b] segmentda berilgan va uzluksiz bo`lsin. Bu funksiyaning aniq integral
b
 f ( x)dx ni taqribiy ifodalovchi formulani keltiramiz.
a
Hisoblashlarda aniq integralni yuzini ifodalovchi yig`indi limiti deb, ya`ni
b
n
 f ( x)dx lim  f  ( xi  xi1 ) (1) ko`rinishda mulohaza yuritiladi.
a
n
i 1
[a,b] kesmani a  x0 , x1 , x2 ,...., xn  b nuqtalar bilan teng n ta bo`lakka bo`lamiz .
Har birining uzunligini h 
ba
, xi  a  ib (i  0, n) deb olamiz.
n
x  xi bo`lganda f(x) funksiya qiymatlarini yi  f ( xi )  f (a  ih) (2) deb
belgilaymiz.
(1) fomulaning o`ng tomonidagi yig`indini
 i  xi 1 yokixi deb, quyidagi
ikkita formulani hosil qilamiz:
b
 f ( x)dx 
a
b
 f ( x)dx 
a
ba
[ y0  y1  ....  yn 1 ], (3)
n
ba
[ y1  y2  ....  yn ], (4)
n
(3) va (4) formulallarga aniq integralni taqribiy hisoblashning to`g`ri
to`rtburchaklar formulasi deyiladi.
11-chizmada quyidagilar tasvirlangan: agar f(x) musbat va o`suvchi funksiya bo`lsa, u
holda (3) formula “ichki” to`g`ri to`rtburchaklardan tuzilgan zinapoyasimon shaklning yuzini
tasvirlaydi. (4) formula esa “tashqi” to`rtburchaklardan tuzilgan zinapoyasimon shaklining yuzini
tasvirlaydi. Integrlni to`g`ri to`rtburchaklar formulasi bilan hisoblashda qilingan xato n son qancha
katta (ya`ni bo`linish qadami h qancha kichik) bo`la borishi bilan (3) va (4) formulalar aniqroq bo`la
boradi, ya`ni n   da va h   da ular aniq integralning haqiqiy qiymatini
beradi.
2. Trapetsiyalar va Parabolalar (Simpson) usullari
2.1 Trapetsiyalar formulasi
Agar ordinatalar chizig`ining egri chiziq bilan kesishgan nuqtalarini zinapoyali siniq
chiziqlar bian emas , balki ichki chizilgan siniq chiziqlar bilan tutashtirsak (3) va (4) formulalarga
nisbatan xatosi kamroq bo`lgan taqribiy formulani keltirib chiqaramiz: (12-chizma).
Bu holda egrai chiziqli aABb trapetsiyaning yuzi yuqoridan AA1 , A1 A2 ,...., An 1 B
vatarlar bilan chegaralangan to`g`ri chiziqli trapetsiyalar yuzlarining yig`indisiga teng bo`ladi.
Natijada
trapetsiyalar
formulasini
hosil
qilamiz.
y1  y2
yn 1  yn 
 y0  y1
f
(
x
)
dx

h


....

b


2
2
2


a  y0  yn

h
 y1  y2  ....  yn 1  (5),
2


bunda h 
ba
, xi  xi 1  h, (i  1, n), x0  a, x n  b.
n
(5) ga trapetsiyalar formulasi deyiladi.
2.2 Parabolalar (Simpson) formulasi
[a.b] kesmani juft sonda n=2m bo`laklarga ajratamiz.
x0 , x1 vax1 , x2  kesmalarga
mos va berilgan y=f(x) egri chiziq bilan chegaralangan egri chiziqli trapetsiyaning yuzini
M ( x0 , y0 ), M 1 ( x1 , y1 ), M 2 ( x2 , y2 ), uchta nuqtadan o`tuvchi va o`qi oy o`qi parallel
bo`lgan ikkinchi darajali parabola bilan chegaralangan egri chiziqli trapedsiyaning yuzi bilan
almashtiramiz. (13-chizma).
13-chizma
14-chizma
Bunday egri chiziqli trapetsiyani parabolik trtapetsiya deb ataymiz.
2
O`qi Oy o`qqa parallel bo`lgan parabolaning tenglamasi y  Ax  Bx  C (6)
ko`rinishda bo`ladi. A,B va C koeffitsentlar parabolaning berilgan uch nuqta orqali o`tish shartidan
bir qiymatli ravishda aniqlanadi. Shunga o`xshagan parabolalarni kesmalarning boshqa juftlari
uchun ham yasaymiz. Shunday yasalgan parabolik trapetsiyalar yuzlarining yig`indisi integralning
taqribiy qiymatini beradi (14-chizma ).
Lemma. Agar egri chiziqli trapersiya (6)parabola , Ox o`q va oralig`i 2h ga teng bo`lgan
ikkita ordinata bilan chegaralangan bo`lsa, u holda uning yuzi S
h
( y0  y1  y2 )(7) ga teng,
3
bunday y0 va y2 chetdagi ordinatalar y1 esa egri chiziqning kesma o`rtasidagi ordinatasi.
Isboti [1], 455 betda.
(7) formuladan foydalanib, quyidagi taqribiy qiymatlarni yozamiz.
x2

f ( x)dx 
a  x0
x4
 f ( x)dx 
x2
x2 m  b

h
( y 0  4 y1  y 2 )
3
h
( y 2  4 y3  y 4 )
3
f ( x) dx 
x2 ( m 1)
h
( y 2 ( m 1)  4 y 2 ( m 1)  y 2 m
3
Yuqoridagi taqribiy qiymatlarning chap va o`ng tomonlarini qo`shib, chapda izlanayotgan
integralni, o`ngda esa uning taqribiy qiymatini xosil qilamiz:
b
 f ( x)dx 
a
h
( y0  4 y1  2 y2  4 y3  ....  2 y2( m 1)  42 m 1  y2 m )(8)
3
b
 f ( x)dx 
ba
[ y0  y2 m  2( y2  y4  ....  y2 m  2 ) 
6m
yoki a
 4( y1  y3  ....  y2 m 1 )](9)
(9) formulaga Simpson formulasi deyiladi. Bu yerda bo`linish nuqtalarining soni 2m ixtiyoriy,
lekin bu son qancha katta bo`lsa, (9) tenglikning o`ng tomonidagi yig`indi integral qiymatini
shuncha aniq ifodalaydi.
18-misol.
10
dx
 lg x integralni to`g`ri ro`rtburchaklar trapetsiya va Simpson
taqribiy formulalardan
2
foydalanib 0.0001aniqlikda hisoblang.
Yechish. [2;10] kesmani teng n=8 ta bo`lakka bo`lamiz. U holda bo`ladi. Integral ostidagi
funksiya qiymatlari jadvalini tuzamiz:
2-jadval
X
y
x0  2
x1  3
x2  4
X
y
1
 3.3211
0.3010
1
y1 
 2.0960
0.4771
1
y2 
 1.6608
0.6021
x5  7
y5 
1
 1.1833
0.8451
x6  8
y6 
1
 1.1073
0.9031
x7  9
y7 
1
 1.0591
0.9442
y8  1
1
lg x
y0 
1
lg x
x3  5
y3 
1
 1.4304
0.6990
x8  10
x4  6
y4 
1
 1.2852
0.7781
y0  y1  ...  y7  13.1432
y1  y2  ...  y8  10.8221
1-usul. To`g`ri to`rtburchaklar usuli. (3) formulaga asosan:
10
dx
2 lg x  1   y0  y1  ....  y7   1  13,1432  13,1432
(3) formulaga asosan:
10
 lg x  1 y  y  ....  y   10.8221
dx
0
1
8
2
2-usul. Trapetsiyalar usuli, (3) formulaga asosan:
10
dx
 y 0  y8

 y1  y 2  ....  y 7  
2

 lg x  h 
2
3,3211  1
 9.8221  2.1605  9.8221  11.9826
2
3-misol. Parabolalar (Simpson) usuli.
2m=8 deb olib,
h b  a 10  2 1



ekanligini etiborga olsak, (9)
3
6m
38
3
formulaga asosan:
10
dx h
1


3.3211 

y

y

4
(
y

y

y

y
)

2
(
y

y

y
)

1
3
5
7
2
4
6
2 lg x 3 0 8
3
 1  4(2.0960  1.4304  1.1833  1.0591)  2(1.6608  1.2852  1.1073) 

1
4.3211  23.0752  8.1066  11.8343
3
Shunday qilib, berilgan integralni to`g`ri to`rtburchaklar formulasi yordamida hisoblab
13.1432 va 10.8221, trapetsiyalar formulasi yordamida hisoblab 11.9826, parabolalar formulasi
yordamida hisoblab 11.8343 bo`lishini topdik.
3. Aniq integralni hisoblashning asosiy formulasi
Oliy matematika kursidan malumki aniq integrallar asosan N‘yuton-Leybnits formulasi bilan
hisoblanadi. Yani quyidagi formula bilan hisoblanadi:
Bu yerda F(x) funktsiya f(x) funktsiyaning boshlangich funktsiyasi. а-integralning quyi b-esa
yuqori chegarsi. Nyuton–Leybnits formulasi bizga ma‘lumki elementar funktsiyalar uchun
foydalanish qulayrok.
Lekin har qanday f(x) funktsiyaning boshlangich funktsiyasi elementar funktsiya
bulavermaydi, yani integrallash murakkab bo’ladi. Bunday aniq integrallarni N‘yuton-Leybnits
formulasi bilan hisoblab bulmaydi. Bunday hollarda integrallarni taqribiy hisoblash usularidan
foydalanib integrallarning taqribiy kiymatlari topiladi.
Aniq integralni taqribiy hisoblash usullari
Odatda aniq integralarni taqribiy hisoblash uchun integralash sohasidagi [a,b] kesma n ta teng
bo’lakka bulinadi. Har bir bo’lakning uzunligi h=(b-a)/n formula bilan hisoblanadi.
n bo’laqlar soni qancha ko’p bo’lsa integralning kiymati shuncha aniq bo’ladi. Integralarni
taqribiy hisoblashda ko’pincha to’g’ri burchaqlar, trapetsiyalar va Simpson formulalaridan
foydalaniladi. Integrallarning kiymatlarini taqribiy hisoblash uchun biror bir usul tallanadi, sung
algoritm tuziladi va bu algoritmlarga mos ravishda biror bir dasturlashtirish tilida dasturlar tuzilib,
dasturlar kompyuterga kiritilib natijalar olinadi.
Integrallarning taqribiy hisoblash formulalarini keltirib chiqarish ishlarini ko’rib o’tirmaymiz,
bu bizga oliy matematika kursidan ma‘lum. Formulalarning keltirib chiqarish ma‘lumotlarini
o’quvchilarga berilgan adabiyotlardan [11] adabiyotdan ukib olishlarini tavsiya etamiz.
Integralning kiymatini taqribiy xisolash formulalarini keltiramiz:
yoki
Bu formula integeralarni taqribiy hisoblashning to’g’ri turtburchaqlar formulasi.
bu formula itegrallarni taqribiy hisoblashning trapetsiya formulasi.
ya‘ni
bu yerda
Bu formula esa aniq integralni taqribiy hisoblashning Simpson formulasi. Aniq integralni Simpson
usulida hisoblaganda taqribiy hisoblash xatoligi boshqa usullarga nisbatan kamrok, yani aniqlik
kattarok bo’ladi.
4. Aniq integralni taqribiy hisoblashning trapetsiya va Simpson usullari algoritmlari va
dasturlari
Ushbu aniq integralning kiymatini trapetsiya va Simpson usullari yordamida hisoblash algoritmi va
dasturlarini ko’rib utamiz. Integralni kiymatini taqribiy xisolashning to’g’ri turtburchak usulini
o’quvchilarning o’zlariga xavola etamiz.
bu yerda а=0, b=2, oralikni 20 bo’lakka bulamiz, ya‘ni n=20 deb olamiz.
Dastlab trapetsiya formulasidan, sung Simpson formulasidan foydalanib integralni kiymatini
taqribiy hisoblash algoritmining blok- sxemasini, sung dasturini tuzamiz. Integralni taqribiy
hisoblashda integral ostidagi funktsiyani kullanuvchining funktsiyasi sifatida yozib olamiz,
ya‘ni
f(x)=ln(x2+3x+1)
ko’rinishida yozib olib, bu funktsiyadan blok–sxema va dastur tuzishda foydalanamiz.
Foydalanuvchining funktsiyasini algoritm va dasturda f harfi bilan, funktsiyani a nuqtadagi
kiymatini f(a) va b nuqtadagi kiymatini f(b) bilan, bo’linish kadamlarini i harfi bilan, bo’laqlar
sonini n harfi bilan, oralikchalar uzinligini h harfi bilan, integral osti yigindisini s harfi
bilan, integralning kiymatini esa J harfi bilan bilgilab olamiz.
Endi integral kiymatini taqribiy hisoblash uchun barcha ma‘lumotlar tayyor bo’lgandan keyin
integral kiymatini taqribiy hisoblash trapetsiya va Simpson usullari uchun hisoblashning algortmi
blok-sxemalari va Pascal dasturlashtirish tilida dasturlarini tuzamiz.
{Integralni trapetsiya usulida taqribiy hisoblash dasturi}
Program integral1(input,output);
Uses crt;
var a,b,h,s,J:real;
i,n:integer;
{nostandart funktsiyani tavsiflaymiz}
function f(x:real):real;
begin
f:=ln(x*x+3*x+1);
end;
begin clrscr;
write(‘quyi chegara a=’); readln(a);
write(‘yuqori chegara b=’); readln(b);
write(‘bo’laqlar soni n=’); readln(n);
s:=(f(a)+f(b))/2; h:=(b-a)/n;
for i:=2 to n do
s:=s+f(a+(i-1)*h);
J:=h*s; textcolor(13);
writeln(‘integral kiymati J=’,J:3:4);
end.
{Simpson usuli}
Program integral2(input,output);
Uses crt;
var a,b,h,s,J:real;
i,n,k:integer;
function f(x:real):real;
begin
f:=ln(x*x+3*x+1); end;
begin clrscr;
write(‘quyi chegara a=’); readln(a);
write(‘yuqori chegara b=’); readln(b);
write(‘bo’laqlar soni n=’); readln(n);
h:=(b-a)/n; s:=f(a)+f(b); k:=1;
for i:=2 to n do
begin
s:=s+(3+k)*f(a+(i-1)*h); k=-k
end;
J:=s*h/3; textcolor(2);
writeln(‘integral qiymati J=’,J:3:4);
end.
Mavzu: Algebraik va transtendent tenglamalarni taqribiy yechish usullarini
yaqinlashish tezligi bo’yicha baholash.
REJA
1. Algebraik va transcendent tenglamalar haqida tushuncha 2.
Tenglamalarni yechishning oraliqni ikkiga bo’lish usuli 3.
Tenglamalarni yechishning iteratsiya usuli
I.
Algebraik va transsendent tenglamalar haqida tushuncha
Noma’lum qatnashgan tenglikka tenglama deyiladi.
f(x)=g(x) tenglikdan noma’lum x ni qiymatini topish, tenglamani yechish deyiladi.
Tenglama - bu ikki funksiyaning qiymatlari f (x, y, ...) = g (x, y, ..) ga teng bo'lganda,
argumentlarning qiymatlarini topish muammosining analitik yozuvidir.
Bu funksiyalarga bog'liq bo'lgan argumentlar odatda noma'lum deb ataladi va funksiyalar
qiymatlari teng bo'lgan noma'lum qiymatlari yechimlar yoki ildizlar deb ataladi.
Algebraik tenglama quyidagi ko’rinishga ega:
P(x1,x2,..xn)=Q(x1,x2,…xn)
Bu yerda P va Q – ratsional sonli koeffitsentlar bilan berilgan ko’phadlar. Chiziqli
tenglama – noma’lumning birinchi darajasi qatnashgan tenglamadir.
Chiziqli tenglama quyidagi ko’rinishda bo’lishi mumkin. ax+b=0. a,b, berilgan sonlar. Ko’pgina
amaliy hollarda murakkab shaklda berilgan tenglamalarni algebraik yechish usullari mavjud
emas va ularni analitik yechib bo’lmaydi. Transendent
tenglamalar uchun aniq yechim bir necha xususiy holatda bo'lishi mumkin.
Agar
tenglamalarni
yechishda
aniq
yechim
topilmasa
taqribiy
usullar
qo’llaniladi. Masalan, takrorlanadigan yondashuvlar usullari bilan taqribiy yechimni olish mumkin.
Amaliyotda, ba’zi masalalarda
f(x)=0
ko‘rinishdagi bir noma’lumli chiziqsiz tenglamalarni yechishga to‘g‘ri keladi. Agar f(x) funksiya
ko’phadlardan iborat bo’lsa, u algebraik, agar tenglama trigonometric, algebraic va logarifmik
ko’rinishlarda bo’lsa, transcendent tenglamalar deyiladi. Bunda
f(x)
[a,b]
oraliqda
aniqlangan funksiya bo‘lib,
f(t)=0
bo‘lsa, x=t ni
tenglamaning yechimi-ildizi deyiladi.
Tenglamaning aniq yechimini topish qiyin
bo‘lgan hollarda uning taqribiy yechimini topishga to‘g‘ri keladi, bu ikki bosqichga bo‘linadi.
1) Yechimni ajratish(yakkalash), ya’ni yagona yechim yotgan intervalni aniqlash;
2) Taqribiy yechimni topilgan intervalda berilgan aniqlikda topish.
Tenglamaning yagona yechimi yotgan oraliqni aniqlash uchun quyidagi
teoremadan foydalaniladi. 1teorema . Aytaylik,
1) f(x) funksiya [a,b] kesmada uzluksiz va (a,b) intervalda hosilaga ega bo‘lsin;
2) f(a).f(b)<0, ya’ni f(x) funksiya kesmaning chetlarida har xil ishoraga ega bo‘lsin;
3) fґ(x) hosila (a,b) intervalda o‘z ishorasini saqlasin.
U holda, tenglama [a,b] oraliqda yagona yechimga ega bo‘ladi.
Hozirgi paytda chiziqsiz tenglamalarni yechish uchun oldingi o’ringa sonli-taqribiy usullar chiqib
oldi. Bu usullar o’zlarining umumlashgani, tenglamani yetarli aniqlikda yecha olishi bilan ajralib
turadi. Shuning uchun chiziqsiz tenglamalarni yechishning sonli-taqribiy usullari uchun dastur
ta’minotlarini yaratilishi muhim va aktual masala hisoblanadi.
Chiziqsiz tenglamalardan na’munalar: 1.
3
x -3x2 +7x-6=0
2. x2 -sin x =0
3. ln |7x|-cos 6x=0
4. e2x-x=0
Chiziqsiz tenglamalarni sonli-taqribiy usullar bilan yechishni tashkil qilish uchun tenglamaning
nechta yechimi mavjud ekanligi yoki umuman yechimi yo’qligi haqida ma’lumotga ega bo’lishimiz
kerak. Bundan tashqari, tenglamaning yagona yechimi yotgan oraliqni ham aniqlashga to’g’ri keladi.
Buning uchun berilgan tenglamani yechishning grafik usulidan foydalanamiz.
Bizga quyidagi umumiy holda yozilgan chiziqsiz tenglama berilgan bo’lsin:
f(x)=0
(1)
Tenglamaning y=f(x) funksiyasini grafigini OXY dekart koordinatalar sistemasida ko’ramiz.
Funksiya grafigining OX o’qini kesib o’tgan x yechim nuqtasi tenglamaning
qidirilayotgan yechimi hisoblanadi. Yechim joylashgan oraliqni funksiyani ishorasini almashtirish
shartidan foydalanib aniqlash mumkin:
f(a)f(b)<0
Shunday qilib, tenglamaning yechimi yotgan oraliq va uning qiymati haqida yetarli ma’lumotga
ega bo’ldik.
Yuqorida eslatganimizdek chiziqsiz tenglamalarni ularni qaysi tipga tegishliligiga qarab
yechimni analitik, ya’ni formula ko’rinishda aniqlash mumkin. Lekin, ko’pincha chiziqsiz tenglamani
analitik yechimlarini formulalar yordamida aniqlash imkoniyati bo’lmaydi. Shuning uchun ixtiyoriy
chiziqsiz tenglamani yechishning EHMdan foydalanishga mo’ljallangan sonli-taqribiy usullariga
e’tibor kuchayib bormokda.
Bu usullar jumlasiga quyidagilarni kiritish mumkin:
 oddiy ketma-ketlik (iterasiya);
 oraliqni teng ikkiga bo’lish;
 urinmalar (Nyuton);
 vatarlar (xord) va boshqalar
Sanab o’tilgan usullardan oraliqni teng ikkiga bo’lish va vatarlar usuli to’g’ri tanlangan oraliqlarda
ko’tilgan natijalarni uzoqroq vaqt sarflab bo’lsa ham aniqlab beradi. Urinmalar va oddiy ketma-ketlik
usullari esa mos ravishda to’g’ri tanlangan boshlang’ich qiymat va |(x)|<<1 shartda o’ta tezlik bilan
taqribiy yechimni zarur aniqlikda topish imkoniyatini yaratadi.
2. Oraliqni teng ikkiga bo’lish usulining ishchi algoritmi va dasturi Tenglamaning e
aniqlikdagi (e-o’ta kichik son, yechimni topish aniqligi)
taqribiy-sonli yechimini (a;b) oraliqda topishni quyidagi algoritm bo’yicha tashkil
qilamiz:
•
•
•
1. Berilgan (a;b) oraliqni o’rtasini aniqlaymiz.
2. Yechimni [a;c] yoki [c;b] oraliqdaligini f(a)f(c)<0 shartidan foydalanib aniqlaymiz.
3. Shartni qanoatlantiradigan oraliqni yangi oraliq sifatida olamiz va uni yana teng ikkiga
bo’lib, yuqoridagi ishlarni yana takrorlaymiz.
Xulosa qilib aytganda, biz tanlab olayotgan kesmalarda tenglamaning taqribiy
ildizi yotadi. Demak, kesmalarni toraytirib borar ekanmiz.
Natijada, qandaydir qadamdan so’ng tenglamaning aniq yoki talab qilingan
aniqlikdagi taqribiy ildizini hosil qilamiz
3. Tenglamalarni yechishning iteratsiya usuli
Berilgan f(x)=0 tenglamani unga teng kuchli bo‘lgan x=𝜓(x) ko‘rinishdagi tenglamaga
keltiramiz.
2-teorema. Aytaylik,
1) 𝜓 (x) funksiya [a,b] oraliqda aniqlangan va differensiallanuvchi bo‘lsin; 2) 𝜓 (x)
funksiyaning hamma qiymatlari [a,b] oraliqqa tushsin;
3)[a,b] oraliqda 𝜓 (x)q <1 tengsizlik bajarilsin.
Bu holda [a,b] oraliqda x= 𝜓 (x) tenglamaning yagona x=t yechimi mavjud va
bu yechim
 
tn= 𝜓 (tn-1). t 0 a;b
formulalar bilan aniqlanadi
Berilgan f(x)=0 tenglamani unga teng kuchli bo‘lgan x= 𝜓 (x) tenglama uchun yaqinlashish
sharti bajarilganda yaqinlashish jarayonini quyidagi shakillar misolida ko‘rish mumkin.
Bu yerda a va b rasmlar yaqinlashuvchi, c rasm uzoqlashuvchi va t0 qiymat [a,b] oraliqda
yotuvchi ixtiyoriy son bo‘lib, yechimning 0-yaqinlashishi, ti – ni yechimning i – yaqinlashishi deb
yuritiladi.
Bu teorema asosida tenglama ildizini quyidagicha aniqlaymiz.
1) f(x)=0 tenglamaning yagona ildizi yotgan [a,b] kesmani biror (masalan, grafik) usul
bilan aniqlaymiz.
2) [a,b] da f(x) ning uzluksizligi va f(a).f(b)<0 shart bajarilishini tekshiramiz.
3)Tenglamani x  (x) ko‘rinishga keltirib, 𝜓 (x)[a,b] ekanligini hamda [a;b]
da  '(x) mavjudligini tekshiramiz va q 
max  '(x) ni topamiz.
x   a;b
4) Agar q<1 bo‘lsa, xn  (xn 1 ) ketma-ketlikning boshlang‘ich yaqinlashishi x 0 uchun
[a;b] ning ixtiyoriy bitta nuqtasi olamiz.
5) Ketma-ketlik hadlarini hisoblashni xn- xn-1 < shart bajarilguncha davom ettiramiz.
6) Ildizning taqribiy qiymati uchun xn ni olamiz.
Misol.
Iteratsiya usuli bilan 5x3-20x+3=0 tenglamani [0,1] intervalda 10-4 aniqlikda toping.
Tenglamani F(x)=0 ko’rinishdan 𝑥 = 𝜓(𝑥) tenglamaga bir necha xil ko’rinishga o’tkazib
olamiz.
1) 𝑥 = 𝑥 + (5𝑥 3 − 20𝑥 + 3) bunda 𝜓1 (𝑥) = 5𝑥 3 − 19𝑥 + 3
320𝑥−3
2) 𝑥 = √
3) 𝑥 =
5𝑥 3 +3
320𝑥−3
𝜓2 (𝑥) = √
bunda,
5𝑥 3 +3
𝜓3 (𝑥)=
bunda,
(𝑥) funksiyalarning qaysi biri yaqinlashuvchi ekanligini aniqlab olamiz. Buning uchun,
|ψ′ (x)| < 1
shartni bajaruvchi ekanligini tekshiramiz.
[0,1] intervaldan olingan x0 nuqtani olingan hosilaga qo’yamiz. Masalan, x0=0.5; 𝜓 ′ (𝑥) =
1 2 − 19
15𝑥
4 20𝑥 − 3
𝜓 ′ (𝑥 ) = (
)
2
3
(𝑥)
=
3
5
−
;
𝜓′
3 2
𝑥
Iteratsion jarayon yaqinlashuvchanligini tekshiramiz
4
′
|𝜓 (𝑥0 )| > 1
{ |𝜓′2(𝑥0)| > 1– uzoqlashuvchi iteratsion jarayon
|𝜓 ′3(𝑥0 )| < 1 – yaqinlashuvchi iteratsion jarayon
Bundan ko’rishimiz mumkinki, faqat 𝜓3 (𝑥) funksiya yaqinlashuvchi ekan.
5𝑥 3 +3
1) 𝑥1 =
ni hisoblaymiz va |𝑥1 − 𝑥0 | < 𝜀 shartni tekshiramiz. 𝜀 = 0.0001. 2)
2
5𝑥 3 +3
𝑥2 =
2
|𝑥2 − 𝑥1 | < 𝜀
Bu jarayonni |𝑥1 − 𝑥0 | < 𝜀 shart bajarilguncha davom ettiramiz.
4. Vatarlar usuli
Vatarlar usuli [a, b] kesmaga to’g’ri keluvchi f(x) egri chiziq yoyini tutashtiruvchi vatar OX
o’qini shu kesma ichida kesib o’tishiga asoslangan. Vatarning OX o’qi bilan kesishgan nuqtasi
ildizga yaqinroq (1-rasmda x1 va ga mos nuqtalar). Agar ildiz yotgan kesma sifatida [a, x1] yoki
[x1, b] olinsa, avvalgi [a, b] kesmaga nisbatan kichikroq kesma hosil bo’ladi. Yangi kesmada mos
f(x) yoyiga yana vatar o’tkazib, ilgarigidan ko’ra torroq oraliqni aniqlash mumkin va hokazo. Bu
jarayonni davom ettirib, ildiz yotgan oraliqni istalgancha kichraytirish mumkin bo’ladi.
Tenglamaning [a, b] ajratilgan ildizini aniqlikda hisoblash uchun x0 boshlang’ich yaqinlashish
tanlab olinadi. Bu 1-rasmda ko’rsatilgandek f(x) funksiyaning birinchi va ikkinchi tartibli
hosilalarning ishoralariga bog’liq. Agar y'<0 ba y''<0 (1 a-rasm) yoki y'>0 va y''<0 (1 d-rasm)
bo’lsa x0=b, qolgan hollarda x0=a qilib olish kerak (1-b va 1-c rasmlar).
b)
c)
d)
1-rasm.
Birinchi x =a bo’lgan holda x=b qo’zg’almas nuqta bo’ladi va ildizga keyingi yaqinlashishlar
0
𝑓(𝑥 𝑛 )(𝑏−𝑥 𝑛 )
𝑥𝑛+1 𝑥𝑛 − (𝑏)−𝑓(𝑎)
3
formula bilan hisoblanadi. Bu yerda n=0, 1, 2, … yaqinlashish tartibi, x -n – tartibli
n
yaqinlashish.
Ikkinchi, x0=b bo’lgan holda x=a qo’zg’almas nuqta bo’ladi. Keyingi yaqinlashishlar
𝑓(𝑎)(𝑥𝑛−𝑎)
𝑥𝑛+1 = 𝑥𝑛 −
(4)
(𝑥𝑛 )−𝑓(𝑎)
formula bilan hisoblanadi.
Yaqinlashish jarayoni |xn-xn-1|≤shart bajarilguncha davom etadi.
Bunda 𝑥0 =b
Urinmalar (Nyuton) usuli
Bu usul qo’llanilganda tenglamaning ajralgan
[a,b] ildiziga boshlang’ich
yaqinlashish x0 tanlab olinadi va ketma-ket yaqinlashishlar
( )
𝑓 𝑥 ,
𝑥𝑛+1 = 𝑥𝑛 − ′
𝑛 = 0, 1, 2, …
𝑓 (𝑥𝑛 )
formula bilan hisoblanadi. Bu yerda n yaqinlashishlar tartib soni, xn – ildizga n – yaqinlashish.
Boshlang’ich, ya’ni nolinchi yaqinlashish f(a) f’"(a)>0 shartni bajaradigan qilib olinadi.
Agar shart bajarilsa x0=a, aksincha x0=b qilib olinadi.
Urinmalar usuli bilan tenglama ildizlarini aniqlash ikki bosqichda amalga oshiriladi. Birinchi
bosqichda x0 tanlab olinadi. Buning uchun f(x) funksiyaning ikkinchi tartibli hosilasi topiladi va
uning x=a nuqtadagi qiymati hisoblanadi hamda yuqoridagi shartga asosan x0 tanlab olinadi.
Ikkinchi bosqichda f(x), f (x) qiymatlarini hisoblash uchun funksiyalar tuziladi, x0,
qiymatlari EHMga kiritiladi va dastur yordamida hisoblashl
Xulosa
Agar aniq va aniqmas integrallarda boshlang‘ich funksiyani topish qiyin bo‘lsa
yoki boshlang‘ich funksiya elementar fuknsiyalar orqali ifodalanmasa , u holda
bunday integrallarni hisoblash uchun qatorlardan foydalaniladi. Integrallarni darajali
qatorlar yordamida hisoblashning asosiy g‘oyasishundaki, integral ostidagi funksiya
unga mos keluvchi darajali qator bilan almashtiriladi. Integral ostidagi funksiyani
darajali qator bila almashtirganda albatta talab qilinayotgan aniqlikka e’tibor berish
kerak.Tajribadan kelib chiqib, shuni aytishimiz mumkinki, 0.001 aniqlikka erishish
uchun kup hollarda yoyilmada birinchi turtta hadni olish etarli bo‘ladi.Ammo qator
yoyilmasida qancha kup hadni olsak aniqlik shuncha yuqori bo‘ladi. Integral ostidagi
funksiyani unga mos bo‘lgan darajali qator bilan almashtirib bo‘lganimizdan keiyngi
bosqich, hosil qilingan qator hadlarini soddalashtirishdan iborat.Soddalashtirishdan
maqsad keiyngi bosqichda , ya’ni aniq integralni hisoblashda, imkon qadar
yanglishmaslik va oriqcha hisoblashlardan xolos bo‘lishdir.
CHIZIQLI ALGEBRAIK TENGLAMALAR SISTEMASINI TAQRIBIY
YECHISH USULLARI VA ULARNI KOMPYUTERDA BAJARISH
REJA:



Chiziqli algebraik tenglamalar sistemasi
Chiziqli algebraik tenglamalar sistemasini taqribiy yechish usullari
Tenglamalar sistemasini taqribiy yechish usullari va ularni kompyuterda
bajarish
Nazariy va tadbiqiy matematikaning ko‘pgina masalalari birinchi darajali chiziqli
tenglamalar sistemasini yechishga olib kelinadi. Masalan, funksiyaning n-ta nuqtada
berilgan qiymatlari yordamida n-tartibli ko‘phad bilan interpolyatsiyalash yoki
funksiyani o‘rta kvadratlar usuli yordamida yaqinlashtirish masalalari birinchi darajali
chiziqli tenglamalar sistemasini yechishga keltiriladi.
Birinchi darajali chiziqli tenglamalar sistemasini hosil qilishning manbai uzluksiz
funksional tenglamalarni chekli ayirmali tenglamalar bilan yaqinlashtirishdir.
Birinchi darajali chiziqli tenglamalar sistemasini yechish asosan ikki usulga, ya’ni
aniq va iteratsion usullarga bo‘linadi.
Aniq usul deganda chekli miqdordagi arifmetik amallarni aniq bajarish natijasida
masalaning aniq yechimini topish tushuniladi.
Iteratsion usullarda chiziqli tenglamalar sistemasining yechimi ketmaket
yaqinlashishlarning limiti sifatida topiladi.
Chiziqli tenglamalar sistemasini yechishning noma’lumlarni ketma-ket yo‘qotish
orqali aniqlash usuli, ya’ni Gauss usulini ko‘rib chiqamiz.
Bu usul bir necha hisoblash yo‘llariga ega. Shulardan biri Gaussning kompleks
yo‘lidir.
Ushbu sistema berilgan bo‘lsin
Faraz qilaylik, a11≠0 (etakchi element) bo‘lsin, aks holda tenglamalarning o‘rinlarini
almashtirib, x1 oldidagi koeffisienti noldan farqli bo‘lgan tenglamani birinchi o‘ringa
ko‘chiramiz.
Sistemadagi birinchi tenglamaning barcha koeffisientlarini a11 ga bo‘lib,
х1 +b12(1) x2 +...+b1(n1) xn =b1(,1n)+1 (2)
ni hosil qilamiz, bu yerda
Endi (3) sistema ustida ham shunga o‘xshash almashtirishlar bajaramiz. Buning uchun
(3) sistemadagi birinchi tenglamaning barcha koeffisientlarini yetakchi element
a22(1) ≠0 ga bo‘lib,
x2 +b23(2) x3 +...+b2(2n) xn = b2(,2n)+1 (4)
ni hosil qilamiz, bu yerda
sistemaga kelamiz, bu yerda
aij(2) =aij(1) −ai(21)b2(2j), (i, j ≥ 2)
Noma’lumlarni yo‘qotish jarayoni davom ettirilib, bu jarayonni m–qadamgacha
bajarish mumkin deb faraz qilamiz va m – qadamda quyidagi sistemaga ega bo‘lamiz.
Xulosa
Agar aniq va aniqmas integrallarda boshlang‘ich funksiyani topish qiyin bo‘lsa
yoki boshlang‘ich funksiya elementar fuknsiyalar orqali ifodalanmasa , u holda
bunday integrallarni hisoblash uchun qatorlardan foydalaniladi. Integrallarni darajali
qatorlar yordamida hisoblashning asosiy g‘oyasishundaki, integral ostidagi funksiya
unga mos keluvchi darajali qator bilan almashtiriladi. Integral ostidagi funksiyani
darajali qator bila almashtirganda albatta talab qilinayotgan aniqlikka e’tibor berish
kerak.Tajribadan kelib chiqib, shuni aytishimiz mumkinki, 0.001 aniqlikka erishish
uchun kup hollarda yoyilmada birinchi turtta hadni olish etarli bo‘ladi.Ammo qator
yoyilmasida qancha kup hadni olsak aniqlik shuncha yuqori bo‘ladi. Integral ostidagi
funksiyani unga mos bo‘lgan darajali qator bilan almashtirib bo‘lganimizdan keiyngi
bosqich, hosil qilingan qator hadlarini soddalashtirishdan iborat.Soddalashtirishdan
maqsad keiyngi bosqichda , ya’ni aniq integralni hisoblashda, imkon qadar
yanglishmaslik va oriqcha hisoblashlardan xolos bo‘lishdir.
Daraxt – bu shunday chiziqsiz bog‟langan ma‟lumotlar tuzilmasiki, u quyidagi
belgilari bilan tavsiflanadi: - daraxtda shunday bitta element borki, unga boshqa
elementlardan murojaat yo‟q. Bu element daraxt ildizi deyiladi; - daraxtda ixtiyoriy
element chekli sondagi ko‟rsatkichlar yordamida boshqa tugunlarga murojaat qilishi
mumkin; - daraxtning har bir elementi faqatgina o‟zidan oldingi kelgan bitta element
bilan bog‟langan.
FOYDALANILGAN ADABIYOTLAR
1. O’zbekiston Respublikasi Birinchi Prezidentining “Zamonaviy
axborotkommunikatsiya texnologiyalarni yanada joriy etish va rivojlantirish
choratadbirlari to’g’risida”gi PQ-1730-sonli Qarori. 2012-y., 21 mart.
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Introduction to Algorithms. Third Edition. The MIT Press Cambridge, Massachusetts
London, England, 2009. – 1312 p.
3. Scheinerman Edwant C++ for Mathematicians. An Introduction for Students and
Professionals. Chapman&Hall/CRC, Taylor&Francis Group, LLC, Bocа Raton,
London, New York, 2006. - 496 p.
4. D.S. Malik C++ Programming: From Problem Analysis to Program Design.
Seventh Edition. Course Technology, 2014.-1488 p.
Isroilov M. «Hisoblash metodlari», T., "O`zbekiston", 2003
Shoxamidov Sh.Sh. «Amaliy matematika unsurlari», T., "O`zbekiston", 1997
Boyzoqov A., Qayumov Sh. «Hisoblash matematikasi asoslari», O`quv qo`llanma.
Toshkent 2000.
Abduqodirov A.A. «Hisoblash matematikasi va programmalash», Toshkent.
"O`qituvchi" 1989.
Vorob`eva G.N. i dr. «Praktikum po vichislitel’noy matematike» M. VSh. 1990.
Abduhamidov A., Xudoynazarov S. «Hisoblash usullaridan mashqlar va laboratoriya
ishlari», T.1995.
Siddiqov A. «Sonli usullar va programmalashtirish», O`quv qo`llanma. T.2001.
Internet ma`lumotlarini olish mumkin bo`lgan saytlar:
Download