elif i == 0 and j == 1: return 1 elif i == 1 and j == 0: return 0 elif i == 1 and j == 1: return 1 raise ValueError("Wrong i, j (i=%d, j=%d)." % (i, j)) d.define_ode(F, DFDY) d.assign_dofs() Y = zeros(d.ndofs) J = d.assemble_J(Y) error = 1e10 i = 0 while error > 1e-10: F = d.assemble_F(Y) dY = d.solve(J, F) error = d.calculate_error_l2_norm(dY) print "it=%d, l2_norm=%e" % (i, error) Y += dY i += 1 x = Y from pylab import plot, legend, show sln1, sln2 = d.linearize(x, 5) x1, y1 = sln1 x2, y2 = sln2 plot(x1, y1, label="$u_1$") plot(x2, y2, label="$u_2$") legend() show()
elif i == 2 and j == 1: return 1 elif i == 2 and j == 2: return 4 raise ValueError("Wrong i, j (i=%d, j=%d)." % (i, j)) d.define_ode(F, DFDY) ndofs = d.assign_dofs() Y = zeros(ndofs) J = d.assemble_J(Y) error = 1e10 i = 0 while error > 1e-4: F = d.assemble_F(Y) dY = d.solve(J, F) error = d.calculate_error_l2_norm(dY) print "it=%d, l2_norm=%e" % (i, error) Y += dY i += 1 x = Y from pylab import plot, legend, show sln1, sln2, sln3 = d.linearize(x, 5) x1, y1 = sln1 x2, y2 = sln2 x3, y3 = sln3 plot(x1, y1, label="$u_1$") plot(x2, y2, label="$u_2$") plot(x3, y3, label="$u_3$") legend() show()