コード例 #1
0
ファイル: test_simplify.py プロジェクト: zh597588308/sympy
def test_besselsimp():
    from sympy import besselj, besseli, cosh, cosine_transform, bessely
    assert besselsimp(exp(-I*pi*y/2)*besseli(y, z*exp_polar(I*pi/2))) == \
        besselj(y, z)
    assert besselsimp(exp(-I*pi*a/2)*besseli(a, 2*sqrt(x)*exp_polar(I*pi/2))) == \
        besselj(a, 2*sqrt(x))
    assert besselsimp(sqrt(2)*sqrt(pi)*x**Rational(1, 4)*exp(I*pi/4)*exp(-I*pi*a/2) *
                      besseli(Rational(-1, 2), sqrt(x)*exp_polar(I*pi/2)) *
                      besseli(a, sqrt(x)*exp_polar(I*pi/2))/2) == \
        besselj(a, sqrt(x)) * cos(sqrt(x))
    assert besselsimp(besseli(Rational(-1, 2), z)) == \
        sqrt(2)*cosh(z)/(sqrt(pi)*sqrt(z))
    assert besselsimp(besseli(a, z*exp_polar(-I*pi/2))) == \
        exp(-I*pi*a/2)*besselj(a, z)
    assert cosine_transform(1/t*sin(a/t), t, y) == \
        sqrt(2)*sqrt(pi)*besselj(0, 2*sqrt(a)*sqrt(y))/2

    assert besselsimp(x**2*(a*(-2*besselj(5*I, x) + besselj(-2 + 5*I, x) +
    besselj(2 + 5*I, x)) + b*(-2*bessely(5*I, x) + bessely(-2 + 5*I, x) +
    bessely(2 + 5*I, x)))/4 + x*(a*(besselj(-1 + 5*I, x)/2 - besselj(1 + 5*I, x)/2)
    + b*(bessely(-1 + 5*I, x)/2 - bessely(1 + 5*I, x)/2)) + (x**2 + 25)*(a*besselj(5*I, x)
    + b*bessely(5*I, x))) == 0

    assert besselsimp(81*x**2*(a*(besselj(Rational(-5, 3), 9*x) - 2*besselj(Rational(1, 3), 9*x) + besselj(Rational(7, 3), 9*x))
    + b*(bessely(Rational(-5, 3), 9*x) - 2*bessely(Rational(1, 3), 9*x) + bessely(Rational(7, 3), 9*x)))/4 + x*(a*(9*besselj(Rational(-2, 3), 9*x)/2
    - 9*besselj(Rational(4, 3), 9*x)/2) + b*(9*bessely(Rational(-2, 3), 9*x)/2 - 9*bessely(Rational(4, 3), 9*x)/2)) +
    (81*x**2 - Rational(1, 9))*(a*besselj(Rational(1, 3), 9*x) + b*bessely(Rational(1, 3), 9*x))) == 0

    assert besselsimp(besselj(a-1,x) + besselj(a+1, x) - 2*a*besselj(a, x)/x) == 0

    assert besselsimp(besselj(a-1,x) + besselj(a+1, x) + besselj(a, x)) == (2*a + x)*besselj(a, x)/x

    assert besselsimp(x**2* besselj(a,x) + x**3*besselj(a+1, x) + besselj(a+2, x)) == \
    2*a*x*besselj(a + 1, x) + x**3*besselj(a + 1, x) - x**2*besselj(a + 2, x) + 2*x*besselj(a + 1, x) + besselj(a + 2, x)
コード例 #2
0
ファイル: test_simplify.py プロジェクト: swn1/sympy
def test_besselsimp():
    from sympy import besselj, besseli, exp_polar, cosh, cosine_transform
    assert besselsimp(exp(-I*pi*y/2)*besseli(y, z*exp_polar(I*pi/2))) == \
        besselj(y, z)
    assert besselsimp(exp(-I*pi*a/2)*besseli(a, 2*sqrt(x)*exp_polar(I*pi/2))) == \
        besselj(a, 2*sqrt(x))
    assert besselsimp(sqrt(2)*sqrt(pi)*x**(S(1)/4)*exp(I*pi/4)*exp(-I*pi*a/2) *
                      besseli(-S(1)/2, sqrt(x)*exp_polar(I*pi/2)) *
                      besseli(a, sqrt(x)*exp_polar(I*pi/2))/2) == \
        besselj(a, sqrt(x)) * cos(sqrt(x))
    assert besselsimp(besseli(S(-1)/2, z)) == \
        sqrt(2)*cosh(z)/(sqrt(pi)*sqrt(z))
    assert besselsimp(besseli(a, z*exp_polar(-I*pi/2))) == \
        exp(-I*pi*a/2)*besselj(a, z)
    assert cosine_transform(1/t*sin(a/t), t, y) == \
        sqrt(2)*sqrt(pi)*besselj(0, 2*sqrt(a)*sqrt(y))/2
コード例 #3
0
def test_besselsimp():
    from sympy import besselj, besseli, exp_polar, cosh, cosine_transform
    assert besselsimp(exp(-I*pi*y/2)*besseli(y, z*exp_polar(I*pi/2))) == \
        besselj(y, z)
    assert besselsimp(exp(-I*pi*a/2)*besseli(a, 2*sqrt(x)*exp_polar(I*pi/2))) == \
        besselj(a, 2*sqrt(x))
    assert besselsimp(sqrt(2)*sqrt(pi)*x**(S(1)/4)*exp(I*pi/4)*exp(-I*pi*a/2) *
                      besseli(-S(1)/2, sqrt(x)*exp_polar(I*pi/2)) *
                      besseli(a, sqrt(x)*exp_polar(I*pi/2))/2) == \
        besselj(a, sqrt(x)) * cos(sqrt(x))
    assert besselsimp(besseli(S(-1)/2, z)) == \
        sqrt(2)*cosh(z)/(sqrt(pi)*sqrt(z))
    assert besselsimp(besseli(a, z*exp_polar(-I*pi/2))) == \
        exp(-I*pi*a/2)*besselj(a, z)
    assert cosine_transform(1/t*sin(a/t), t, y) == \
        sqrt(2)*sqrt(pi)*besselj(0, 2*sqrt(a)*sqrt(y))/2
コード例 #4
0
def test_besselsimp():
    from sympy import besselj, besseli, exp_polar, cosh, cosine_transform, bessely
    assert besselsimp(exp(-I*pi*y/2)*besseli(y, z*exp_polar(I*pi/2))) == \
        besselj(y, z)
    assert besselsimp(exp(-I*pi*a/2)*besseli(a, 2*sqrt(x)*exp_polar(I*pi/2))) == \
        besselj(a, 2*sqrt(x))
    assert besselsimp(sqrt(2)*sqrt(pi)*x**(S(1)/4)*exp(I*pi/4)*exp(-I*pi*a/2) *
                      besseli(-S(1)/2, sqrt(x)*exp_polar(I*pi/2)) *
                      besseli(a, sqrt(x)*exp_polar(I*pi/2))/2) == \
        besselj(a, sqrt(x)) * cos(sqrt(x))
    assert besselsimp(besseli(S(-1)/2, z)) == \
        sqrt(2)*cosh(z)/(sqrt(pi)*sqrt(z))
    assert besselsimp(besseli(a, z*exp_polar(-I*pi/2))) == \
        exp(-I*pi*a/2)*besselj(a, z)
    assert cosine_transform(1/t*sin(a/t), t, y) == \
        sqrt(2)*sqrt(pi)*besselj(0, 2*sqrt(a)*sqrt(y))/2

    assert besselsimp(
        x**2 * (a * (-2 * besselj(5 * I, x) + besselj(-2 + 5 * I, x) +
                     besselj(2 + 5 * I, x)) + b *
                (-2 * bessely(5 * I, x) + bessely(-2 + 5 * I, x) +
                 bessely(2 + 5 * I, x))) / 4 + x *
        (a * (besselj(-1 + 5 * I, x) / 2 - besselj(1 + 5 * I, x) / 2) + b *
         (bessely(-1 + 5 * I, x) / 2 - bessely(1 + 5 * I, x) / 2)) +
        (x**2 + 25) * (a * besselj(5 * I, x) + b * bessely(5 * I, x))) == 0

    assert besselsimp(
        81 * x**2 *
        (a * (besselj(-S(5) / 3, 9 * x) - 2 * besselj(S(1) / 3, 9 * x) +
              besselj(S(7) / 3, 9 * x)) + b *
         (bessely(-S(5) / 3, 9 * x) - 2 * bessely(S(1) / 3, 9 * x) +
          bessely(S(7) / 3, 9 * x))) / 4 + x *
        (a * (9 * besselj(-S(2) / 3, 9 * x) / 2 -
              9 * besselj(S(4) / 3, 9 * x) / 2) + b *
         (9 * bessely(-S(2) / 3, 9 * x) / 2 - 9 * bessely(S(4) / 3, 9 * x) / 2)
         ) + (81 * x**2 - S(1) / 9) *
        (a * besselj(S(1) / 3, 9 * x) + b * bessely(S(1) / 3, 9 * x))) == 0

    assert besselsimp(
        besselj(a - 1, x) + besselj(a + 1, x) - 2 * a * besselj(a, x) / x) == 0

    assert besselsimp(besselj(a - 1, x) + besselj(a + 1, x) +
                      besselj(a, x)) == (2 * a + x) * besselj(a, x) / x

    assert besselsimp(x**2* besselj(a,x) + x**3*besselj(a+1, x) + besselj(a+2, x)) == \
    2*a*x*besselj(a + 1, x) + x**3*besselj(a + 1, x) - x**2*besselj(a + 2, x) + 2*x*besselj(a + 1, x) + besselj(a + 2, x)
コード例 #5
0
 def callback(q, f = '', a = 0, b = 0, L = [], kind = 1):
     ans = ''
     if kind == 1:
         ans = str(sp.fft(L))  # Discrete Fourier Transform
     elif kind == 2:
         ans = str(sp.ifft(L))  # Inverse Discrete Fourier Transform
     elif kind == 3:
         ans = str(sp.ntt(L, prime=3 * 2 ** 8 + 1))  # Performs the Number Theoretic Transform (NTT)
     elif kind == 4:
         ans = str(sp.intt(L, prime=3 * 2 ** 8 + 1))  # Performs the Inverse Number Theoretic Transform (NTT)
     elif kind == 5:
         ans = str(sp.fwht(
             L))  # Performs the Walsh Hadamard Transform (WHT), and uses Hadamard ordering for the sequence.
     elif kind == 6:
         ans = str(sp.ifwht(
             L))  # Performs the Inverse Walsh Hadamard Transform (WHT), and uses Hadamard ordering for the sequence.
     elif kind == 7:
         ans = functions.math_display(str(sp.mellin_transform(f, x, s)))  # Mellin Transform
     elif kind == 8:
         ans = functions.math_display(
             str(sp.inverse_mellin_transform(f, s, x, (a, b))))  # Inverse Mellin Transform
     elif kind == 9:
         from sympy import sin, cos, tan, exp, gamma, sinh, cosh, tanh
         ans = functions.math_display(str(functions.Laplace_Transform(f)))  # Laplace Transform
     elif kind == 10:
         ans = functions.math_display(str(sp.inverse_laplace_transform(f, s, t)))  # Inverse Laplace Transform
     elif kind == 11:
         ans = functions.math_display(str(functions.Fourier_Transform(f, a, b)))  # Fourier Transform
     elif kind == 12:
         ans = functions.math_display(str(sp.inverse_fourier_transform(f, w, x)))  # Invese Fourier Transform
     elif kind == 13:
         ans = functions.math_display(str(sp.sine_transform(f, x, w)))  # Fourier Sine Transform
     elif kind == 14:
         ans = functions.math_display(str(sp.inverse_sine_transform(f, w, x)))  # Inverse Fourier Sine Transform
     elif kind == 15:
         ans = functions.math_display(str(sp.cosine_transform(f, x, w)))  # Fourier Cosine Transform
     elif kind == 16:
         ans = functions.math_display(
             str(sp.inverse_cosine_transform(f, w, x)))  # Inverse Fourier Cosine Transform
     elif kind == 17:
         ans = functions.math_display(str(sp.hankel_transform(f, r, w, 0)))  # Hankel Transform
     elif kind == 18:
         ans = functions.math_display(str(sp.inverse_hankel_transform(f, w, r, 0)))  # Inverse Hankel Transform
     q.put(ans)