Complex root of nonlinear complex equation containing besselh
Afficher commentaires plus anciens
I need to find the complex number which will make the real part of the function and the imaginary part, both equals 0.
I have tried fsolve, cxroot(which is a function from this site) and an algorithm of my own based on elemenantary numerical analysis, but none of them works.
Something more, my equations contains besselh(0 and 1,1,k*x) where k is a constant and x a variable. x must be numerical to use besselh on matlab.
I only need one root, and I approximatively know where it is. Is there a solution?
12 commentaires
Walter Roberson
le 7 Juin 2011
If you show the formula then I might be able to find a solution.
Liber-T
le 8 Juin 2011
Liber-T
le 8 Juin 2011
Matt Fig
le 8 Juin 2011
Does either beta or alpha have a particular value you are interested in? You said you knew approximately where the root was, where is that? What is a and b?
Walter Roberson
le 8 Juin 2011
Yikes! And you are sure this has a solution??
It seems to me likely that the exact value of Ko and Ed would have a lot of impact on the solution (if there is one.) It also appears to me that probably your original expression had a number of floating point numbers that got converted in to rational expressions -- is that correct?
Matt Fig
le 8 Juin 2011
Also the values of a and b. I made an initial assumption for a and b, then got several roots, some real and some complex... But it would help if we were given a and b, and a ballpark for alpha and/or beta.
Liber-T
le 8 Juin 2011
Walter Roberson
le 8 Juin 2011
To be honest, what I see after I substitute in the known values, is a formula that is obviously numeric nonsense if evaluated to less than 54 decimal places, and _probably_ numeric nonsense to somewhere in the 120 decimal place range. Evaluating to that precision is, however, completely unjustified by the 2 decimal places of accuracy of Ed, a, and b.
Andrew Newell
le 8 Juin 2011
Is there a stage in your calculations where the problem is simple to state? Perhaps you should go back to this point and find a more direct numerical method to solve it (if it's an ODE, for example, use an ODE solver).
Matt Fig
le 8 Juin 2011
I agree with Walter's assessment. Even if taken at face-value, there seems to be no way the roots are in that range. For example, using the constants you provided:
[A,B]=meshgrid(linspace(-.00024,-.00016),linspace(8.9111,8.9121));
V = f(A,B); % f as you posted...
min(abs(V:))) % Find the minimum magnitude in V
ans =
5.9007e+051
This is not even close to zero! So either your function oscillates wildly in that range, or the range is bogus, or the function is bogus...
Liber-T
le 13 Juin 2011
Walter Roberson
le 13 Juin 2011
I had Maple search for a complex zero in the indicated range. After a number of hours of calculation it indicated that there is no zero there.
Matt, the function does not oscillate wildly, but it has a very steep gradient -- much too steep for any potential zero to be detected by the default number of linspace() steps.
Liber-T: if the formula comes from a determinant, then that would seem to imply that you are looking for places where the original matrix is *not* invertible ? If so then possibly there are better ways to calculate that.
Réponses (0)
Catégories
En savoir plus sur Programming dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!