Complex root of nonlinear complex equation containing besselh
Mostrar comentarios más antiguos
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 comentarios
Walter Roberson
el 7 de Jun. de 2011
If you show the formula then I might be able to find a solution.
Liber-T
el 8 de Jun. de 2011
Liber-T
el 8 de Jun. de 2011
Matt Fig
el 8 de Jun. de 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
el 8 de Jun. de 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
el 8 de Jun. de 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
el 8 de Jun. de 2011
Walter Roberson
el 8 de Jun. de 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
el 8 de Jun. de 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
el 8 de Jun. de 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
el 13 de Jun. de 2011
Walter Roberson
el 13 de Jun. de 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.
Respuestas (0)
Categorías
Más información sobre Programming en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!