How to simplify Bessel functions ?
Hello,
I'm studying Helmholtz equation in cylindrical coordinates. I'm using a solution of the scalar Helmholtz equation to build a vector field that could be a solution of the vector Helmholtz equation.
Here is my code with an orthonormal basis in a 3D manifold with cylindrical coordinates. Normally, SVH should be equal to 0 (actually, it is), but Sage doesn't simplify. I've used the simplify function, but it doesn't work. Can someone help me?
%display latex
from sage.manifolds.operators import *
E = Manifold(3,coordinates='cylindrical', name='E') # 3D Manifold in cylindrical coord
Ecyl.<r,ph,z> = E.chart(r'r:(0,+oo) ph:(0,2*pi):\phi z')
k = var('k')
assume(k>=0)
to_orthonormal = E.automorphism_field() # Orthonormal basis q
to_orthonormal[0,0] = 1
to_orthonormal[1,1] = 1/r
to_orthonormal[2,2] = 1
q = Ecyl.frame().new_frame(to_orthonormal, 'q')
E.set_default_frame(q)
eta = E.metric(name='eta', latex_name=r'\eta') #Minkowski metric
eta[0,0] = 1
eta[1,1] = 1
eta[2,2] = 1
h = E.scalar_field(bessel_J(0,sqrt(k^2)*r)*cos(0*z)*cos(0*ph), name='h') #Helmholtz equation solution in cylindrical coord
k2 = -h.laplacian(eta)*h^(-1) # Determination of k^2
H = h*(r*q[0]+z*q[2]) #Definition of a vector field H such that O is a vectorial Helmholtz equation solution
O = H.curl(metric=eta)
SHV = O.laplacian(eta) + k2*O
SHV.display()
Sage solution :
-1/4*((2*bessel_J(2, k*r)*bessel_J(1, k*r) - bessel_J(3, k*r)*bessel_J(0, k*r) + bessel_J(1, k*r)*bessel_J(0, k*r))*k^3*r^2 - 2*(2*bessel_J(1, k*r)^2 - bessel_J(2, k*r)*bessel_J(0, k*r) + bessel_J(0, k*r)^2)*k^2*r + 4*k*bessel_J(1, k*r)*bessel_J(0, k*r))*z/(r^2*bessel_J(0, k*r))
This is equivalent to
2*k^2*bessel_J(2, k)*bessel_J(1, k) - k^2*bessel_J(3, k)*bessel_J(0, k) + k^2*bessel_J(1, k)*bessel_J(0, k) - 4*k*bessel_J(1, k)^2 + 2*k*bessel_J(2, k)*bessel_J(0, k) - 2*k*bessel_J(0, k)^2 + 4*bessel_J(1, k)*bessel_J(0, k)
being zero. Not clear how to reach this conclusion.One could imagine to work out the differential equation satisfied by this expression.
Yeah that's it. Sage makes simplification naturally with spherical Bessel functions but couldn't with Bessel functions.
In wolframscript: