diff --git a/tests/test_utils.py b/tests/test_utils.py index d5faed3..f48651e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -12,4 +12,8 @@ def test_quadroots_1(): assert (np.abs(roots[0] - x1_exact) < 1e-14) and (np.abs(roots[1] - x2_exact)) < 1e-14 def test_chebD_1(): - pass + n=2 + exact = [[ 1.5, -2.0, 0.5], [ 0.5, 0.0, -0.5], [-0.5, 2.0, -1.5]] + diffMatrix, grid = ch.chebD(n) + checkArr = diffMatrix - exact + assert(np.all(checkArr < 1e-14)) diff --git a/utils/chebutils.py b/utils/chebutils.py index 0d7e38a..cf47567 100644 --- a/utils/chebutils.py +++ b/utils/chebutils.py @@ -2,8 +2,19 @@ def chebD(n): """ - Hint: https://people.maths.ox.ac.uk/trefethen/book.pdf, Chapter 6, pages - 51-55. + Computes a spectral differentiation matrix and Chebysev grid + + Parameters + ---------- + n: + An integer defining the number of grid points (n+1) + + Returns + ------- + D: (n+1)x(n+1) matrix + differentiation matrix + x: (n+1)-d array + Chebysev grid """ if n == 0: x = 1; D = 0; w = 0 diff --git a/utils/quadroots.py b/utils/quadroots.py index 460f2b1..4cb77ed 100644 --- a/utils/quadroots.py +++ b/utils/quadroots.py @@ -21,7 +21,7 @@ def quadroots(a, b, c): Roots of the equation. """ - x1 = (-b + np.sqrt(b**2 - 4*a*c))/2*a - x2 = (-b - np.sqrt(b**2 - 4*a*c))/2*a + x1 = (-b + np.sqrt(b**2 - 4*a*c))/(2*a) + x2 = (-b - np.sqrt(b**2 - 4*a*c))/(2*a) return (x1, x2)