Skip to content

Commit 9b0543d

Browse files
Sachwin-Kohligithub-actionssiriak
authored
Add Gaussian Elimination (TheAlgorithms#2810)
Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Andrii Siriak <[email protected]>
1 parent ba6a3d6 commit 9b0543d

File tree

2 files changed

+95
-3
lines changed

2 files changed

+95
-3
lines changed

DIRECTORY.md

+27-3
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@
1010
## Ciphers
1111
* [AES](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AES.java)
1212
* [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AESEncryption.java)
13-
* [affineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/affineCipher.java)
1413
* [AffineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AffineCipher.java)
1514
* [Caesar](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Caesar.java)
1615
* [ColumnarTranspositionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ColumnarTranspositionCipher.java)
1716
* [HillCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/HillCipher.java)
1817
* [ProductCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ProductCipher.java)
1918
* [RSA](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/RSA.java)
20-
* [simpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/simpleSubCipher.java)
19+
* [SimpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubCipher.java)
2120
* [SimpleSubstitutionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubstitutionCipher.java)
2221
* [Vigenere](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Vigenere.java)
2322

@@ -102,6 +101,7 @@
102101
* Stacks
103102
* [BalancedBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/BalancedBrackets.java)
104103
* [DecimalToAnyUsingStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DecimalToAnyUsingStack.java)
104+
* [DuplicateBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DuplicateBrackets.java)
105105
* [InfixToPostfix](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/InfixToPostfix.java)
106106
* [MaximumMinimumWindow](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/MaximumMinimumWindow.java)
107107
* [NodeStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/NodeStack.java)
@@ -116,6 +116,7 @@
116116
* [BSTRecursive](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursive.java)
117117
* [BSTRecursiveGeneric](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursiveGeneric.java)
118118
* [CeilInBinarySearchTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CeilInBinarySearchTree.java)
119+
* [CheckIfBinaryTreeBalanced](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CheckIfBinaryTreeBalanced.java)
119120
* [CreateBinaryTreeFromInorderPreorder](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBinaryTreeFromInorderPreorder.java)
120121
* [CreateBSTFromSortedArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBSTFromSortedArray.java)
121122
* [FenwickTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/FenwickTree.java)
@@ -132,6 +133,16 @@
132133
* [ValidBSTOrNot](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/ValidBSTOrNot.java)
133134
* [VerticalOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/VerticalOrderTraversal.java)
134135

136+
## DevUtils
137+
* Nodes
138+
* [LargeTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/LargeTreeNode.java)
139+
* [Node](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/Node.java)
140+
* [SimpleNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleNode.java)
141+
* [SimpleTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleTreeNode.java)
142+
* [TreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/TreeNode.java)
143+
* Searches
144+
* [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Searches/SearchAlgorithm.java)
145+
135146
## DivideAndConquer
136147
* [BinaryExponentiation](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/BinaryExponentiation.java)
137148
* [ClosestPair](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/ClosestPair.java)
@@ -153,6 +164,7 @@
153164
* [Knapsack](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Knapsack.java)
154165
* [KnapsackMemoization](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/KnapsackMemoization.java)
155166
* [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LevenshteinDistance.java)
167+
* [LongestAlternatingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestAlternatingSubsequence.java)
156168
* [LongestCommonSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestCommonSubsequence.java)
157169
* [LongestIncreasingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestIncreasingSubsequence.java)
158170
* [LongestPalindromicSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestPalindromicSubsequence.java)
@@ -203,15 +215,18 @@
203215
* [FindMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMin.java)
204216
* [FindMinRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMinRecursion.java)
205217
* [Floor](https://github.com/TheAlgorithms/Java/blob/master/Maths/Floor.java)
218+
* [Gaussian](https://github.com/TheAlgorithms/Java/blob/master/Maths/Gaussian.java)
206219
* [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java)
207220
* [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java)
208221
* [GenericRoot](https://github.com/TheAlgorithms/Java/blob/master/Maths/GenericRoot.java)
209222
* [HarshadNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/HarshadNumber.java)
210223
* [KeithNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KeithNumber.java)
211224
* [KrishnamurthyNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KrishnamurthyNumber.java)
212225
* [LeonardoNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/LeonardoNumber.java)
226+
* [LinearDiophantineEquationsSolver](https://github.com/TheAlgorithms/Java/blob/master/Maths/LinearDiophantineEquationsSolver.java)
213227
* [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.java)
214228
* [MagicSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/MagicSquare.java)
229+
* [MatrixUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/MatrixUtil.java)
215230
* [MaxValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MaxValue.java)
216231
* [Median](https://github.com/TheAlgorithms/Java/blob/master/Maths/Median.java)
217232
* [MinValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MinValue.java)
@@ -231,13 +246,15 @@
231246
* [PrimeCheck](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeCheck.java)
232247
* [PrimeFactorization](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeFactorization.java)
233248
* [PythagoreanTriple](https://github.com/TheAlgorithms/Java/blob/master/Maths/PythagoreanTriple.java)
249+
* [ReverseNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/ReverseNumber.java)
234250
* [RomanNumeralUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/RomanNumeralUtil.java)
235251
* [SimpsonIntegration](https://github.com/TheAlgorithms/Java/blob/master/Maths/SimpsonIntegration.java)
236252
* [SumOfArithmeticSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfArithmeticSeries.java)
237253
* [SumOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfDigits.java)
238254
* [TrinomialTriangle](https://github.com/TheAlgorithms/Java/blob/master/Maths/TrinomialTriangle.java)
239255
* [VampireNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/VampireNumber.java)
240256
* [VectorCrossProduct](https://github.com/TheAlgorithms/Java/blob/master/Maths/VectorCrossProduct.java)
257+
* [Volume](https://github.com/TheAlgorithms/Java/blob/master/Maths/Volume.java)
241258

242259
## MatrixExponentiation
243260
* [Fibonacci](https://github.com/TheAlgorithms/Java/blob/master/MatrixExponentiation/Fibonacci.java)
@@ -251,12 +268,16 @@
251268
* [matrixTranspose](https://github.com/TheAlgorithms/Java/blob/master/Misc/matrixTranspose.java)
252269
* [MedianOfRunningArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/MedianOfRunningArray.java)
253270
* [PalindromePrime](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromePrime.java)
271+
* [PalindromeSinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromeSinglyLinkedList.java)
254272
* [RangeInSortedArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/RangeInSortedArray.java)
273+
* [Sort012D](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sort012D.java)
255274
* [Sparcity](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sparcity.java)
275+
* [ThreeSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/ThreeSumProblem.java)
256276
* [TwoSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/TwoSumProblem.java)
257277
* [WordBoggle](https://github.com/TheAlgorithms/Java/blob/master/Misc/WordBoggle.java)
258278

259279
## Others
280+
* [BankersAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/BankersAlgorithm.java)
260281
* [BestFit](https://github.com/TheAlgorithms/Java/blob/master/Others/BestFit.java)
261282
* [BFPRT](https://github.com/TheAlgorithms/Java/blob/master/Others/BFPRT.java)
262283
* [BoyerMoore](https://github.com/TheAlgorithms/Java/blob/master/Others/BoyerMoore.java)
@@ -271,6 +292,7 @@
271292
* [FirstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/FirstFit.java)
272293
* [FloydTriangle](https://github.com/TheAlgorithms/Java/blob/master/Others/FloydTriangle.java)
273294
* [GuassLegendre](https://github.com/TheAlgorithms/Java/blob/master/Others/GuassLegendre.java)
295+
* [Huffman](https://github.com/TheAlgorithms/Java/blob/master/Others/Huffman.java)
274296
* [Implementing auto completing features using trie](https://github.com/TheAlgorithms/Java/blob/master/Others/Implementing_auto_completing_features_using_trie.java)
275297
* [InsertDeleteInArray](https://github.com/TheAlgorithms/Java/blob/master/Others/InsertDeleteInArray.java)
276298
* [KMP](https://github.com/TheAlgorithms/Java/blob/master/Others/KMP.java)
@@ -304,10 +326,13 @@
304326
* [TopKWords](https://github.com/TheAlgorithms/Java/blob/master/Others/TopKWords.java)
305327
* [TowerOfHanoi](https://github.com/TheAlgorithms/Java/blob/master/Others/TowerOfHanoi.java)
306328
* [TwoPointers](https://github.com/TheAlgorithms/Java/blob/master/Others/TwoPointers.java)
329+
* [Verhoeff](https://github.com/TheAlgorithms/Java/blob/master/Others/Verhoeff.java)
307330
* [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java)
308331

309332
## Searches
310333
* [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java)
334+
* [BreadthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BreadthFirstSearch.java)
335+
* [DepthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/DepthFirstSearch.java)
311336
* [ExponentalSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/ExponentalSearch.java)
312337
* [FibonacciSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/FibonacciSearch.java)
313338
* [HowManyTimesRotated](https://github.com/TheAlgorithms/Java/blob/master/Searches/HowManyTimesRotated.java)
@@ -320,7 +345,6 @@
320345
* [MonteCarloTreeSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/MonteCarloTreeSearch.java)
321346
* [PerfectBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/PerfectBinarySearch.java)
322347
* [SaddlebackSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SaddlebackSearch.java)
323-
* [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Searches/SearchAlgorithm.java)
324348
* [SquareRootBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SquareRootBinarySearch.java)
325349
* [TernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/TernarySearch.java)
326350
* [UnionFind](https://github.com/TheAlgorithms/Java/blob/master/Searches/UnionFind.java)

Maths/Gaussian.java

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/**
2+
* \file
3+
* \brief [Gaussian elimination
4+
* method](https://en.wikipedia.org/wiki/Gaussian_elimination)
5+
*/
6+
package Maths;
7+
import java.util.*;
8+
9+
/** Main function */
10+
public class Gaussian {
11+
12+
public static void main(String[] args) {
13+
int mat_size, i, j, step;
14+
Scanner sc = new Scanner(System.in);
15+
16+
System.out.println("Matrix Size : ");
17+
mat_size = sc.nextInt();
18+
19+
double [][] mat = new double[mat_size+1][mat_size+1];
20+
double [][] x = new double[mat_size][mat_size+1];
21+
22+
System.out.println("Enter value of the matrix");
23+
System.out.println(' ');
24+
for (i = 0; i < mat_size; i++) {
25+
for (j = 0; j <= mat_size; j++) {
26+
mat[i][j] = sc.nextInt();
27+
}
28+
}
29+
30+
// perform Gaussian elimination
31+
for (step = 0; step < mat_size - 1; step++) {
32+
for (i = step; i < mat_size - 1; i++) {
33+
double a = (mat[i + 1][step] / mat[step][step]);
34+
35+
for (j = step; j <= mat_size; j++)
36+
mat[i + 1][j] = mat[i + 1][j] - (a * mat[step][j]);
37+
}
38+
}
39+
40+
System.out.println("Matrix using Gaussian Elimination method: ");
41+
System.out.println(" ");
42+
for (i = 0; i < mat_size; i++) {
43+
for (j = 0; j <= mat_size; j++) {
44+
x[i][j] = mat[i][j];
45+
System.out.print(mat[i][j] + " ");
46+
}
47+
System.out.println();
48+
}
49+
System.out.println( "Value of the Gaussian Elimination method: ");
50+
System.out.println(" ");
51+
52+
for (i = mat_size - 1; i >= 0; i--) {
53+
double sum = 0;
54+
for (j = mat_size - 1; j > i; j--) {
55+
x[i][j] = x[j][j] * x[i][j];
56+
sum = x[i][j] + sum;
57+
}
58+
if (x[i][i] == 0){
59+
x[i][i] = 0;
60+
}
61+
else{
62+
x[i][i] = (x[i][mat_size] - sum) / (x[i][i]);
63+
}
64+
System.out.print("x" + i + "=" + x[i][i]);
65+
System.out.println(" ");
66+
}
67+
}
68+
}

0 commit comments

Comments
 (0)