This is a Java Program to Implement Gaussian Elimination Algorithm. Gaussian elimination (also known as row reduction) is an algorithm for solving systems of linear equations.
Here is the source code of the Java Program to Implement Gaussian Elimination Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/** ** Java Program to Implement Gaussian Elimination Algorithm **/ import java.util.Scanner; /** Class GaussianElimination **/ public class GaussianElimination { public void solve(double[][] A, double[] B) { int N = B.length; for (int k = 0; k < N; k++) { /** find pivot row **/ int max = k; for (int i = k + 1; i < N; i++) if (Math.abs(A[i][k]) > Math.abs(A[max][k])) max = i; /** swap row in A matrix **/ double[] temp = A[k]; A[k] = A[max]; A[max] = temp; /** swap corresponding values in constants matrix **/ double t = B[k]; B[k] = B[max]; B[max] = t; /** pivot within A and B **/ for (int i = k + 1; i < N; i++) { double factor = A[i][k] / A[k][k]; B[i] -= factor * B[k]; for (int j = k; j < N; j++) A[i][j] -= factor * A[k][j]; } } /** Print row echelon form **/ printRowEchelonForm(A, B); /** back substitution **/ double[] solution = new double[N]; for (int i = N - 1; i >= 0; i--) { double sum = 0.0; for (int j = i + 1; j < N; j++) sum += A[i][j] * solution[j]; solution[i] = (B[i] - sum) / A[i][i]; } /** Print solution **/ printSolution(solution); } /** function to print in row echleon form **/ public void printRowEchelonForm(double[][] A, double[] B) { int N = B.length; System.out.println("\nRow Echelon form : "); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) System.out.printf("%.3f ", A[i][j]); System.out.printf("| %.3f\n", B[i]); } System.out.println(); } /** function to print solution **/ public void printSolution(double[] sol) { int N = sol.length; System.out.println("\nSolution : "); for (int i = 0; i < N; i++) System.out.printf("%.3f ", sol[i]); System.out.println(); } /** Main function **/ public static void main (String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Gaussian Elimination Algorithm Test\n"); /** Make an object of GaussianElimination class **/ GaussianElimination ge = new GaussianElimination(); System.out.println("\nEnter number of variables"); int N = scan.nextInt(); double[] B = new double[N]; double[][] A = new double[N][N]; System.out.println("\nEnter "+ N +" equations coefficients "); for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) A[i][j] = scan.nextDouble(); System.out.println("\nEnter "+ N +" solutions"); for (int i = 0; i < N; i++) B[i] = scan.nextDouble(); ge.solve(A,B); } }
Output:
Gaussian Elimination Algorithm Test Enter number of variables 3 Enter 3 equations coefficients 2 1 -1 -3 -1 2 -2 1 2 Enter 3 solutions 8 -11 -3 Row Echelon form : -3.000 -1.000 2.000 | -11.000 0.000 1.667 0.667 | 4.333 0.000 0.000 0.200 | -0.200 Solution : 2.000 3.000 -1.000
Related posts:
Spring Boot Gradle Plugin
HandlerAdapters in Spring MVC
Consuming RESTful Web Services
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Dynamic Proxies in Java
Java Program to Represent Graph Using Incidence Matrix
Vòng lặp for, while, do-while trong Java
Deploy a Spring Boot App to Azure
Spring Security Registration – Resend Verification Email
Java Program to Implement Floyd Cycle Algorithm
Guide to the ConcurrentSkipListMap
Lớp Collectors trong Java 8
Spring Boot - Building RESTful Web Services
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Spring WebClient and OAuth2 Support
Java Program to Implement Graph Structured Stack
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement Johnson’s Algorithm
Lập trình đa luồng trong Java (Java Multi-threading)
Java Program to Solve TSP Using Minimum Spanning Trees
How to Change the Default Port in Spring Boot
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Hashing a Password in Java
Auditing with JPA, Hibernate, and Spring Data JPA
Java Program to Find Transpose of a Graph Matrix
Working with Network Interfaces in Java
Hướng dẫn Java Design Pattern – Observer
Mapping Nested Values with Jackson
Java Program to Implement Aho-Corasick Algorithm for String Matching
Java Program to Optimize Wire Length in Electrical Circuit
Giới thiệu Json Web Token (JWT)
Overflow and Underflow in Java