// test_eqn33.java compile javac -cp . test_eqn33.java // execute java -cp . test_eqn33 // solve 2*U(x,y,z)+3*V(x,y,z)+4*W(x,y,z) = C(x,y,z) // solve 4*U(x,y,z)+2*V(x,y,z)+3*W(x,y,z) = D(x,y,z) // solve 3*U(x,y,z)+4*V(x,y,z)+2*W(x,y,z) = E(x,y,z) // for values of U(x,y,z), V(x,y,z), W(x,y,z) at points in a grid // U(x,y,z) = 1+x*x*x-y+z V(x,y,z) = x*x+y*y+z*z W(x,y,z) = 2-x+2y+z*z // unknown functions // C, D, E values given // needs set of 3 equations for 3 variables at each grid // needs simeq.java compiled public class test_eqn33 { int nx = 2; // grid int ny = 3; int nz = 2; int m, mm, ii, jj, kk; int row = 0; // typically S(i,j,k) int grid = nx*ny*nz; // points in grid int nvar = 3; // U(x,y,z) V(x,y,z) W(x,y,z) int neqn = nvar*grid; // nvar unknowns at each grid point double xmin = 1.0; double xmax = 3.0; double ymin = 2.0; double ymax = 4.0; double zmin = 3.0; double zmax = 5.0; double x, y, z, dx, dy, dz, val; double xg[] = new double[nx]; double yg[] = new double[ny]; double zg[] = new double[nz]; double A[][] = new double[neqn][neqn]; // A*X=Y double X[] = new double[neqn]; // unknown double Y[] = new double[neqn]; // known from C(x,y,z),D(x,y,z),E(x,y,z) double err, max_err; public test_eqn33() { System.out.println("test_eqn33.java running"); System.out.println("grid nx="+nx+" ny="+ny+" nz="+nz); System.out.println("grid="+grid+" nvar="+nvar+" neqn="+neqn); System.out.println("xmin="+xmin+" xmax="+xmax); System.out.println("ymin="+ymin+" ymax="+ymax); System.out.println("zmin="+zmin+" zmax="+zmax); System.out.println("x grid xg[]"); xg[0] = xmin; dx = (xmax-xmin)/(double)(nx-1); System.out.println("dx="+dx+" xg[0]="+xmin); for(int i=1; i 0.0001) { System.out.println("A["+i+"]["+j+"]="+A[i][j]); } // end if } // end j } // end i } // end printA public static void main (String[] args) { new test_eqn33(); } } // end test_eqn33.java