logo

Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur ishlab chiqish

Yuklangan vaqt:

20.11.2024

Ko'chirishlar soni:

0

Hajmi:

278.6787109375 KB
Chiziqli algebraik tenglama lar tizimini yechishning Gauss usuli uchun
dastur ishlab chiqish
                                                         Reja:
I. Kirish.
II. Asosiy qism.
II.1. Gaus usuli uchun dastur yaratish bosqichlari.
II.2. Dasturni ishlab chiqish
II.3. Dasturni lohalash.
III. Xulosa.
IV. Foydalanilgan adabiyotlar.
PAGE   \* MERGEFORMAT1                                                      KIRISH
Gauss usuli, shuningdek, Gaussni yo‘q qilish deb ham ataladi, chiziqli tenglamalar
tizimini   echish   uchun   ishlatiladigan   chiziqli   algebrada   asosiy   algoritmdir.   U   berilgan
tizimni   yuqori   uchburchak   shaklga   aylantiradi,   undan   yechimlarni   orqaga   almashtirish
orqali   osongina   olish   mumkin.   Ushbu   usul   nafaqat   matematikada,   balki   fan   va
muhandislik fanlari boylab ko‘plab ilovalarda ham asosiy hisoblanadi. Chiziqli
Chiziqli   tenglamalar   tizimlarini   echish   turli   sohalarda,   jumladan,   hodisalarni
modellashtirish   uchun   fizikada,   sxemalar   tahlili   va   strukturaviy   tahlil   uchun
muhandislikda,   iqtisodiy   tizimlarni   modellashtirish   uchun   iqtisodda   va   algoritmlar   va
grafikalar   uchun   informatikada   muhim   ahamiyatga   ega.   Gauss   yo‘q   qilish   usuli
to‘g‘ridan-to‘g‘ri   amalga   oshirilishi   va   aniq   echimlarni   taqdim   etishda   samaradorligi
uchun qadrlanadi.
Ushbu kurs ishining maqsadi chiziqli tenglamalar tizimini echish uchun Gauss usulini
qo‘llaydigan   dasturini   ishlab   chiqishdan   iborat.   Ushbu   dastur   har   xil   turdagi   chiziqli
tizimlarni boshqarishga qodir bo‘lgan samarali, foydalanuvchilarga qulay va mustahkam
bo‘lishga qaratilgan.
Dasturni   ishlab  chiqish   nafaqat     Gauss  usulini  qo‘llashni  ko‘rsatibgina  qolmay,  balki
raqamli   usullar   va   algoritmni   amalga   oshirishni   tushunishni   ham   oshiradi.   Nazariy
bilimlarni   amaliy  kodlash   ko‘nikmalari   bilan  integratsiyalashgan   holda,  ushbu   kurs   ishi
Gauss   usuli   yordamida   chiziqli   tenglamalar   tizimini   yechishda   kompleks   yondashuvni
beradi.
PAGE   \* MERGEFORMAT1 I.  Dasturda foydalanilgan  funksiyalar .
         Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur yaratish
uchun siz quyidagi bosqichlarni o‘tkazing:
1. Ma'lumotlar :   Birinchi   qadam,   dastur   uchun   kerakli   ma'lumotlarni   belgilashdir.   Bu
ma'lumotlar,   chiziqli   algebraik   tenglamalarni,   ularning   ko‘ffitsiyentlarini,
o‘zgaruvchilar sonini va boshqa kerakli ma'lumotlarni o‘z ichiga oladi.
2. Chiziqli   algebraik   tenglamalarni   yechish :   Dasturda,   berilgan   chiziqli   algebraik
tenglamalarni   yechish   uchun   yordamchi   funksiyalar   yozish   kerak   bo‘ladi.   Bu
funksiyalar Gauss usuli orqali tenglamalarni yechish uchun kerak bo‘ladi.
3. Gauss usuli implementatsiyasi : Gauss usuli yechish algoritmini dastur ichiga qo‘llab-
quvvatlash   kerak   bo‘ladi.   Bu   algoritm   o‘zgaruvchilarni   va   matnlar   ustida   amallarni
bajaradi, uning natijasini topadi va chiziqli algebraik tenglamalarni yechadi.
4. Natijalarni  chiqarish :  Yechim  natijalarini  dastur  chiqarishi  juda muhimdir. Natijalar
tezkor yoki dastur muhiti uchun kerakli bo‘lsa, dastur natijalarni konsolga, faylga yoki
boshqa muhitga chiqarishi mumkin.
5. Dasturni   tekshirish   va   to‘liqroq   ishlatish :   Yozilgan   dastur   muvaffaqiyatli   ishga
tushirilgandan   so‘ng,   uning   to‘liqroq   ishlatilishi   va   tekshirilishi   kerak   bo‘ladi.   Bu
qadamda,   dastur   xato   emasligini,   yechimni   to‘g‘ri   hisoblashni   va   qo‘shimcha
funktsiyalarni qo‘llab-quvvatlashni ta'minlashga yordam beradi.
          Dastur   yozishda   chiziqli   algebraik   tenglamalarni   yechish   uchun   Python,   MATLAB
yoki boshqa matematik dasturlash tillaridan foydalanishingiz mumkin. Bu tillar yechimni
topish   va   dasturning   boshqa   qismlarini   yozishda   juda   foydali   bo‘ladi.Aniqlash   uchun,
dastur yaratish jarayonida qo‘llaniladigan boshqa ma'lumotlarni keltirib o‘tamiz:   Chiziqli
algebraik   tenglamalar :   Dastur   uchun   muhim   ma'lumotlar,   chiziqli   algebraik
tenglamalardir.   Bu   tenglamalar,   xususan,   ko‘ffitsiyentlar   va   o‘zgaruvchilar   orqali
ifodalangan.   Misol   uchun,   ax+by=cax   +   by   =   c ax + by = c   shaklidagi   chiziqli   algebraik
PAGE   \* MERGEFORMAT1 tenglama   quyidagi   ko‘ffitsiyentlarga   ega   bo‘ladi:   aa a ,   bb b ,   va   cc c .   Bu   ko‘ffitsiyentlar
dasturda ishlatiladi.
1. Gauss usuli : Gauss usuli, chiziqli algebraik tenglamalarni yechishda o‘zini ko‘rsatadi.
Bu   usul   orqali,   chiziqli   algebraik   tenglamalarni   yechishdagi   qadam-qadamlik
jarayonlar   bajariladi,   ma'lumotlar   ustida   operatsiyalar   amalga   oshiriladi   va   yechim
topiladi.
2. Matnlar   ustida   amallar :   Dasturda,   matnlar   ustida   qadam-qadamlik   amallar   bajarish
uchun   funksiyalar   yoziladi.   Bu   funksiyalar   Gauss   usuli   yechimini   amalga   oshirishda
yordam   beradi,   misol   uchun,   ko‘ffitsiyentlarni   qayta   hisoblash   va   yechimni   topish
uchun.
3. O‘zgaruvchilar   va   ma'lumotlar :   Dastur   uchun   zarur   o‘zgaruvchilar   va   ma'lumotlar
belgilanadi.   Bu,   yechimni   topish   jarayonida   yordam   beradi   va   dasturni   boshqarishga
imkon beradi.
4. Natijalar :   Gauss   usuli   yechish   jarayonidan   keyingi   natijalar   dastur   tomonidan
chiqariladi.   Bu   natijalar   dastur   foydalanuvchisiga   yechimni   beradi,   o‘zgaruvchilar   va
ma'lumotlar sifatida ishlatiladi.
5. Dasturni   interfeysi :   Dastur   foydalanuvchisi   bilan   muloqotda   bo‘lish   uchun   kerakli
interfeysni   o‘z   ichiga   oladi.   Bu   interfeys,   dastur   ma'lumotlarini   kiritish,   yechimni
topish   va   natijalarni   chiqarish   uchun   qulayliklar   taqdim   etadi   Bu   ma'lumotlar   dastur
yaratish jarayonida kerak bo‘ladi va dasturning funksionali va amaliyoti bilan bog‘liq.
Dasturni   qanday   yozishni   qo‘llanish   muhitiga   va   maqsadlarga   qarab   belgilash   juda
muhimdir.
         Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur yaratish
jarayonida quyidagi muhim konseptlarga e'tibor bering:
1. Qanday   ko‘rinishda   ma'lumotlar   kiritiladi :   Foydalanuvchidan   ma'lumotlar   qanday
ko‘rinishda   kiritiladi?   Ma'lumotlar   interaktiv   shaklda   miqyosiylik   yoki   fayldan   o‘qib
olish shaklida kiritilishi mumkin.
PAGE   \* MERGEFORMAT1 2. Ma'lumotlarni   tekshirish   va   to‘g‘rilash :   Foydalanuvchidan   kiritilgan   ma'lumotlarni
tekshirish va to‘g‘rilash funksiyalarini dasturda qo‘llash lozim. Bu, ma'lumotlar to‘g‘ri
formatda bo‘lishini ta'minlash uchun juda muhimdir.
3. Gauss   usulining   joriyatisi :   Gauss   usuli   qanday   amalga   oshiriladi?   Uni   qanday
implementatsiya   qilish   kerakligi,   ya'ni   o‘zgaruvchilar   bilan   qanday   ishlovchi
funksiyalar va algoritmlar kerakligi.
4. Yechimning natijalari va ularga ishlov berish : Yechimning natijalari qanday shaklda
chiqariladi?  Natijalar qanday saqlanadi va ularga qanday ishlov beriladi?
5. Xatolar   va   istisnolar :   Dastur   yozishda   yuzaga   kelishi   mumkin   bo‘lgan   xatolar   va
istisnolar   qanday   qaror   qilinishi   kerakligi.   Bu,   dasturni   robust   va   foydalanuvchiga
foydali qilish uchun muhimdir.
6. Dasturni   test   qilish :   Dastur   yaratildiktan   so‘ng,   uni   test   qilish   va   uning   to‘g‘ri
ishlashini   tekshirish   kerak.   Bu,   dasturda   xatoliklar   mavjudligini   aniqlash   va   ularni
to‘g‘rilashga imkon beradi.
          Bu   muhim   konseptlar   dastur   yaratish   jarayonida   e'tirof   etilishi   kerak   bo‘lgan
ma'lumotlardir.   Dastur   yozish   uchun   bu   konseptlarni   tushunish,   dasturni   samarali   va
foydali qilishga yordam beradi.
II . Dasturni ishlab chiqish .
  Talablarni tahlil qilish.
Dasturni   ishlab   chiqishdan   oldin   talablar   va   cheklovlarni   tushunish   juda   muhimdir.
Gaussni yo‘q qilish dasturiga qo‘yiladigan asosiy talablar:
Kirish   bilan   ishlash   :   Dastur   chiziqli   tenglamalar   tizimini   ifodalovchi   kengaytirilgan
matritsa shaklida kiritilgan ma'lumotlarni qabul qilishi kerak.
Qayta   ishlash   :   Dastur   tenglamalar   tizimini   yechish   uchun   Gauss   yo‘q   qilish   usulini
amalga oshirishi kerak.
Chiqish   :   Dastur   yechimni   tenglamalar   tizimiga   chiqarishi   yoki   yechimlar   yo‘qligini
yoki cheksiz ko‘p echimlarni ko‘rsatishi kerak.
PAGE   \* MERGEFORMAT1 Foydalanish   qulayligi   :   Dastur   foydalanuvchi   uchun   qulay   bo‘lishi   va   turli   xil   chekka
holatlarni, masalan, yagona matritsalar yoki nomuvofiq tizimlar kabi nozik tarzda ishlashi
kerak.
Dasturni loyihalash .
Dastur   modullilik   va   ravshanlikni   hisobga   olgan   holda   ishlab   chiqilgan.   U   quyidagi
tarkibiy qismlardan iborat:
Kirish   moduli   :   Ushbu   modul   foydalanuvchidan   tizim   koeffitsientlarini   o‘qish   uchun
javobgardir.
Gauss yo‘q qilish moduli :  Ushbu modul Gaussni yo‘q qilish jarayonini, shu jumladan
oldinga siljish va orqaga almashtirishni amalga oshiradi.
Chiqish   moduli   :   Bu   modul   yechimlar   yoki   yechimlar   yo q   yoki   cheksiz   ko pʻ ʻ
yechimlar kabi maxsus sharoitlarni ko rsatuvchi hisoblar natijalarini ko rsatadi.	
ʻ ʻ
Dastur sxemasi:
Boshlash
Kengaytirilgan matritsani kiriting
Oldindan yo‘q qilishni amalga oshiring
Orqaga almashtirishni amalga oshiring
Natijalarni chiqaring  C++ da amalga oshirish
Quyidagi   C++   kodi   chiziqli   tenglamalar   tizimini   yechish   uchun   Gauss   eliminatsiya
usulini   amalga   oshiradi.   Kod   matritsalarni   manipulyatsiya   qilish,   Gaussni   yo‘q   qilish   va
natijalarni ko‘rsatish funktsiyalarini o‘z ichiga oladi.
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
// Gauss eliminatsiya usuli orqali chiziqli tenglamalar tizimini yechish uchun
koeffitsientlar matritsasi va erkin hadlar vektorini e`lon qilamiz
PAGE   \* MERGEFORMAT1 void   gaussElimination(vector<vector<double>>   &a,   vector<double>   &b,
vector<double> &x, int n) {
    for (int i = 0; i < n; i++) {
        // Maksimal elementni qatorni tanlash
        double maxEl = abs(a[i][i]);
        int maxRow = i;
        for (int k = i + 1; k < n; k++) {
            if (abs(a[k][i]) > maxEl) {
                maxEl = abs(a[k][i]);
                maxRow = k;
            }
        }
                //   Maksimal   elementni   tanlangan   qatorni   birinchi   qator   bilan
almashtiramiz
        for (int k = i; k < n; k++) {
            swap(a[maxRow][k], a[i][k]);
        }
        swap(b[maxRow], b[i]);
        // Diagonal elementlarni 1 ga keltiramiz
        for (int k = i + 1; k < n; k++) {
            double c = -a[k][i] / a[i][i];
            for (int j = i; j < n; j++) {
                if (i == j) {
                    a[k][j] = 0;
                } else {
                    a[k][j] += c * a[i][j];
                }
            }
PAGE   \* MERGEFORMAT1             b[k] += c * b[i];
        }
    }
    // Yechimni hisoblaymiz
    for (int i = n - 1; i >= 0; i--) {
        x[i] = b[i] / a[i][i];
        for (int k = i - 1; k >= 0; k--) {
            b[k] -= a[k][i] * x[i];
        }
    }
}
int main() {
    int n;
    cout << "Tenglamalar sonini kiriting: ";
    cin >> n;
    vector<vector<double>> a(n, vector<double>(n));
    vector<double> b(n);
    vector<double> x(n);
    cout << "Koeffitsientlar matritsasini kiriting:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> a[i][j];
        }
    }
    cout << "Erkin hadlar vektorini kiriting:\n";
PAGE   \* MERGEFORMAT1     for (int i = 0; i < n; i++) {
        cin >> b[i];
    }
    gaussElimination(a, b, x, n);
    cout << "Yechim:\n";
    for (int i = 0; i < n; i++) {
        cout << "x" << i + 1 << " = " << setprecision(6) << x[i] << endl;
    }
    return 0;
}
          Yuqoridagi   kod   Gauss   eliminatsiya   usulini   foydalanib   chiziqli   tenglamalar   tizimini
yechish uchun yozilgan. Bu usul matematikada keng qo‘llanilib, koeffitsientlar matritsasi
va   erkin   hadlar   vektoridan   foydalanib,   chiziqli   tenglamalar   tizimini   yechishga   yordam
beradi.
Kodni tushuntirish:
Kutubxonalar:
cpp
#include <iostream>
#include <vector>
#include <iomanip>
#include <cmath>
 iostream : Konsolga kiritish va chiqarish uchun.
 vector : Dinamik massivlarni (vektorlarni) ishlatish uchun.
 iomanip : Formatlangan chiqarish uchun (masalan, o‘nli kasr sonlar uchun aniq 
format).
 cmath : Matematik funksiyalar uchun (masalan, abs() funksiyasi).
Bu funksiyada koeffitsientlar matritsasi (a), erkin hadlar vektori (b), yechim vektori
(x) va tenglamalar soni (n) qabul qilinadi. Quyidagi asosiy bosqichlardan iborat:
PAGE   \* MERGEFORMAT1 1. Qatorlarni almashtirish (Pivoting) :
o Har bir qator uchun, maksimal elementni qidirib topiladi va shu qatorni 
yuqoriga almashtiriladi.
2. Forward Elimination :
o Matritsaning yuqorisidagi uchburchak (upper triangular) matritsaga keltirish 
uchun, qatorlarni nolga keltirish.
o Diagonal elementlarni 1 ga keltirish va boshqa elementlarni noldan farqli 
qiymatlar bilan yangilash.
3. Back Substitution :
o Yechimlarni hisoblash. Oxirgi tenglamadan boshlab, yuqoriga qarab har bir x
ni topish.
Bu yerda foydalanuvchi kiritadigan asosiy qism. Quyidagi bosqichlardan iborat:
1. Foydalanuvchi kiritishi :
o Tenglamalar sonini kiritish.
o Koeffitsientlar matritsasini kiritish.
o Erkin hadlar vektorini kiritish.
2. Gauss Eliminatsiya chaqiruv :
o Yechimlarni hisoblash uchun gaussElimination funksiyasini chaqirish.
3. Natijalarni chiqarish :
o Har bir tenglama uchun yechimni chiqarish.
Bu   natija,   tizimda   hech   qanday   yechim   yo‘qligini   bildiradi,   chunki   ikkinchi
tenglama birinchi tenglamaning ko‘paytmasi bo‘lib, bu tizim o‘z-o‘zidan mos kelmasligini
ko‘rsatadi.
Kodning vazifalari:
 Koeffitsientlar matritsasini va erkin hadlar vektorini olish : Foydalanuvchidan 
kiritiladi.
 Gauss eliminatsiyasi orqali yechimni hisoblash : Koeffitsientlar matritsasi va 
erkin hadlar vektoridan foydalaniladi.
 Yechimni chiqarish : Hisoblangan natijalarni foydalanuvchiga ko‘rsatish.
Bu   kod   matematikada   va   muhandislikda   keng   qo‘llaniladi,   chunki   ko‘plab   real
hayotdagi   muammolar   chiziqli   tenglamalar   tizimi   sifatida   ifodalanadi   va   Gauss
eliminatsiyasi ushbu tizimlarni yechishda samarali usul hisoblanadi.
Kirish moduli :
PAGE   \* MERGEFORMAT1 Dastur   birinchi   navbatda   foydalanuvchidan   o‘zgaruvchilar   sonini   kiritishni   taklif
qiladi.Keyin   u   o‘zgaruvchilar   koeffitsientlari   va   tenglamalarning   doimiylarini   o‘z   ichiga
olgan kengaytirilgan matritsani o‘qiydi.
1. #include <iostream>:
   - Ma'no: Bu kutubxona kiritish/chiqarish oqimlari uchun kerak.
    - Foydalanilishi: `cin` va `cout` yordamida foydalanuvchidan ma'lumot olish va
natijalarni ekranga chiqarish uchun ishlatiladi.
    Misol: 
2. #include <vector>:
   - Ma'no: Bu kutubxona dinamik o‘lchamdagi massivlarni yaratish va boshqarish
uchun kerak.
      -   Foydalanilishi:   Koeffitsientlar   matritsasi   va   vektorlarni   saqlash   uchun
ishlatiladi.
   - Misol:
3. #include <iomanip>:
      -   Ma'no:   Bu   kutubxona   kiritish/chiqarish   oqimlarida   ma'lumotlarni   formatlash
uchun kerak.
      -   Foydalanilishi:   Natijalarni   belgilangan   aniqlikda   (raqamlar   soni)   formatlash
uchun ishlatiladi.
   - Misol:
PAGE   \* MERGEFORMAT1 Kutubxonalar haqida batafsil ma'lumot
1. <iostream>
- Foydalanish sohasi: Standart kiritish/chiqarish oqimlari (input/output streams).
-   Muqobil   variantlar:   <cstdio>   kabi   C   tilidagi   kutubxonalardan   foydalanish
mumkin, lekin <iostream> C++ da kiritish/chiqarish uchun tavsiya etiladi.
2. <vector>
- Foydalanish sohasi: Dinamik massivlar (dynamic arrays) yoki ro‘yxatlar (lists).
-   Afzalliklari:   O‘lchami   dinamik   o‘zgaradi,   qulay   metodlarga   ega   (`push_back`,
`size`, va hokazo).
- Muqobil  variantlar: C tilidagi dinamik massivlar  (`malloc`, `realloc`) yoki C++
da `std::array`, `std::list`.
3. <iomanip>
-   Foydalanish   sohasi:   Oqimda   ma'lumotlarni   formatlash   (chiqarish   formatini
sozlash).
- Metodlar: `setprecision` (aniqlikni o‘rnatish), `setw` (ustun kengligini belgilash),
`setfill` (to‘ldiruvchi belgini belgilash).
- Misol:
Bu kutubxonalar  birgalikda ishlatilganda, dastur  foydalanuvchidan ma'lumotlarni
oladi, chiziqli tenglamalar tizimini Gauss usuli bilan yechadi va natijalarni formatlangan
holda ekranga chiqaradi.
Dastur tahlili, Gauss usulining bosqichlari:
1. Koeffitsientlar matritsasini yaratish:
PAGE   \* MERGEFORMAT1         -   Chiziqli   tenglamalar   tizimi   koeffitsientlari   asosida   kengaytirilgan   matritsa
tuziladi.   Bu   matritsa   A   koeffitsientlar   matritsasi   va   B   erkin   hadlar   vektorini   o‘z   ichiga
oladi.
2. Kengaytirilgan matritsani yuqori uchburchak matritsaga aylantirish:
        -   Har   bir   qadamda   pivot   (diagonal)   element   tanlanadi   va   undan   pastdagi
elementlar nolga aylantiriladi.
        -   Bu   jarayon   davomida   qatorlar   almashtirilishi   yoki   ko‘paytirilib,   qo‘shilishi
mumkin.
    - Har bir qadamda tanlangan pivot element eng katta bo‘lishi kerak (bu jarayon
pivotlashtirish deb ataladi) bu jarayon hisoblash barqarorligini oshiradi.
3. Yuqori uchburchak matritsadan foydalangan holda tenglamani yechish (orqaga
yo‘naltirilgan almashtirish):
        -   Yuqori   uchburchak   matritsadan   boshlab,   oxirgi   tenglamadan   boshlab   x
tenglamalar yechiladi va oldingi tenglamalar uchun qiymatlar hisoblanadi.
Endi   ushbu   dastur   algoritmidan   foydalanib   quyidagi   misolni   ishlash   ketma   –
ketligini ko`rib chiqamiz va natija olamiz.
Misol:
Bizga quyidagi chiziqli tenglamalar sistemasi berilgan bo‘lsin:
2x + 3y + z = 1
4x +  y + 2z = 2
3x + 2y + 3z =  3
1. Koeffitsientlar matritsasini tuzish:
2. Kengaytirilgan matritsa:
PAGE   \* MERGEFORMAT1 3. Yuqori uchburchak matritsaga aylantirish:
 a. 1-qatorni pivot qator qilamiz (1-pivot element: 2):
  
 b. 2-qatorni pivot qator qilamiz (2-pivot element: -5):
4. Orqaga yo‘naltirilgan almashtirish:
a. z ni oxirgi tenglamadan topamiz: `2z = 2`, ya'ni `z = 1`.
b. y ni ikkinchi tenglamadan topamiz: `-5y = 0`, ya'ni `y = 0`.
c. x ni birinchi tenglamadan topamiz: `2x + 3*0 + 1 = 1`, ya'ni `2x = 0`, `x = 0`.
Yakuniy yechim:
x = 0
y = 0
z = 1
PAGE   \* MERGEFORMAT1 Gauss usuli uchun dastur ishlab chiqilgan dastur natijasi  
Gauss usuli uchun ishlab chiqilgan dastur ishga tushdi. 
Quyidagi misol yechimini dastur yordamida ishlab ko`ramiz:
Misol
x + y + z = 4
2x +  2y + z = 6
3x + 5y + z = 10
Avval tenglamalar sonini kiritamiz, bizda tenglamalar soni =3
PAGE   \* MERGEFORMAT1 4
Keyin   koeffitsentlardan   iborat   matritsani   kiritishimiz   so`raladi.   Biz   bu   yerga
quyidagi matritsani kiritamiz.
( 1 1 1 )
( 2 2 1 )
( 3 5 1 )
PAGE   \* MERGEFORMAT1 Keyingi qadamda erkin hadlardan iborat vektorni kiritishimiz so`raladi. Bu misolda bizda
erkin hadlardan iborat vector quyidagicha :
( 4 6 10 )
Ushbu vektorni kiritib enter tugmasini bosishimiz bilan dastur yechimlarni ekranga
chop etadi.
PAGE   \* MERGEFORMAT1 Dastur natijasi bergan yechim :
x1 = 1
x2 = 1
x3 = 2
Keling, berilgan tenglamalar sistemasini  Gauss  usuli  yordamida qadam-baqadam
yechamiz.
Ushbu sistemani kengaytirilgan matritsa shakliga keltiramiz:
1-qadam: Yuqori uchburchak matritsaga aylantirish
1-pivot elementi: 1
Birinchi qatordagi pivot element - 1.
2-qatorni yangilash:
2-qatorni 1-qatorning 2-multiplikatori bilan kamaytiramiz:
3-qatorni yangilash:
3-qatorni 1-qatorning 3-multiplikatori bilan kamaytiramiz:
2-pivot elementi: 2 (R3[2,2] elementi)
3-qatorni yangilash:
3-qatorni 2-qatorning -2/1-multiplikatori bilan kamaytiramiz:
PAGE   \* MERGEFORMAT1 Bu yerda ko‘rishimiz mumkinki, ikkinchi qatorni diagonal element nolga teng, bu
muammoni ko‘rsatadi. Qatorlar o‘rnini almashtirishimiz mumkin:
Orqaga yo‘naltirilgan almashtirish (Back Substitution)
3-qator (z ni topamiz):
-1z = -2
z = 2
2-qator (y ni topamiz):
0y + 2(-2) = -2
2y - 4 = -2
2y = 2
y = 1
1-qator (x ni topamiz):
1x + 1y + 1z = 4
x = 1
Shunday qilib, bizning tenglamalar sistemasining yechimi quyidagicha chiqdi:
x = 1
y = 1
z = 2
PAGE   \* MERGEFORMAT1 XULOSA
Ushbu   kurs   ishida   biz   chiziqli   tenglamalar   tizimini   Gauss   usuli   yordamida   yechish
dasturini ishlab chiqish bo‘yicha oz bulsada ma'lumotga ega buldik. Biz Gaussni usulining
nazariy   asoslarini   o‘rganish,   uning   turli   sohalardagi   ahamiyatini   tushunish   va   muqobil
usullar bilan solishtirishdan boshladik. Keyin biz amaliy sohaga o‘tdik, chiziqli tizimlarni
samarali va aniq hal qila oladigan C++ dasturini o‘rganishga harakat qildik.
  Qattiq   sinov   va   tasdiqlash   orqali   biz   dasturimizning   to‘g‘riligi   va   mustahkamligini
tasdiqladik,   uning   ishlashini   tahlil   qildik   va   yaxshilash   uchun   potentsial   yo‘nalishlarni
muhokama   qildik.   Bizning   dasturimiz   nafaqat   Gaussni   yo‘q   qilish   usulining
samaradorligini,   balki   nazariy   tushunchalarni   amaliy   dasturlash   ko‘nikmalari   bilan
birlashtirishni ham namoyish etdi.
Xulosa   qilib   aytadigan   bo‘lsak,   ushbu   kurs   ishi     muammolarni   hal   qilishda   raqamli
usullarning kuchiga dalil bo‘lib xizmat qiladi. Gauss usuli dasturini ishlab chiqish nafaqat
chiziqli   algebra   haqidagi   tushunchamizni   chuqurlashtirdi,   balki   matematik   algoritmlarni
funktsional   kodga   tarjima   qilish   qobiliyatimizni   ham   oshirdi.   Oldinga   qarab,   ushbu
poydevor   raqamli   hisoblash   va   algoritmlarni   ishlab   chiqish   bo‘yicha   keyingi   bosqichlar
uchun fundament bo‘lib xizmat qilishi mumkin, bu bizga ilm-fan, muhandislik va boshqa
sohalardagi tobora murakkab muammolarni hal qilish imkonini beradi.
PAGE   \* MERGEFORMAT1          FOYDALANILGAN ADABIYOTLAR
1. Bjarne Straustrup. Programmiong: Principles and Practice Using C++
(2 nd
 Edition). Person Educatoin, Inc. 2014. second printing, 2014 g .
2. Kondzyuba S.P., Gromov V.M. Delphi 6/7. Baza dannix I prilojeniya. M-Sankt-
Peretburg-Kiev, 2002 g.
3. Mirziyoev   Sh.M.   Erkin   va   farovon,   demokatik   O‘zbeksiton   davlatini   birga   barpo
etamiz. 2017.
4. Straustrup   B.   Yazik   programmirovaniye   na   yazike   C++.   Trete   izdane,   M.:
Binom,2014.
5. Shmidskiy   Ya.K.   Programmirovaniye   na   yazike     C++;   Samouchitel.   Uchebniy
posobie. Dialektika. 361 str, 2004 g.
6. Asharina   N.A.   Osnovi   programmirovaniya   na   yazikax   C,   C++.   Uchebniy
kusr.M.:2012 g,
7. Podbelskiy V.V. Yazik C++ M.: Finansi I statiska, 2006.
8. Mirziyoev   Sh.M.   Qonun   ustuvozligi   va   isnon   manfaatlarini   ta’minlash   -   yurt
taraqqiyoti va xalq farovonligining garovi. 2017.
9.   Mirziyoev   Sh.M.   Buyuk   kelajagimiz   mard   va   oolijonab   xalqimiz   bilan   birga
quramiz. 2017.
PAGE   \* MERGEFORMAT1

Chiziqli algebraik tenglama lar tizimini yechishning Gauss usuli uchun dastur ishlab chiqish Reja: I. Kirish. II. Asosiy qism. II.1. Gaus usuli uchun dastur yaratish bosqichlari. II.2. Dasturni ishlab chiqish II.3. Dasturni lohalash. III. Xulosa. IV. Foydalanilgan adabiyotlar. PAGE \* MERGEFORMAT1

KIRISH Gauss usuli, shuningdek, Gaussni yo‘q qilish deb ham ataladi, chiziqli tenglamalar tizimini echish uchun ishlatiladigan chiziqli algebrada asosiy algoritmdir. U berilgan tizimni yuqori uchburchak shaklga aylantiradi, undan yechimlarni orqaga almashtirish orqali osongina olish mumkin. Ushbu usul nafaqat matematikada, balki fan va muhandislik fanlari boylab ko‘plab ilovalarda ham asosiy hisoblanadi. Chiziqli Chiziqli tenglamalar tizimlarini echish turli sohalarda, jumladan, hodisalarni modellashtirish uchun fizikada, sxemalar tahlili va strukturaviy tahlil uchun muhandislikda, iqtisodiy tizimlarni modellashtirish uchun iqtisodda va algoritmlar va grafikalar uchun informatikada muhim ahamiyatga ega. Gauss yo‘q qilish usuli to‘g‘ridan-to‘g‘ri amalga oshirilishi va aniq echimlarni taqdim etishda samaradorligi uchun qadrlanadi. Ushbu kurs ishining maqsadi chiziqli tenglamalar tizimini echish uchun Gauss usulini qo‘llaydigan dasturini ishlab chiqishdan iborat. Ushbu dastur har xil turdagi chiziqli tizimlarni boshqarishga qodir bo‘lgan samarali, foydalanuvchilarga qulay va mustahkam bo‘lishga qaratilgan. Dasturni ishlab chiqish nafaqat Gauss usulini qo‘llashni ko‘rsatibgina qolmay, balki raqamli usullar va algoritmni amalga oshirishni tushunishni ham oshiradi. Nazariy bilimlarni amaliy kodlash ko‘nikmalari bilan integratsiyalashgan holda, ushbu kurs ishi Gauss usuli yordamida chiziqli tenglamalar tizimini yechishda kompleks yondashuvni beradi. PAGE \* MERGEFORMAT1

I. Dasturda foydalanilgan funksiyalar . Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur yaratish uchun siz quyidagi bosqichlarni o‘tkazing: 1. Ma'lumotlar : Birinchi qadam, dastur uchun kerakli ma'lumotlarni belgilashdir. Bu ma'lumotlar, chiziqli algebraik tenglamalarni, ularning ko‘ffitsiyentlarini, o‘zgaruvchilar sonini va boshqa kerakli ma'lumotlarni o‘z ichiga oladi. 2. Chiziqli algebraik tenglamalarni yechish : Dasturda, berilgan chiziqli algebraik tenglamalarni yechish uchun yordamchi funksiyalar yozish kerak bo‘ladi. Bu funksiyalar Gauss usuli orqali tenglamalarni yechish uchun kerak bo‘ladi. 3. Gauss usuli implementatsiyasi : Gauss usuli yechish algoritmini dastur ichiga qo‘llab- quvvatlash kerak bo‘ladi. Bu algoritm o‘zgaruvchilarni va matnlar ustida amallarni bajaradi, uning natijasini topadi va chiziqli algebraik tenglamalarni yechadi. 4. Natijalarni chiqarish : Yechim natijalarini dastur chiqarishi juda muhimdir. Natijalar tezkor yoki dastur muhiti uchun kerakli bo‘lsa, dastur natijalarni konsolga, faylga yoki boshqa muhitga chiqarishi mumkin. 5. Dasturni tekshirish va to‘liqroq ishlatish : Yozilgan dastur muvaffaqiyatli ishga tushirilgandan so‘ng, uning to‘liqroq ishlatilishi va tekshirilishi kerak bo‘ladi. Bu qadamda, dastur xato emasligini, yechimni to‘g‘ri hisoblashni va qo‘shimcha funktsiyalarni qo‘llab-quvvatlashni ta'minlashga yordam beradi. Dastur yozishda chiziqli algebraik tenglamalarni yechish uchun Python, MATLAB yoki boshqa matematik dasturlash tillaridan foydalanishingiz mumkin. Bu tillar yechimni topish va dasturning boshqa qismlarini yozishda juda foydali bo‘ladi.Aniqlash uchun, dastur yaratish jarayonida qo‘llaniladigan boshqa ma'lumotlarni keltirib o‘tamiz: Chiziqli algebraik tenglamalar : Dastur uchun muhim ma'lumotlar, chiziqli algebraik tenglamalardir. Bu tenglamalar, xususan, ko‘ffitsiyentlar va o‘zgaruvchilar orqali ifodalangan. Misol uchun, ax+by=cax + by = c ax + by = c shaklidagi chiziqli algebraik PAGE \* MERGEFORMAT1

tenglama quyidagi ko‘ffitsiyentlarga ega bo‘ladi: aa a , bb b , va cc c . Bu ko‘ffitsiyentlar dasturda ishlatiladi. 1. Gauss usuli : Gauss usuli, chiziqli algebraik tenglamalarni yechishda o‘zini ko‘rsatadi. Bu usul orqali, chiziqli algebraik tenglamalarni yechishdagi qadam-qadamlik jarayonlar bajariladi, ma'lumotlar ustida operatsiyalar amalga oshiriladi va yechim topiladi. 2. Matnlar ustida amallar : Dasturda, matnlar ustida qadam-qadamlik amallar bajarish uchun funksiyalar yoziladi. Bu funksiyalar Gauss usuli yechimini amalga oshirishda yordam beradi, misol uchun, ko‘ffitsiyentlarni qayta hisoblash va yechimni topish uchun. 3. O‘zgaruvchilar va ma'lumotlar : Dastur uchun zarur o‘zgaruvchilar va ma'lumotlar belgilanadi. Bu, yechimni topish jarayonida yordam beradi va dasturni boshqarishga imkon beradi. 4. Natijalar : Gauss usuli yechish jarayonidan keyingi natijalar dastur tomonidan chiqariladi. Bu natijalar dastur foydalanuvchisiga yechimni beradi, o‘zgaruvchilar va ma'lumotlar sifatida ishlatiladi. 5. Dasturni interfeysi : Dastur foydalanuvchisi bilan muloqotda bo‘lish uchun kerakli interfeysni o‘z ichiga oladi. Bu interfeys, dastur ma'lumotlarini kiritish, yechimni topish va natijalarni chiqarish uchun qulayliklar taqdim etadi Bu ma'lumotlar dastur yaratish jarayonida kerak bo‘ladi va dasturning funksionali va amaliyoti bilan bog‘liq. Dasturni qanday yozishni qo‘llanish muhitiga va maqsadlarga qarab belgilash juda muhimdir. Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur yaratish jarayonida quyidagi muhim konseptlarga e'tibor bering: 1. Qanday ko‘rinishda ma'lumotlar kiritiladi : Foydalanuvchidan ma'lumotlar qanday ko‘rinishda kiritiladi? Ma'lumotlar interaktiv shaklda miqyosiylik yoki fayldan o‘qib olish shaklida kiritilishi mumkin. PAGE \* MERGEFORMAT1

2. Ma'lumotlarni tekshirish va to‘g‘rilash : Foydalanuvchidan kiritilgan ma'lumotlarni tekshirish va to‘g‘rilash funksiyalarini dasturda qo‘llash lozim. Bu, ma'lumotlar to‘g‘ri formatda bo‘lishini ta'minlash uchun juda muhimdir. 3. Gauss usulining joriyatisi : Gauss usuli qanday amalga oshiriladi? Uni qanday implementatsiya qilish kerakligi, ya'ni o‘zgaruvchilar bilan qanday ishlovchi funksiyalar va algoritmlar kerakligi. 4. Yechimning natijalari va ularga ishlov berish : Yechimning natijalari qanday shaklda chiqariladi? Natijalar qanday saqlanadi va ularga qanday ishlov beriladi? 5. Xatolar va istisnolar : Dastur yozishda yuzaga kelishi mumkin bo‘lgan xatolar va istisnolar qanday qaror qilinishi kerakligi. Bu, dasturni robust va foydalanuvchiga foydali qilish uchun muhimdir. 6. Dasturni test qilish : Dastur yaratildiktan so‘ng, uni test qilish va uning to‘g‘ri ishlashini tekshirish kerak. Bu, dasturda xatoliklar mavjudligini aniqlash va ularni to‘g‘rilashga imkon beradi. Bu muhim konseptlar dastur yaratish jarayonida e'tirof etilishi kerak bo‘lgan ma'lumotlardir. Dastur yozish uchun bu konseptlarni tushunish, dasturni samarali va foydali qilishga yordam beradi. II . Dasturni ishlab chiqish . Talablarni tahlil qilish. Dasturni ishlab chiqishdan oldin talablar va cheklovlarni tushunish juda muhimdir. Gaussni yo‘q qilish dasturiga qo‘yiladigan asosiy talablar: Kirish bilan ishlash : Dastur chiziqli tenglamalar tizimini ifodalovchi kengaytirilgan matritsa shaklida kiritilgan ma'lumotlarni qabul qilishi kerak. Qayta ishlash : Dastur tenglamalar tizimini yechish uchun Gauss yo‘q qilish usulini amalga oshirishi kerak. Chiqish : Dastur yechimni tenglamalar tizimiga chiqarishi yoki yechimlar yo‘qligini yoki cheksiz ko‘p echimlarni ko‘rsatishi kerak. PAGE \* MERGEFORMAT1