Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ ใช้งานการกำจัดแบบ Gauss-Jordan

นี่คือโปรแกรม C++ สำหรับใช้งานการกำจัดแบบ Gauss-Jordan ใช้วิเคราะห์ระบบสมการเชิงเส้นพร้อมกัน โดยเน้นการลดระบบสมการให้เป็นรูปแบบเมทริกซ์แนวทแยงมุมโดยการดำเนินการแถว เพื่อให้ได้คำตอบโดยตรง

อัลกอริทึม

Begin
  n = ขนาดของเมทริกซ์นำเข้า
  เพื่อหาองค์ประกอบของเมทริกซ์แนวทแยงมุม:
    วนลูป nested for j = 0 ถึง n และ i = 0 ถึง n
      องค์ประกอบแถวแรกคอลัมน์แรกทำให้เป็น 1
      แล้วองค์ประกอบที่เหลือในคอลัมน์แรกทำให้เป็น 0
      ทำนองเดียวกัน แถวที่สองคอลัมน์ที่สองทำให้เป็น 1
      แล้วองค์ประกอบอื่นในคอลัมน์ที่สองลดให้เป็น 0 และต่อไป
  พิมพ์คำตอบที่คำนวณได้ทั้งหมด
End

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
  int i, j, k, n;
  float a[10][10], b, x[10];
  printf("\nEnter the size of matrix: ");
  scanf("%d", &n);
  printf("\nEnter the elements of augmented matrix (rowwise):\n");
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= (n + 1); j++) {
      cout << "A[" << i << ", " << j << " ]=";
      cin >> a[i][j];
    }
  }
  // หาองค์ประกอบของเมทริกซ์แนวทแยงมุม
  for (j = 1; j <= n; j++) {
    for (i = 1; i <= n; i++) {
      if (i != j) {
        b = a[i][j] / a[j][j];
        for (k = 1; k <= n + 1; k++) {
          a[i][k] = a[i][k] - b * a[j][k];
        }
      }
    }
  }
  cout << "\nThe solution is:\n";
  for (i = 1; i <= n; i++) {
    x[i] = a[i][n + 1] / a[i][i];
    cout << "x" << i << "=" << x[i] << " ";
  }
  return 0;
}

ผลลัพธ์

Enter the size of matrix: 3
Enter the elements of augmented matrix row-wise:
A[1, 1 ]=1
A[1, 2 ]=2
A[1, 3 ]=-4
A[1, 4 ]=2
A[2, 1 ]=7
A[2, 2 ]=6
A[2, 3 ]=-2
A[2, 4 ]=-5
A[3, 1 ]=0
A[3, 2 ]=-3
A[3, 3 ]=-5
A[3, 4 ]=-8
The solution is:
x1=-2.89831 x2=2.5678 x3=0.059322