// integrate_volume.java // intergral xmin..xmax, ymin..ymax zmin..zmax f(x,y,z) dx dy dz // f(x,y,z) = x*z+y*y+2*x // fx(x,y,z) = 1/2 x*x*z + y*y*x + x*x int x // fxy(x,y,z) = 1/2 x*x*z*y + 1/3 y*y*y*x + x*x*y int xy // fxyz(x,y,z) = 1/4 x*x*z*z*y + 1/3 y*y*y*x*z + x*x*y*z int xyz public class integrate_volume { // problem statement double f(double x, double y, double z) { return x*z + y*y + 2.0*x; } double xmin = 0.1; double xmax = 1.0; double ymin = 0.0; double ymax = 1.1; double zmin = 0.2; double zmax = 0.9; int nx = 6; int ny = 7; int nz = 8; // for checking, e.g. exact calculus solution double intfxx; double intfxy; double intfxz; double intfyy; double intfyz; double intfzz; double v; double err = 0.0; double vchk, intchk, intchk1, intchk2; double dx = (xmax-xmin)/(double)(nx-1); double dy = (ymax-ymin)/(double)(ny-1); double dz = (zmax-zmin)/(double)(nz-1); double dv = dx*dy*dz; double x1, x2, y1, y2, z1, z2; double diff = 0; public integrate_volume() { System.out.println("integrate_volume.java running"); System.out.println("f(x,y,z) = 2*x+y*y+x*z"); System.out.println("xmin="+xmin+" xmax="+xmax+" dx="+dx); System.out.println("ymin="+ymin+" ymax="+ymax+" dy="+dy); System.out.println("zmin="+zmin+" zmax="+zmax+" dz="+dz); System.out.println("integral f(x,y,z) dx dy dz ="); System.out.println(" 1/4 x*x*z*z*y + 1/3 y*y*y*x*z + x*x*z*y"); System.out.println("integral gaulegf3D = "+1.2514424999999632); System.out.println(" "); System.out.println("given F(x) = integral f(x) dx "); System.out.println("integral xmin to xmax f(x) dx = F(xmax)-F(xmin)"); System.out.println("integral f(x,y,z) dx dy dz = "); System.out.println("integral (F(xmax)-F(xmin)) dy dz = "); System.out.println("integral (F(ymax)-F(ymin)) dz = "); System.out.println("F(zmax)-F(zmin)"); System.out.println(" "); System.out.println("xmin="+xmin+", xmax="+xmax+", nx="+nx); System.out.println("ymin="+ymin+", ymax="+ymax+", ny="+ny); System.out.println("zmin="+zmin+", zmax="+zmax+", nx="+nz); v = (xmax-xmin)*(ymax-ymin)*(zmax-zmin); System.out.println("volume ="+v+" dv="+dv); System.out.println(" "); vchk = 0.0; intchk = 0.0; x1 = xmin; x2 = xmin+dx; for(int i=0; i