Hướng dẫn gauss jordan method program in c++ - chương trình phương thức gauss jordan trong c ++

- Quảng cáo -

Cập nhật lần cuối vào ngày 23 tháng 3 năm 2016

Phương pháp Gauss-Jordan được sử dụng để phân tích các hệ thống khác nhau của các phương trình đồng thời tuyến tính phát sinh trong kỹ thuật và khoa học. Phương pháp này tìm thấy ứng dụng của nó trong việc kiểm tra một mạng lưới dưới trạng thái ổn định hình sin, sản lượng của một nhà máy hóa học, mạch điện tử bao gồm các yếu tố bất biến, v.v.

Chương trình C cho phương pháp Gauss-Jordan tập trung vào việc giảm hệ thống phương trình thành dạng ma trận đường chéo bằng các hoạt động hàng sao cho giải pháp được lấy trực tiếp. Hơn nữa, nó làm giảm thời gian và nỗ lực đầu tư vào các cuộc điều chế trở lại để tìm ra những điều chưa biết, nhưng đòi hỏi phải tính toán nhiều hơn một chút. (Xem ví dụ)C program for Gauss-Jordan method is focused on reducing the system of equations to a diagonal matrix form by row operations such that the solution is obtained directly. Further, it reduces the time and effort invested in back-substitution for finding the unknowns, but requires a little more calculation. (see example)

Phương pháp Gauss-Jordan chỉ đơn giản là một sửa đổi của phương pháp loại bỏ Gauss. Việc loại bỏ các ẩn số được thực hiện không chỉ trong các phương trình dưới đây, mà cả ở trên. Điều đó có nghĩa là - không giống như phương pháp loại bỏ, trong đó những điều chưa biết được loại bỏ khỏi phương trình then chốt, phương pháp này loại bỏ chưa biết khỏi tất cả các phương trình.

Chương trình của phương pháp Gauss-Jordan trong C được trình bày ở đây chéo hóa ma trận đã cho bằng các hoạt động hàng đơn giản. Các tính toán bổ sung có thể hơi tẻ nhạt, nhưng phương pháp này, về tổng thể, có thể được sử dụng hiệu quả cho các hệ phương trình đồng thời tuyến tính nhỏ.Gauss-Jordan Method in C presented here diagonalizes the given matrix by simple row operations. The additional calculations can be a bit tedious, but this method, overall, can be effectively used for small systems of linear simultaneous equations.

Trong chương trình Gauss-Jordan C, ma trận đã cho được đường chéo bằng cách sử dụng quy trình từng bước sau.

  1. Phần tử trong cột đầu tiên và hàng đầu tiên được giảm 1, và sau đó các phần tử còn lại trong cột đầu tiên được thực hiện 0 (không).
  2. Phần tử trong cột thứ hai và hàng thứ hai được thực hiện 1, và sau đó các phần tử khác trong cột thứ hai được giảm xuống còn 0 (không).
  3. Tương tự, các bước 1 và 2 được lặp lại cho các cột và hàng tiếp theo thứ 3, thứ 4 và sau.
  4. Quy trình đường chéo tổng thể được thực hiện theo cách tuần tự, chỉ thực hiện các hoạt động hàng.

Mã nguồn cho phương thức Gauss-Jordan trong C:

#include
int main()
{
    int i,j,k,n;
    float A[20][20],c,x[10];
    printf("\nEnter the size of matrix: ");
    scanf("%d",&n);
    printf("\nEnter the elements of augmented matrix row-wise:\n");
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=(n+1); j++)
        {
            printf(" A[%d][%d]:", i,j);
            scanf("%f",&A[i][j]);
        }
    }
    /* Now finding the elements of diagonal matrix */
    for(j=1; j<=n; j++)
    {
        for(i=1; i<=n; i++)
        {
            if(i!=j)
            {
                c=A[i][j]/A[j][j];
                for(k=1; k<=n+1; k++)
                {
                    A[i][k]=A[i][k]-c*A[j][k];
                }
            }
        }
    }
    printf("\nThe solution is:\n");
    for(i=1; i<=n; i++)
    {
        x[i]=A[i][n+1]/A[i][i];
        printf("\n x%d=%f\n",i,x[i]);
    }
    return(0);
}

Input/Output:

Hướng dẫn gauss jordan method program in c++ - chương trình phương thức gauss jordan trong c ++

Lưu ý: Chúng ta hãy xem xét một hệ thống 10 phương trình đồng thời tuyến tính. Giải quyết điều này bằng phương pháp Gauss-Jordan đòi hỏi tổng cộng 500 phép nhân, trong đó cần thiết trong phương pháp loại bỏ Gauss chỉ là 333.Let us consider a system of 10 linear simultaneous equations. Solving this by Gauss-Jordan method requires a total of 500 multiplication, where that required in the Gauss elimination method is only 333.

Do đó, phương pháp Gauss-Jordan dễ dàng và đơn giản hơn, nhưng đòi hỏi nhiều lao động hơn 50% về mặt hoạt động so với phương pháp loại bỏ Gauss. Và do đó, đối với các hệ thống lớn hơn của các phương trình đồng thời tuyến tính như vậy, phương pháp loại bỏ Gauss là phương pháp được ưu tiên hơn. Tìm thêm thông tin về hai phương pháp ở đây.

Cũng xem, Chương trình Gauss Jordan Matlab Gauss-Jordan Thuật toán/phương pháp lưu trữ thông tin tổng hợp hướng dẫn
Gauss Jordan Matlab Program
Gauss-Jordan Algorithm/Flowchart
Numerical Methods Tutorial Compilation

Mã nguồn cho phương pháp Gauss Jordan bằng ngôn ngữ C ngắn và đơn giản để hiểu. Mã này sẽ được biên dịch trong mã :: khối IDE. Nếu bạn có bất kỳ truy vấn hoặc nghi ngờ nào về phương pháp Gauss-Jordan-cách thức hoạt động và thuật toán mà nó tuân theo, hãy thảo luận về chúng trong phần bình luận.

Trước đó trong thuật toán phương pháp Gauss Jordan và phương thức giả Gauss Jordan, chúng tôi đã thảo luận về một thuật toán và mã giả để giải các hệ thống tuyến tính bằng phương pháp Gauss Jordan. Trong hướng dẫn này, chúng tôi sẽ thực hiện phương pháp này bằng ngôn ngữ lập trình C.

Chương trình hoàn chỉnh cho phương pháp Gauss Jordan sử dụng ngôn ngữ lập trình C


#include
#include
#include

#define SIZE 10

int main()
{
		 float a[SIZE][SIZE], x[SIZE], ratio;
		 int i,j,k,n;
		 clrscr();
		 /* Inputs */
		 /* 1. Reading number of unknowns */
		 printf("Enter number of unknowns: ");
		 scanf("%d", &n);
		 /* 2. Reading Augmented Matrix */
		 printf("Enter coefficients of Augmented Matrix:\n");
		 for(i=1;i<=n;i++)
		 {
			  for(j=1;j<=n+1;j++)
			  {
				   printf("a[%d][%d] = ",i,j);
				   scanf("%f", &a[i][j]);
			  }
		 }
		 /* Applying Gauss Jordan Elimination */
		 for(i=1;i<=n;i++)
		 {
			  if(a[i][i] == 0.0)
			  {
				   printf("Mathematical Error!");
				   exit(0);
			  }
			  for(j=1;j<=n;j++)
			  {
				   if(i!=j)
				   {
					    ratio = a[j][i]/a[i][i];
					    for(k=1;k<=n+1;k++)
					    {
					     	a[j][k] = a[j][k] - ratio*a[i][k];
					    }
				   }
			  }
		 }
		 /* Obtaining Solution */
		 for(i=1;i<=n;i++)
		 {
		  	x[i] = a[i][n+1]/a[i][i];
		 }
		 /* Displaying Solution */
		 printf("\nSolution:\n");
		 for(i=1;i<=n;i++)
		 {
		  	printf("x[%d] = %0.3f\n",i, x[i]);
		 }
		 getch();
		 return(0);
}
Đầu ra: Phương pháp Gauss Jordan để giải các hệ phương trình tuyến tính

Đầu ra

Enter number of unknowns: 4
Enter Coefficients of Augmented Matrix:
a[1]1]= 1
a[1]2]= 2
a[1]3]= 3
a[1]4]= -1
a[1]5]= 10
a[2]1]= 2
a[2]2]= 3
a[2]3]= -3
a[2]4]= -1
a[2]5]= 1
a[3]1]= 2
a[3]2]= -1
a[3]3]= 2
a[3]4]= 3
a[3]5]= 7
a[4]1]= 3
a[4]2]= 2
a[4]3]= -4
a[4]4]= 3
a[4]5]= 2

Solution:
x[1] = 1.000
x[2] = 2.000
x[3] = 2.000
x[4] = 1.000

Bài đọc được đề xuất

  1. Thuật toán phương pháp Gauss Jordan
  2. Gauss Jordan Phương pháp Pseudocode
  3. Phương pháp Gauss Jordan sử dụng C
  4. Phương pháp Gauss Jordan sử dụng C ++

Công thức cho phương pháp Gauss Jordan là gì?

Các bước để loại bỏ Gauss-Jordan nhân hàng trên cùng với một vô hướng để mục hàng đầu của hàng trên cùng trở thành 1. Thêm/trừ bội số của hàng trên cùng với các hàng khác để tất cả các mục khác trong cột chứa mục hàng đầu của hàng trên cùng là tất cả số không.Multiply the top row by a scalar so that top row's leading entry becomes 1. Add/subtract multiples of the top row to the other rows so that all other entries in the column containing the top row's leading entry are all zero.

Phương pháp giải quyết vấn đề Gauss Jordan là gì?

Phương pháp mà chúng tôi đơn giản hóa một ma trận tăng lên thành dạng giảm của nó được gọi là phương pháp loại bỏ Gauss-jordan. Sau khi giảm ma trận tăng cường thứ 2 ở trên bằng phương pháp Gauss-Jordan, chúng ta sẽ có được ma trận được hiển thị. Giải pháp bây giờ có thể dễ dàng tìm thấy bằng cách viết lại từng hàng như một phương trình.

Phương pháp loại bỏ Gauss với ví dụ là gì?

Phương pháp này, được đặc trưng bởi bước loại bỏ các biến, được gọi là loại bỏ Gaussian.Ví dụ 1: Giải hệ thống này: Nhân phương trình đầu tiên với −3 và thêm kết quả vào phương trình thứ hai giúp loại bỏ biến X: phương trình cuối cùng này, −5 y = 5, ngay lập tức ngụ ý y = 1.step‐by‐step elimination of the variables, is called Gaussian elimination. Example 1: Solve this system: Multiplying the first equation by −3 and adding the result to the second equation eliminates the variable x: This final equation, −5 y = −5, immediately implies y = 1.

Tên khác của phương pháp Gauss Jordan là gì?

Sử dụng các hoạt động hàng để chuyển đổi một ma trận thành dạng echelon hàng giảm đôi khi được gọi là loại bỏ Gauss, Jordan.Trong trường hợp này, thuật ngữ loại bỏ Gaussian đề cập đến quá trình này cho đến khi nó đạt đến dạng echelon hàng trên của nó.Gauss–Jordan elimination. In this case, the term Gaussian elimination refers to the process until it has reached its upper triangular, or (unreduced) row echelon form.