Mundarija
Kirish
Asosiy qism
Boshlang’ich shartli oddiy differensial tenglamalar haqida ma’lumot.
Boshlang’ich shartli oddiy differensial tenglamalarni yechishning Eyler usuli.
Boshlang’ich shartli oddiy differensial tenglamalarni yechishning Rungе-Kutta usuli.
Dasturiy qism
Boshlang’ich shartli oddiy differensial tenglamalarni yechishning Eyler usulidagi dasturiy ta’minotini yaratish.
Boshlang’ich shartli oddiy differensial tenglamalarni yechishning Rungе-Kutta usulidagi dasturiy ta’minotini yaratish.
Boshlang’ich shartli oddiy differensial tenglamalarni yechishning dasturiy paketini yaratish
Xulosa.
Foydalanilgan adabiyotlar.
Internet ma’lumotlar.
Kirish
O‘zbekistonda ijtimoiy-iqtisodiy sohada, shu jumladan axborot-kommunikatsiya texnologiyalari, zamonaviy axborotlashgan jamiyatni shakllantirish borasida keng ko‘lamli islohotlar izchillik bilan va aniq maqsadni ko‘zlab amalga oshirilmoqda.
Zamonaviy kadrlarni yetishtirish borasida respublikamiz ta‘lim tizimida tub o’zgarishlar amalga oshirilmoqda. Bunga sabab, «Ta‘lim to’g’risida»gi qonun va «Кadrlar tayyorlash milliy dasturi»ning qabul qilinishi va ularda ilmiy-texnika taraqqiyoti yutuqlarini ishlab chiqarish va xizmat ko`rsatish sohasiga tadbiq qilish, ijtimoiy-iqtisodiy rivojlanish bilan uzviy bog’liq еkanligining aniq ko’rsatilishidir.
Hozirgi kunda ta’lim-tarbiya jarayoniga zamonaviy axborot texnologiyalarini joriy etish, ta’limni kompyuterlashtirish muammolarini hal qilish muhim ahamiyat kasb etadi.
Yangi tеxnika va tеxnologiyaning kеskin o‘sib borishi matеmatika fanining zamonaviy bo‘limlarini xalq xo‘jaligi masalalarini yechishga yanada ko‘proq qo‘llanila boshlagani amaliy masalalarni yechishga ixtisoslashtirilgan bakalavrlar va magistrlarni tayyorlashga bo‘lgan talabni borgan sari orttirib bormoqda.
Amaliy masalalarni kompyuterda yechish uchun ikkita asosiy yo‘nalish bo‘yicha yetarlicha chuqur bilimga ega bo‘lishlari kеrak. Birinchidan, ular biror zamonaviy algoritmik tilda ma`lum algoritm asosida dastur tuzishni yoki matеmatik dasturlar asosida hisoblash jarayonini tashkil etishni bilishlari, ikkinchidan amaliy masalalarni yechishning sonli-taqribiy usullari haqida ham yetarlicha bilimga ega bo‘lishlari kеrak.
Haqiqatda mavjud obyektlarning asosiy xossalarini ularning matematik modellari yordamida o‘rganishning klassik vositasi bu analitik usullar bo‘lib, ular aniq yechimni matematik formulalarda ifodalash imkonini beradi. Bu usullar hozirgi kunda ham masalani yechish haqida yetarlicha aniqlikdagi to‘la axborotni bermoqda va ular o‘z amaliy ahamiyatini yo‘qotgani yo‘q. Ammo, afsuski, ularning qo‘llanilish sohasi juda cheklangan. Shuning uchun, odatda, sonli usullarga yoki hisoblash usullariga murojaat qilinadi.
Hisoblash usullari – bu matematik modelga mos algoritmlarni qo‘llashga asoslangan amaliy matematika masalalarini taqribiy yechish usullari. Hisoblash usul-lari analitik usullardan farqli ravishda umumiy yechimni emas, balki xususiy yechimni beradi. Bunda sonli va mantiqiy massivlar ustida yetarli sondagi arifmetik va mantiqiy amallar bajarilishi talab qilinadi. Hisoblash usullari fanining sonli tahlil qismi ikki turdagi sonli usullarga bo‘linadi: 1) to‘g‘ri usullar (ma’lum bir sondagi amallar bilan yechimni topishga asoslangan usullar); 2) iteratsion usullar (qaytarilu-vchi (siklik) jarayonlardan foydalanishga asoslangan va ketma-ket yaqinlashuvchi natijalarni olish imkonini beruvchi usullar). Hisoblash usullariga ehtimoliy usullar (yechimni tasodifiy izlash) ham kiradi.
Biror amaliy masalani kompyuter yordamida yechish bu jiddiy masala bo‘lib, u uzoq vaqtli va murakkab jarayon. Bu jarayonni uning ma’lum darajadagi qiyinliklariga qarab shartli ravishda quyidagi bosqichlarga bo‘lish mumkin: muammoning qo‘yilishi; matematik modelni tanlash yoki qurish; hisoblash masalasining qo‘yilishi; hisoblash masalasi xossalarining dastlabki (kompyuter hisobiga qadar) tahlili; sonli usulni tanlash yoki qurish; algoritmlashtirish va dasturlash; dasturni sozlash; dastur bo‘yicha hisob; natijalarni qayta ishlash va ularning talqini (interpretatsiyasi); natijalarning qo‘llanilishi va matematik modelni to‘g‘rilash.
XX asrning 80 - yillaridan oldin ishlab chiqilgan kompyuterlar uchun katta dasturiy sistemalarni ishlab chiqish juda ham mushkul vazifa edi. Buning eng katta sababi shu davrga xos bo‘lgan kompyuterlarning imoniyatlarining chegaralanganidadir. Dasturiy komplekslarni ishlab chiqishda asosiy cheklanishlar kompyuter tezkor xotirasining sig‘imi, ma’lumotlarni ikkilamchi xotira qurilmalaridan o‘qish tezligi, protsessorning ishlash tezligi bilan bog‘liq. Bu davrdagi kompyuterlar xalq ho‘jaligining hisob-kitob bilan bog’liq bo‘lgan masalalarini yechish uchun mo‘ljallangan edi. Dasturchilar uchun shu kompyuterlarda yechilayotgan masala uchun berilgan ma’lumotlarni hisobga olgan holda masalaning yechish algoritmini ishlab chiqish birinchi o‘rindagi vazifa hisoblangan. Bu borada N. Virtning mashhur ma’lumotlar+algoritm=dastur formulasini yodga olish yetarli.
XX asrning 60-70 yillarida xalq xo‘jaligining ko‘plab masalalarini kompyuter yordamida yechish uchun BASIC, PASKAL, FORTRAN kabi dasturlash tillari, DBASE. CLIPPER, FOXBASE, KARAT kabi ma’lumotlar bazasini boshqaruv tizimlari yetarli bo‘lgan. Bu til va tizimlar asosan IBM tipidagi kompyuterlarga mo‘ljallangan bo‘lib, ularning asosiy kamchiliklari shu davrga hos bo‘lgan kompyuterlarning imkoniyatlari bilan bog‘liq edi.
1980 yillardan keyin ishlab chiqilgan kompyuterlarning imkoniyatlari kengayib, ishlab chiqarish narxi keskin pasaygani tufayli ulardan foydalanish samarasi ortib bordi. Natijada, dastlab matn va grafiklar uchun muharrirlari ishlab chiqildi, keyinchalik multimedia qurilmasi yordamida tovushli malumotlarni qayta ishlash imkoniyatlari ham paydo boldi. Kompyuter tasviriy imkoniyatlarining kengayishi foydalanuvchilar uchun qulay bolgan grafik muloqot interfeysini yaratilishiga sabab boldi. Natijada yuqori murakkablikdagi katta amaliy dasturlarni yaratish foydali hamda zarur bolib qoldi. Dasturiy vositalarni ishlab chiqish uchun qurol sifatida yuqori bosqichli algoritmik tillardan foydalanildi. Bu dasturiy vositalar dasturchi va dasturchilar guruhi imkoniyatlarini kengaytirib, dasturiy mahsulotlarning murakkablik darajasining ortishiga ham sabab bo’ldi.
Hisoblash bosqichlarini batafsil bajarish uchun kompyuter algoritmini tuzish zarur. Keyin esa dastur ana shu algoritmni daturlash tiliga ko‘chiradi. Hozirda mavjud C++, JavaScript, Python kabi algoritmik tillar hisoblash masalasini yechishda keng qo‘llaniladi. Bu algoritmik tillarning standart dasturlar bibliotekasi yoki amaliy dasturlar paketi ham mavjudki, ulardan samarali foydalanish maqsadga muvofiq. Bundan tashqari MATLAB, Maple, Mathcad va shu kabi matematik paketlar ham mavjudki, bular hisoblash masalalarini yechishning eng zamonaviy vositalari bo‘lib bormoqda. Bulardan tashqari MS Excel dasturidan ham bu borada samarali foydalanish mumkin.
Python bu umumiy maqsadli dasturlash uchun keng tarzda foydalaniladigan yuqori darajali dasturlash tili, chunki o'rganish oson va qulay sintaksisga ega. Undan tashqari skriptli dasturlash tillariga kiradi. Python dinamik tipizatsiyaga ega, obyektga yo'naltirilgan dasturlash, funksional dasturlash, strukturali, avtomatik xotirani boshqarish va albatta ko'p patokli dasturlash tillaridan biri. Python har xil platformalar uchun yozilgan masalan Windows, Linux, Mac OSX, Palm OS, Mac OS va hokazo. Python Microsoft.NET platformasi uchun yozilgan realizatsiyasi ham bor uni nomi IronPython. Bugungi kunda dunyoga mashhur ko`plab kompaniyalar NASA, Google, Yandex, CERN, Apple computer, Dream Works, kosmik teleskop institutlari Pythonni ishlatishadi. Dunyoning rivojlangan mamlakatlari AQSH (Koliforniya Universiteti, Florida Universiteti, Lova Universiteti, Massachustva Texnologiya Universiteti), Kanada (Toronto Universiteti, Alberto Universiteti), Buyuk Britaniya (Oksford Universiteti), Fransiya, Rossiya, Avstraliya, Ispaniyaning universitet va kollejlarida o`qitishda Python dasturlash tili qo`llaniladi. Pythonning o`ziga xos jihatlaridan biri bu dasturni yozish davomida quyi darajadagi detallarni, misol uchun xotirani boshqarishni hisobga olishga hojat qolmaydi. Shuningdek dasturni yozish davomida ortiqcha kod yozishdan xalos bo`linadi.
Python dasturlash tilini yaratilishi 1980-yil oxiri 1990-yil boshlaridan boshlangan. O`sha paytlarda uncha taniqli bo`lmagan Gollandiyaning CWI instituti xodimi Gvido van Rossum ABC tilini yaratilish proektida ishtirok etgan edi. ABC tili Basic tili o`rniga talabalarga asosiy dasturlash konsepsiyalarini o`rgatish uchun mo`ljallangan til edi. Bir kun Gvido bu ishlardan charchadi va 2 hafta davomida o`zining Macintoshida boshqa oddiy tilning interpretatorini yozdi, bunda u albatta ABC tilining ba’zi bir g`oyalarini o`zlashtirdi. Shuningdek, Python 1980-1990-yillarda keng foydalanilgan Algol-68, C, C++, Modul3 ABC, SmallTalk tillarining ko`plab xususiyatlarini o`ziga olgandi. Gvido van Rossum bu tilni internet orqali tarqata boshladi. Bu paytda o`zining “Dasturlash tillarining qiyosiy taqrizi” veb sahifasi bilan internetda to 1996-yilgacha Stiv Mayevskiy ismli kishi taniqli edi. U ham Macintoshni yoqtirardi va bu narsa uni Gvido bilan yaqinlashtirdi. O`sha paytlarda Gvido BBC ning “Monti Paytonning havo sirki” komediyasining muxlisi edi va o`zi yaratgan tilni Monti Payton nomiga Python deb atadi (ilon nomiga emas).
Til tezda ommalashdi. Bu dasturlash tiliga qiziqqan va tushunadigan foydalanuvchilar soni ko`paydi. Boshida bu juda oddiy til edi. Shunchaki kichik interpretator bir nechta funksiyalarga ega edi. 1991-yil birinchi OYD(Obyektga Yo`naltirilgan Dasturlash) vositalari paydo bo`ldi.
Bir qancha vaqt o`tib Gvido Gollandiyadan Amerikaga ko`chib o`tdi. Uni CNRI korparatsiyasiga ishlashga taklif etishdi. U o`sha yerda ishladi va korparatsiya shug`ullanayotgan proektlarni Python tilida yozdi va bo`sh ish vaqtlarida tilni interpretatorini rivojlantirib bordi. Bu 1990-yil Python 1.5.2 versiyasi paydo bo`lguncha davom etdi. Gvidoning asosiy vaqti korparatsiyani proektlarini yaratishga ketardi bu esa unga yoqmasdi. Chunki uning Python dasturlash tilini rivojlantirishga vaqti qolmayotgandi. Shunda u o`ziga tilni rivojlantirishga imkoniyat yaratib bera oladigan homiy izladi va uni o`sha paytlarda endi tashkil etilgan BeOpen firmasi qo`llab quvvatladi. U CNRI dan ketdi, lekin shartnomaga binoan u Python 1.6 versiyasini chiqarib berishga majbur edi. BeOpen da esa u Python 2.0 versiyani chiqardi. 2.0 versiyasi bu oldinga qo`yilgan katta qadamlardan edi. Bu versiyada eng asosiysi til va interpretatorni rivojlanish jarayoni ochiq ravishda bo`ldi.
Shunday qilib 1.0 versiyasi 1994-yil chiqarilgan bo`lsa, 2.0 versiyasi 2000-yil, 3.0 versiyasi esa 2008-yil ishlab chiqarildi. Hozirgi vaqtda uchinchi versiyasi keng qo`llaniladi.
Python – bu o'rganishga oson va shu bilan birga imkoniyatlari yuqori bo'lgan oz sonlik zamonaviy dasturlash tillari qatoriga kiradi. Python yuqori darajadagi ma'lumotlar strukturasi va oddiy lekin samarador obyektga yo'naltirilgan dasturlash uslublarini taqdim etadi.
Pythonning o'ziga xosligi:
Oddiy, o'rganishga oson, sodda sintaksisga ega, dasturlashni boshlash uchun qulay, erkin va ochiq kodlik dasturiy ta'minot.
Dasturni yozish davomida quyi darajadagi detallarni, misol uchun xotirani boshqarishni hisobga olish shart emas.
Ko'plab platformalarda hech qanday o'zgartirishlarsiz ishlay oladi.
Interpretatsiya(Интерпретируемый) qilinadigan til.
Kengayishga (Расширяемый) moyil til. Agar dasturni biror joyini tezroq ishlashini xoxlasak shu qismni C yoki C++ dasturlash tillarida yozib keyin shu qismni python kodi orqali ishga tushirsa(chaqirsa) bo'ladi.
Juda ham ko'p xilma-xil kutubxonalarga ega.
xml/html fayllar bilan ishlash.
http so`rovlari bilan ishlash.
GUI(grafik interfeys).
Web ssenariy tuzish.
FTP bilan ishlash.
Rasmli audio video fayllar bilan ishlash.
Robot texnikada.
Matematik va ilmiy hisoblashlarni programmalash.
Pythonni katta proyektlarda ishlatish mumkin. Chunki, uni chegarasi yo`q, imkoniyati yuqori. Shuningdek, u sodda va universalligi bilan programmalash tillari orasida eng yaxshisidir.
Menga Hisoblash usullari fanidan kurs ishi topshirig’i sifatida “Boshlang’ich shartli oddiy differensial tenglamalarni yechishning barcha usullari” uchun dasturlar bog’lamini yaratish topshirilgan.
Men ushbu mavzuni yoritish va dasturlar bog’lamini yaratish uchun kurs ishimni uch qism: kirish, asosiy qism, dasturiy qismlarga ajratib oldim. Topshirig’imni asosiy qismida mavzuga oid to’plagan nazariy ma’lumotlardan iborat bo’lib, unda differensial tenglamalar va ularning amaliy tadbiqlari, differensial tenglamalarning turlari, differensial tenglamalarning yechimi, umumiy va xususiy yechimlar, qo’shimcha va boshlang’ich shartlar, Koshi masalasini yechishning Eyler hamda Runge-Kutta usullari va ularning mohiyati kabi nazariy va amaliy ma’lumotlar batafsil yoritilgan.
Kurs ishimni dasturiy qismida Koshi masalasini yechishning Eyler hamda Runge-Kutta usullaridagi dasturiy ta’minotini yaratish hamda bu dasturiy ta’minotni umumiy paket ko’rinishga keltirish bosqichi yoritilgan.
Kurs ishimni xulosa qismida Boshlang’ich shartli oddiy differensial tenglamalarni yechishning barcha usullari uchun dasturlar bog’lamini yaratish mavzuni o’rganish hamda umumiy paket yaratish davomida qilgan fikr va mulohazalar, shuningdek usullarni tahlili davrida orttirgan xulosalarim o’rin olgan.
Menga topshirilgan Hisoblash usullari fanidan “Boshlang’ich shartli oddiy differensial tenglamalarni yechishning barcha usullari” uchun dasturlar bog’lamining ahamiyati shundan iboratki, dasturiy ta’minotdan oliy ta’lim muassasalarida o’qituvchi-professorlar tomonidan talabalarga “Boshlang’ich shartli oddiy differensial tenglamalarni yechish usullari” mavzusini qulay hamda samarali tushuntirishlarida qo’llanma sifatida unumli foydalanishlari mumkin.
2.1. Boshlang’ich shartli oddiy differensial tenglamalar haqida ma’lumot.
Ma`lumki, ko‘pincha amaliy masalalarni yechishda, dastlab uning matеmatik modеli fizik, mеxanik, kimyoviy va boshqa qonuniyatlar asosida tuziladi. Matеmatik modеl asosan algеbraik, diffеrеnsial, intеgral va boshqa tеnglamalardan iborat bo‘ladi. Ayniqsa, oddiy diffеrеnsial tеnglamalar juda ko‘p muhandislik masalalarini yechishda matеmatik modеl rolini o‘ynaydi. Shuning uchun, diffеrеnsial tеnglamalarning ma`lum shartlarni qanoatlantiruvchi yechimlarini topish katta ahamiyatga ega.
Diffеrеnsial tеnglamalar ikkita asosiy sinfga bo‘linadi: oddiy diffеrеnsial tеnglamalar va xususiy hosilali diffеrеnsial tеnglamalar.
Oddiy diffеrеnsial tеnglamalarda faqat bir o‘zgaruvchiga bog’liq funksiya va uning hosilalari qatnashadi, ya`ni
(2.1.1)
(2.1.1) tеnglamada qatnashuvchi hosilalarning eng yuqori tartibi diffеrеnsial tеnglamaning tartibi dеyiladi. Agar tеnglama izlanuvchi funksiya va uning hosilalariga nisbatan chiziqli bo‘lsa, unga chiziqli diffеrеnsial tеnglama dеyiladi.
Diffеrеnsial tеnglamaning umumiy yechimi dеb, uni ayniyatga aylantiruvchi va ta o‘zgarmaslarga bog’liq ixtiyoriy funksiyaga aytiladi. Masalan (2.1.1) tеnglamaning umumiy yechimi ko‘rinishdagi funksiyalardan iborat . Agar o‘zgarmaslarga muayyan qiymatlar bеrilsa, umumiy yechimdan xususiy yechim hosil qilinadi. Xususiy yechimni topish uchun o‘zgarmaslarning mos qiymatlarini aniqlash lozim. Buning uchun esa yechim qanoatlantiruvchi qo‘shimcha shartlarga ega bo‘lishimiz kеrak. Agar diffеrеnsial tеnglama -tartibli bo‘lsa, yagona xususiy yechimni topish uchun xuddi shuncha qo‘shimcha shartlar kеrak. Hususan, birinchi tartibli tеnglama ning umumiy yechimi dagi o‘zgarmasni topish uchun bitta qo‘shimcha shartning bеrilishi kifoya.
Qo‘shimcha shartlar bеrilishiga ko‘ra diffеrеnsial tеnglamalar uchun ikki xil masala qo‘yiladi:
Do'stlaringiz bilan baham: |