1.Vectorize the implementation of the function for computing the area of a polygon in Exercise 5.6. Make a test function that compares the scalar implementation in Exercise 5.6 and the new vectorized implementation for the test cases used in Exercise 5.6.
2.One can observe (and also mathematically prove) that the solution u(x, t) of the problem in Exercise 9.6 is symmetric around x = 0: u(−x,t) = u(x, t). In such a case, we can split the domain in two and compute u in only one half, [−1, 0] or [0, 1]. At the symmetry line x = 0 we have the symmetry boundary condition ∂u/∂x = 0. Reformulate the problem in Exercise 9.6 such that we compute only for x ∈ [0, 1]. Display the solution and observe that it equals the right part of the solution in Exercise 9.6. Filename: symmetric_gaussian_diffusion.py. Remarks In 2D and 3D problems, where the CPU time to compute a solution of PDE can be hours and days, it is very important to utilize symmetry as we do above to reduce the size of the problem. Also note the remarks in Exercise 9.6 about the constant area under the u(x, t) curve: here, the area is 0.5 and u → 0.5 as t → 0.5 (if the mesh is sufficiently fine—one will get convergence to smaller values for small σ if the mesh is not fine enough to properly resolve a thin-shaped initial condition).