// test_nuderiv3dg.java test nuderiv3dg with 36 points // order 1 minimum independent points 4 Ux ... on first degree // order 2 minimum independent points 10 Uxx ... on second degree // order 3 minimum independent points 20 Uxxx ... on third degree // order 4 minimum independent points 35 Uxxxx ... on fourth degree // going beyond minimum points does not improve accuracy // May need more than 35 if not linearly independent class test_nuderiv3dg { test_nuderiv3dg() { int debug = 0; int m, order; int n = 36; // max 4th order this test int ordpt[] = {0, 4, 10, 20, 35}; double x[] = {0.05, 0.14, 0.27, 0.42, 0.57, 0.71, 0.86, 0.04, 0.18, 0.31, 0.43, 0.63, 0.82, 0.95, 0.07, 0.16, 0.33, 0.41, 0.59, 0.82, 0.99, 0.11, 0.21, 0.35, 0.45, 0.65, 0.75, 0.97, 0.06, 0.17, 0.32, 0.46, 0.61, 0.79, 0.92, 0.98}; double y[] = {0.06, 0.05, 0.07, 0.10, 0.13, 0.15, 0.17, 0.30, 0.33, 0.36, 0.39, 0.31, 0.32, 0.37, 0.48, 0.49, 0.52, 0.51, 0.47, 0.50, 0.53, 0.65, 0.77, 0.71, 0.67, 0.67, 0.75, 0.76, 0.92, 0.97, 0.93, 0.98, 0.87, 0.91, 0.93, 0.99}; double z[] = {0.07, 0.28, 0.47, 0.69, 0.91, 0.15, 0.45, 0.68, 0.93, 0.05, 0.26, 0.50, 0.97, 0.08, 0.14, 0.39, 0.65, 0.76, 0.93, 0.27, 0.56, 0.82, 0.99, 0.11, 0.33, 0.72, 0.94, 0.09, 0.22, 0.65, 0.95, 0.10, 0.24, 0.42, 0.65, 0.82}; double U[] = new double[36]; double est, actual, dx, dy; double cx[] = new double[36]; double cy[] = new double[36]; double cz[] = new double[36]; double cxx[] = new double[36]; double cxy[] = new double[36]; double cxz[] = new double[36]; double cyy[] = new double[36]; double cyz[] = new double[36]; double czz[] = new double[36]; double cxxx[] = new double[36]; double cxxy[] = new double[36]; double cxxz[] = new double[36]; double cxyy[] = new double[36]; double cxyz[] = new double[36]; double cxzz[] = new double[36]; double cyyy[] = new double[36]; double cyyz[] = new double[36]; double cyzz[] = new double[36]; double czzz[] = new double[36]; double cxxxx[] = new double[36]; double cxxxy[] = new double[36]; double cxxxz[] = new double[36]; double cxxyy[] = new double[36]; double cxxyz[] = new double[36]; double cxxzz[] = new double[36]; double cxyyy[] = new double[36]; double cxyyz[] = new double[36]; double cxyzz[] = new double[36]; double cxzzz[] = new double[36]; double cyyyy[] = new double[36]; double cyyyz[] = new double[36]; double cyyzz[] = new double[36]; double cyzzz[] = new double[36]; double czzzz[] = new double[36]; int ip[] = new int[36]; double error, maxerror; nuderiv3dg N = new nuderiv3dg(); System.out.println("test_nuderiv3dg.java running"); // f3(x,y,z) is 3th order order = 3; n = ordpt[order]+1; // give extra point to prevent singular for(int i=0; i