#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

#### Categories

Member Posts: 1
Hi everyon,

This is CD. I am writing a project which determines the values of Xs (X1, X2, X3..., Xn) using the guassian elimination (Linear Algrebra). The equation is written in a text file. For example, Equation.txt includes the following equations:
I just made up these numbers.
2
3 -3 6
-1 4 9
3
3 4 5 6
7 8 9 10
11 12 13 14

If you take a look at Equation 1, the linear equation should be written as:
2 (the number of equations)
3 -3 6 --> 3X1 - 3X2 = 6
-1 4 9 --> -X1 + 4X2 = 9

Same thing with Equation 2, but there are 3 equations.
3 (the number of equations)
3X1 + 4X2 + 5X3 = 6
7X1 + 8X2 + 9X3 = 10
11X1 + 12X2 + 13X3 = 14

How can store these numbers, which are read from the Equation.txt, in a 2-dimensional array?

Thanks for your time and consideration.

CD

• Member Posts: 272
Let's assume that the number of equations is equal to the number of variables (hence, if there are two equations, then you need to store three numbers for each equation.) Then you can create a two dimensional array by reading the number of equations from the file, n, and create an array of, say, integers:

int[][] = new int[n][n+1];

Then when you read in the next line, you store the numbers in the appropriate slot in the array. What you have to be careful about is parsing the string correctly, but I am assuming you have a method for that. As well, if you are trying to initialize a large matrix, say, 200 equations, then it would be tedious to do that within your main method. You should have a method for initializing the provided row of the matrix (determined by the first dimension of the array) with the values found in the provided string, knowing that there are n variables (determined by the size of the second dimension of the array). Your program would then read in the file line by line, pass each line to the method in a loop, and when the end of the file is reached, then you have initialized the entire matrix.

The problem that you might later encounter is that some systems of equations don't have unique solutions, which is what happens when two of your equations are multiples of each other, or you have a row of 0's. If there are fewer equations than variables, your program should be capable of realizing that, and should initialize the last row(s) of the matrix with 0's. This will help later when it comes to solving the matrix when you can place all the rows containing 0's at the end, and when you have reduced to that point, you are finished, and have to create temporary variables for each unreduced unknown. (If you can't solve for X4, then let X4 = t, and then state the solutions for X1, X2, X3 in terms of a constant and t. If you have more than one unsolved variable, then create another temp variable for each unknown, so that a solution for X1 might look like X1 = 5 - 3t + 2s.)

If you need more help with this, just ask. I just finished a course in this subject (linear algebra) and have made segments of a program to solve (n, n+1) matrices, so I should be able to give you a few pointers that will save your program large amounts of time.

If you have enough memory, you won't have enough disk space.

• USAMember Posts: 0

____ \ http://forcoder.org \ free ebooks and video tutorials about ( JavaScript, Scratch, Objective-C, Swift, Visual Basic, Ruby, PHP, C++, Assembly, Java, MATLAB, Perl, Go, R, C, PL/SQL, Visual Basic .NET, Delphi, Python, C# Kotlin, ML, Prolog, Logo, LabVIEW, Rust, Scala, Julia, COBOL, Awk, SAS, VBScript, Lisp, Scheme, Fortran, Erlang, Lua, Alice, Apex, F#, Ada, Hack, Bash, Transact-SQL, D, Dart, Clojure, Crystal, FoxPro, ABAP )