// test_pde_nl.java compile javac -cp . test_pde_nl.java // execute java -cp . test_pde_nl // see test_nav2_newton3.java // needs simeq_newton3.java // U(x) + V(x) + Ux(x) + Vx(x) + U(x)*Ux(x) + V(x)*Vx(x) = F(x) // U(x) = 2*x*x = x1 // V(x) = 3*(x+1)*(x+1)x = x2 // Ux(x) = 4*x = x3 // Vx(x) = 6*x+6 = x4 public class test_pde_nl { int neqn = 4; int nlin = 2; int ntot = neqn+nlin; double A[][] = new double[neqn][ntot]; // //coef U(x) V(x) Ux(x) Vx(x) U*Ux V*Vx unk Y // | A1,1 A1,2 A1,3 A1,4 A1,5 A1,6 | | U(x) | |Y1 | // | A2,1 A2,2 A2,3 A2,4 A2,5 A2,6 | | V(x) | |Y2 | // | A3,1 A3,2 A3,3 A3,4 A3,5 A3,6 |*| Ux(x) |=|Y3 | // | A4,1 A4,2 A4,3 A4,4 A4,5 A4,6 | | Vx(x) | |Y4 | // | | U(x)*Ux(x) | // | | V(v)*Vx(x) | // double Y[] = new double[neqn]; double X[] = new double[ntot]; // solution A X = Y int var1[] = new int[ntot]; // neqn variables then nlin int var2[] = new int[ntot]; // neqn -1 then nlin int var3[] = new int[ntot]; // all -1 int maxitr = 2; // maximum iterations of newton method double b = 0.5; // stability factor double eps = 1.0e-4; Boolean debug = true; public test_pde_nl() // constructor { double x = 1.0; // location of solution double err = 0.0; System.out.println("test_pde_nl.java running"); System.out.println("neqn="+neqn+", nlin="+nlin+", ntot="+ntot); System.out.println("maxitr="+maxitr+", b="+b+", eps="+eps); System.out.println("U(x)+V(x)+Ux(x)+Vx(x)+U(x)*Ux(x)+V(x)*Vx(x)=F(x)"); System.out.println("Making newton3 var1, var2, var3"); for(int i=0; i