Solving an equation with Hankel-function

조회 수: 3 (최근 30일)
Benjamin
Benjamin 2011년 5월 27일
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

답변 (2개)

Walter Roberson
Walter Roberson 2011년 5월 27일
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 2011년 5월 27일
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
Walter Roberson
Walter Roberson 2011년 5월 27일
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 2011년 5월 27일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by