Solving an equation with Hankel-function

3 views (last 30 days)
Benjamin
Benjamin on 27 May 2011
Hello,
I have an equation which contains a Hankelfunction:
exp(-i*2*pi/3) * (H1[1/3*(-2y)^(3/2)]) / (H2[1/3*(-2y)^(3/2)]) = 1/(a*sqrt(-2*y))
where H1[] = besselh(2/3,2,...) H2[] = besselh(1/3,2,...)
Is there a way to calculate y for a given a?
Greets Benny

Answers (2)

Walter Roberson
Walter Roberson on 27 May 2011
I tried some things but could not find a symbolic method.
In Maple notion all I found was
-RootOf(4*HankelH2(1/3, (2/3)*sqrt(2)*_Z^3)*a*_Z+HankelH2(2/3, (2/3)*sqrt(2)*_Z^3)*sqrt(2)-I*HankelH2(2/3, (2/3)*sqrt(2)*_Z^3)*sqrt(2)*sqrt(3))^2
-RootOf(4*HankelH2(1/3, -(2/3)*sqrt(2)*_Z^3)*a*_Z+HankelH2(2/3, -(2/3)*sqrt(2)*_Z^3)*sqrt(2)-I*HankelH2(2/3, -(2/3)*sqrt(2)*_Z^3)*sqrt(2)*sqrt(3))^2
Here
"I" is sqrt(-1),
HankelH2(nu,z) = besselh(nu,2,z)
RootOf() indicates the value _Z for which the expression becomes zero
I tried a couple of values for "a" but got complex solutions, probably because of the "i" in your initial equation.

Benjamin
Benjamin on 27 May 2011
Hello Walter,
complex solutions are no problem, thats what i expected... I think i have to change from matlab to maple... just have to look if i can combine it with c#...
by the way, could you write down your maple code, please. thanks a lot!
if anybody finds out a way to calculate it in mathlab, please write it down.
greets benny
  2 Comments
Walter Roberson
Walter Roberson on 27 May 2011
The Maple code was trivial,
solve(exp(-(1/3)*(I*2)*Pi)*HankelH2(1/3, (1/3)*(-2*y)^(3/2))/HankelH2(2/3, (1/3)*(-2*y)^(3/2)) = 1/(a*sqrt(-2*y)),y)
The answer was the same form even when I misspelled HankelH2, so it did not use any properties of HankelH2 in coming to the solution.
Converting the first of the pair to Bessel gives
-RootOf(4*a*_Z*BesselJ(1/3, (2/3)*sqrt(2)*_Z^3) - (4*I)*a*_Z*BesselY(1/3, (2/3)*sqrt(2)*_Z^3) + sqrt(2)*BesselJ(2/3, (2/3)*sqrt(2)*_Z^3) - I*sqrt(2)*BesselY(2/3, (2/3)*sqrt(2)*_Z^3) - I*sqrt(2)*sqrt(3)*BesselJ(2/3, (2/3)*sqrt(2)*_Z^3) - sqrt(2)*sqrt(3)*BesselY(2/3, (2/3)*sqrt(2)*_Z^3))^2
which looks to me like nothing more than a straight forward transformation based upon the definition of the HankelH2 function, with again no special properties used.
Walter Roberson
Walter Roberson on 27 May 2011
MATLAB equivalent with the symbolic toolbox would be
solve('exp(-(1/3)*(I*2)*Pi)*besselh(1/3, 2, (1/3)*(-2*y)^(3/2))/besselh(2/3, 2, (1/3)*(-2*y)^(3/2)) = 1/(a*sqrt(-2*y)),y)','y')
which will likely give a result that looks quite similar to what I posted earlier, but with a different syntax for RootOf().
Do you have the optimization toolbox? fsolve() should work, I think. Unfortunately, MATLAB's fzero() and fminbnd() and fminsearch() that are in basic MATLAB are not suitable as those do not handle complex solutions.

Sign in to comment.

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!