Chiziqli algebraik tenglamalar tizimini yechishning Gauss usuli uchun dastur ishlab chiqish

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