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 xi1 ) (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 ba , 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 ba [ y0 y1 .... yn 1 ], (3) n ba [ 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 ba , 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 vax1 , 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 ba [ 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 38 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: