sample.java

 private void SolveCircuit(int numberOfNodes) {
         double a[][] = new double[numberOfNodes][numberOfNodes];
        double b[][] = new double[numberOfNodes][1];
	// check that new arrays are zero
        b[0][0] = 1e-3;
	for (int i=0; i<numberofNodes; i++) System.out.println(b[i][0]);

        //Fill matrix a with g values
        for (Resistor res : resList) {
	   double g = 1/res.getValue();
	   int i = res.getNode1() - 1;
	   int j = res.getNode2() - 1;
	   if (i>=0) {
                 a[i][i] += g;
                 if (j>=0) a[i][j] -= g;
	  }
	  if (j>=0) {
                 a[j][j] += g;
                 if (i>=0) a[j][i] -= g;
	  }
        }
 
        Matrix A = new Matrix(a);
        Matrix B = new Matrix(b);

        Matrix v = A.solve(B);

    }


Maintained by John Loomis, updated Tue Feb 25 20:54:25 2020