Finding the points where Bessel functions are equivalent
Hello,
I am trying to repeat some results in a research paper using Matlab. I am having some trouble finding some propagation constants. I suspect Matlab is capable of doing this, but I’m not sure how to go about it. The value I am trying to find is the propagation constant , given in the following:
The values for k, n1, n0 and a are known. Only is unknown. I am trying to find by determining the values for u and w using the following equation:
Where J1 and J0 are Bessel functions of the first kind and K1 and K0 are Bessel functions of the second kind. I have tried solving for this using symbolic logic as follows:
um = 1e-6;
nCore = 1.4682;
nClad = 1.446;
lam = 1.55*um;
k = 2*pi/lam;
a = 8.2*um;
A = 125*um;
syms x
w = (a/2)*sqrt(k^2*nCore^2 – x^2);
u = (a/2)*sqrt(x^2 – k^2*nClad^2);
eqn = (besselj(1, u)/(u*besselj(0, u))) == -1*(besselk(1, w)/(w*besselk(0, w)));
S = vpasolve(eqn, x);
This returns the following:
Warning: Unable to find explicit solution. For options, see help.
> In sym/solve (line 317)
In besselTest (line 24)
The results here are well-known, so I think the issue is with my execution of the problem.
Is there another way to go about this without using symbolic logic?
Thanks!Hello,
I am trying to repeat some results in a research paper using Matlab. I am having some trouble finding some propagation constants. I suspect Matlab is capable of doing this, but I’m not sure how to go about it. The value I am trying to find is the propagation constant , given in the following:
The values for k, n1, n0 and a are known. Only is unknown. I am trying to find by determining the values for u and w using the following equation:
Where J1 and J0 are Bessel functions of the first kind and K1 and K0 are Bessel functions of the second kind. I have tried solving for this using symbolic logic as follows:
um = 1e-6;
nCore = 1.4682;
nClad = 1.446;
lam = 1.55*um;
k = 2*pi/lam;
a = 8.2*um;
A = 125*um;
syms x
w = (a/2)*sqrt(k^2*nCore^2 – x^2);
u = (a/2)*sqrt(x^2 – k^2*nClad^2);
eqn = (besselj(1, u)/(u*besselj(0, u))) == -1*(besselk(1, w)/(w*besselk(0, w)));
S = vpasolve(eqn, x);
This returns the following:
Warning: Unable to find explicit solution. For options, see help.
> In sym/solve (line 317)
In besselTest (line 24)
The results here are well-known, so I think the issue is with my execution of the problem.
Is there another way to go about this without using symbolic logic?
Thanks! Hello,
I am trying to repeat some results in a research paper using Matlab. I am having some trouble finding some propagation constants. I suspect Matlab is capable of doing this, but I’m not sure how to go about it. The value I am trying to find is the propagation constant , given in the following:
The values for k, n1, n0 and a are known. Only is unknown. I am trying to find by determining the values for u and w using the following equation:
Where J1 and J0 are Bessel functions of the first kind and K1 and K0 are Bessel functions of the second kind. I have tried solving for this using symbolic logic as follows:
um = 1e-6;
nCore = 1.4682;
nClad = 1.446;
lam = 1.55*um;
k = 2*pi/lam;
a = 8.2*um;
A = 125*um;
syms x
w = (a/2)*sqrt(k^2*nCore^2 – x^2);
u = (a/2)*sqrt(x^2 – k^2*nClad^2);
eqn = (besselj(1, u)/(u*besselj(0, u))) == -1*(besselk(1, w)/(w*besselk(0, w)));
S = vpasolve(eqn, x);
This returns the following:
Warning: Unable to find explicit solution. For options, see help.
> In sym/solve (line 317)
In besselTest (line 24)
The results here are well-known, so I think the issue is with my execution of the problem.
Is there another way to go about this without using symbolic logic?
Thanks! symbolic, simulation MATLAB Answers — New Questions