นี่คือโปรแกรม 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