Skip to content

Feat : Implemented Gaussian Elimination #2810

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Nov 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 deletions DIRECTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
## Ciphers
* [AES](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AES.java)
* [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AESEncryption.java)
* [affineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/affineCipher.java)
* [AffineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AffineCipher.java)
* [Caesar](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Caesar.java)
* [ColumnarTranspositionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ColumnarTranspositionCipher.java)
* [HillCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/HillCipher.java)
* [ProductCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ProductCipher.java)
* [RSA](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/RSA.java)
* [simpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/simpleSubCipher.java)
* [SimpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubCipher.java)
* [SimpleSubstitutionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubstitutionCipher.java)
* [Vigenere](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Vigenere.java)

Expand Down Expand Up @@ -102,6 +101,7 @@
* Stacks
* [BalancedBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/BalancedBrackets.java)
* [DecimalToAnyUsingStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DecimalToAnyUsingStack.java)
* [DuplicateBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DuplicateBrackets.java)
* [InfixToPostfix](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/InfixToPostfix.java)
* [MaximumMinimumWindow](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/MaximumMinimumWindow.java)
* [NodeStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/NodeStack.java)
Expand All @@ -116,6 +116,7 @@
* [BSTRecursive](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursive.java)
* [BSTRecursiveGeneric](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursiveGeneric.java)
* [CeilInBinarySearchTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CeilInBinarySearchTree.java)
* [CheckIfBinaryTreeBalanced](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CheckIfBinaryTreeBalanced.java)
* [CreateBinaryTreeFromInorderPreorder](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBinaryTreeFromInorderPreorder.java)
* [CreateBSTFromSortedArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBSTFromSortedArray.java)
* [FenwickTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/FenwickTree.java)
Expand All @@ -132,6 +133,16 @@
* [ValidBSTOrNot](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/ValidBSTOrNot.java)
* [VerticalOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/VerticalOrderTraversal.java)

## DevUtils
* Nodes
* [LargeTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/LargeTreeNode.java)
* [Node](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/Node.java)
* [SimpleNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleNode.java)
* [SimpleTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleTreeNode.java)
* [TreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/TreeNode.java)
* Searches
* [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Searches/SearchAlgorithm.java)

## DivideAndConquer
* [BinaryExponentiation](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/BinaryExponentiation.java)
* [ClosestPair](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/ClosestPair.java)
Expand All @@ -153,6 +164,7 @@
* [Knapsack](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Knapsack.java)
* [KnapsackMemoization](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/KnapsackMemoization.java)
* [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LevenshteinDistance.java)
* [LongestAlternatingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestAlternatingSubsequence.java)
* [LongestCommonSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestCommonSubsequence.java)
* [LongestIncreasingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestIncreasingSubsequence.java)
* [LongestPalindromicSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestPalindromicSubsequence.java)
Expand Down Expand Up @@ -203,15 +215,18 @@
* [FindMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMin.java)
* [FindMinRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMinRecursion.java)
* [Floor](https://github.com/TheAlgorithms/Java/blob/master/Maths/Floor.java)
* [Gaussian](https://github.com/TheAlgorithms/Java/blob/master/Maths/Gaussian.java)
* [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java)
* [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java)
* [GenericRoot](https://github.com/TheAlgorithms/Java/blob/master/Maths/GenericRoot.java)
* [HarshadNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/HarshadNumber.java)
* [KeithNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KeithNumber.java)
* [KrishnamurthyNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KrishnamurthyNumber.java)
* [LeonardoNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/LeonardoNumber.java)
* [LinearDiophantineEquationsSolver](https://github.com/TheAlgorithms/Java/blob/master/Maths/LinearDiophantineEquationsSolver.java)
* [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.java)
* [MagicSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/MagicSquare.java)
* [MatrixUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/MatrixUtil.java)
* [MaxValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MaxValue.java)
* [Median](https://github.com/TheAlgorithms/Java/blob/master/Maths/Median.java)
* [MinValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MinValue.java)
Expand All @@ -231,13 +246,15 @@
* [PrimeCheck](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeCheck.java)
* [PrimeFactorization](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeFactorization.java)
* [PythagoreanTriple](https://github.com/TheAlgorithms/Java/blob/master/Maths/PythagoreanTriple.java)
* [ReverseNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/ReverseNumber.java)
* [RomanNumeralUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/RomanNumeralUtil.java)
* [SimpsonIntegration](https://github.com/TheAlgorithms/Java/blob/master/Maths/SimpsonIntegration.java)
* [SumOfArithmeticSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfArithmeticSeries.java)
* [SumOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfDigits.java)
* [TrinomialTriangle](https://github.com/TheAlgorithms/Java/blob/master/Maths/TrinomialTriangle.java)
* [VampireNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/VampireNumber.java)
* [VectorCrossProduct](https://github.com/TheAlgorithms/Java/blob/master/Maths/VectorCrossProduct.java)
* [Volume](https://github.com/TheAlgorithms/Java/blob/master/Maths/Volume.java)

## MatrixExponentiation
* [Fibonacci](https://github.com/TheAlgorithms/Java/blob/master/MatrixExponentiation/Fibonacci.java)
Expand All @@ -251,12 +268,16 @@
* [matrixTranspose](https://github.com/TheAlgorithms/Java/blob/master/Misc/matrixTranspose.java)
* [MedianOfRunningArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/MedianOfRunningArray.java)
* [PalindromePrime](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromePrime.java)
* [PalindromeSinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromeSinglyLinkedList.java)
* [RangeInSortedArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/RangeInSortedArray.java)
* [Sort012D](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sort012D.java)
* [Sparcity](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sparcity.java)
* [ThreeSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/ThreeSumProblem.java)
* [TwoSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/TwoSumProblem.java)
* [WordBoggle](https://github.com/TheAlgorithms/Java/blob/master/Misc/WordBoggle.java)

## Others
* [BankersAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/BankersAlgorithm.java)
* [BestFit](https://github.com/TheAlgorithms/Java/blob/master/Others/BestFit.java)
* [BFPRT](https://github.com/TheAlgorithms/Java/blob/master/Others/BFPRT.java)
* [BoyerMoore](https://github.com/TheAlgorithms/Java/blob/master/Others/BoyerMoore.java)
Expand All @@ -271,6 +292,7 @@
* [FirstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/FirstFit.java)
* [FloydTriangle](https://github.com/TheAlgorithms/Java/blob/master/Others/FloydTriangle.java)
* [GuassLegendre](https://github.com/TheAlgorithms/Java/blob/master/Others/GuassLegendre.java)
* [Huffman](https://github.com/TheAlgorithms/Java/blob/master/Others/Huffman.java)
* [Implementing auto completing features using trie](https://github.com/TheAlgorithms/Java/blob/master/Others/Implementing_auto_completing_features_using_trie.java)
* [InsertDeleteInArray](https://github.com/TheAlgorithms/Java/blob/master/Others/InsertDeleteInArray.java)
* [KMP](https://github.com/TheAlgorithms/Java/blob/master/Others/KMP.java)
Expand Down Expand Up @@ -304,10 +326,13 @@
* [TopKWords](https://github.com/TheAlgorithms/Java/blob/master/Others/TopKWords.java)
* [TowerOfHanoi](https://github.com/TheAlgorithms/Java/blob/master/Others/TowerOfHanoi.java)
* [TwoPointers](https://github.com/TheAlgorithms/Java/blob/master/Others/TwoPointers.java)
* [Verhoeff](https://github.com/TheAlgorithms/Java/blob/master/Others/Verhoeff.java)
* [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java)

## Searches
* [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java)
* [BreadthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BreadthFirstSearch.java)
* [DepthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/DepthFirstSearch.java)
* [ExponentalSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/ExponentalSearch.java)
* [FibonacciSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/FibonacciSearch.java)
* [HowManyTimesRotated](https://github.com/TheAlgorithms/Java/blob/master/Searches/HowManyTimesRotated.java)
Expand All @@ -320,7 +345,6 @@
* [MonteCarloTreeSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/MonteCarloTreeSearch.java)
* [PerfectBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/PerfectBinarySearch.java)
* [SaddlebackSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SaddlebackSearch.java)
* [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Searches/SearchAlgorithm.java)
* [SquareRootBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SquareRootBinarySearch.java)
* [TernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/TernarySearch.java)
* [UnionFind](https://github.com/TheAlgorithms/Java/blob/master/Searches/UnionFind.java)
Expand Down
68 changes: 68 additions & 0 deletions Maths/Gaussian.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/**
* \file
* \brief [Gaussian elimination
* method](https://en.wikipedia.org/wiki/Gaussian_elimination)
*/
package Maths;
import java.util.*;

/** Main function */
public class Gaussian {

public static void main(String[] args) {
int mat_size, i, j, step;
Scanner sc = new Scanner(System.in);

System.out.println("Matrix Size : ");
mat_size = sc.nextInt();

double [][] mat = new double[mat_size+1][mat_size+1];
double [][] x = new double[mat_size][mat_size+1];

System.out.println("Enter value of the matrix");
System.out.println(' ');
for (i = 0; i < mat_size; i++) {
for (j = 0; j <= mat_size; j++) {
mat[i][j] = sc.nextInt();
}
}

// perform Gaussian elimination
for (step = 0; step < mat_size - 1; step++) {
for (i = step; i < mat_size - 1; i++) {
double a = (mat[i + 1][step] / mat[step][step]);

for (j = step; j <= mat_size; j++)
mat[i + 1][j] = mat[i + 1][j] - (a * mat[step][j]);
}
}

System.out.println("Matrix using Gaussian Elimination method: ");
System.out.println(" ");
for (i = 0; i < mat_size; i++) {
for (j = 0; j <= mat_size; j++) {
x[i][j] = mat[i][j];
System.out.print(mat[i][j] + " ");
}
System.out.println();
}
System.out.println( "Value of the Gaussian Elimination method: ");
System.out.println(" ");

for (i = mat_size - 1; i >= 0; i--) {
double sum = 0;
for (j = mat_size - 1; j > i; j--) {
x[i][j] = x[j][j] * x[i][j];
sum = x[i][j] + sum;
}
if (x[i][i] == 0){
x[i][i] = 0;
}
else{
x[i][i] = (x[i][mat_size] - sum) / (x[i][i]);
}
System.out.print("x" + i + "=" + x[i][i]);
System.out.println(" ");
}
}
}