2 by 2 Simultaneous Equations Code in Java
Well, it has not been much of algebra so far; We are about to have
our first taste of it.
Simultaneous equations can be solved using either
Elimination or Substitution method.
We will be using the Elimination method.
Algorithm Steps to Follow for Simultaneous Equations with 2 unknowns in Java
Consider the equations:
2x + 3y = 13; and
5x - y = 7
Step 1:
Pick a variable to eliminate, either x or y.
Our code will always eliminate the y variable.
Step 2:
Multiply equation 1 by the coefficient of variable y
in equation 2.
⇒
-1 X (2x + 3y = 13)
⇒
-2x - 3y = -13
Step 3:
Multiply equation 2 by the coefficient of variable y
in equation 1.
⇒
3 X (5x - y = 7)
⇒
15x - 3y = 21
Step 4:
Subtract the new equations obtained from Steps 2 and 3.
-2x - 3y = -13
-
15x - 3y = 21
⇒
-17x = -34
Step 5:
Divide the R.H.S. from Step 4 by the coefficient of
x to obtain x.
⇒
x = -34/-17 = 2;
Step 6:
Obtain y by solving for y from any of the
original equations, using the found value of x.
2x + 3y = 13
⇒
2(2) + 3y = 13;
⇒
3y = 13 - 4 = 9;
⇒
y = 9/3 = 3;
Create a new class file;
call it Simultaneous2Unknown.
Type out the adjoining Java code for solving simultaneous equations with 2 unknowns.
Note: You can comment out the SortFraction Java object
code in the main class from the previous lesson or simply continue from where it stopped.
So!
Feel free to try out your own set of x_coefficients,
y_coefficients and equals values for 2 by 2 Simultaneous Equations.
Java code for Simultaneous2Unknown class file
package algebra;
public class Simultaneous2Unknown {
private final double[] x_coefficients;
private final double[] y_coefficients;
private final double[] equals;
private final double[][] eliminator;
private double x_variable;
private double y_variable;
public Simultaneous2Unknown(double[] x_coeff, double[] y_coeff, double[] eq) {
x_coefficients = new double[]{x_coeff[0], x_coeff[1]};
y_coefficients = new double[]{y_coeff[0], y_coeff[1]};
equals = new double[]{eq[0], eq[1]};
eliminator = new double[2][2];
}
public double[] solveSimultaneous() {
eliminator[0][0] = y_coefficients[1] * x_coefficients[0];
eliminator[0][1] = y_coefficients[1] * equals[0];
eliminator[1][0] = y_coefficients[0] * x_coefficients[1];
eliminator[1][1] = y_coefficients[0] * equals[1];
try {
x_variable = (double)(eliminator[0][1] - eliminator[1][1]) / (eliminator[0][0] - eliminator[1][0]);
y_variable = (double)(equals[0] - x_coefficients[0] * x_variable) / y_coefficients[0];
} catch (ArithmeticException e) {
throw e;
}
return new double[]{x_variable, y_variable};
}
}
main class
package algebra;
public class Algebra {
public static void main(String[] args) {
System.out.println("Welcome to our demonstration sequels");
System.out.println("Hope you enjoy (and follow) the lessons.");
System.out.println("");
char[] operator = new char[]{'+', '+'};
double[] result2D;
double[] x_coeff = new double[]{1, -2};
double[] y_coeff = new double[]{1, 1};
double[] equals = new double[]{2, -1};
if (y_coeff[0] < 0) {
operator[0] = '-';
}
if (y_coeff[1] < 0) {
operator[1] = '-';
}
System.out.println("Solving simultaneously the equations:");
System.out.printf("%40s%.2fx %s %.2fy = %.2f%n", "", x_coeff[0],
operator[0], Math.abs(y_coeff[0]), equals[0]);
System.out.printf("%40s%.2fx %s %.2fy = %.2f%n", "", x_coeff[1],
operator[1], Math.abs(y_coeff[1]), equals[1]);
System.out.printf("%n%30s%n%40s", "Yields:", "(x, y) = ");
try {
Simultaneous2Unknown sim2unk;
sim2unk = new Simultaneous2Unknown(x_coeff, y_coeff, equals);
result2D = sim2unk.solveSimultaneous();
System.out.printf("(%.4f, %.4f)%n", result2D[0], result2D[1]);
} catch (ArithmeticException e) {
System.out.printf("(%s, %s)%n", "∞", "∞");
}
System.out.println("\n\n");
}
}