Re: FindRoot can NOT handle mixed real and complex variables
- To: mathgroup at smc.vnet.net
- Subject: [mg79982] Re: FindRoot can NOT handle mixed real and complex variables
- From: AES <siegman at stanford.edu>
- Date: Fri, 10 Aug 2007 01:44:27 -0400 (EDT)
- Organization: Stanford University
- References: <200708080853.EAA05884@smc.vnet.net> <f9emsc$lts$1@smc.vnet.net>
In article <f9emsc$lts$1 at smc.vnet.net>,
Curtis Osterhoudt <cfo at lanl.gov> wrote:
> I may be misunderstanding what you want. At least with
>
> $Version
>
> "6.0 for Linux x86 (32-bit) (June 19, 2007)"
>
> the following works, though it homes in on the same roots for every (tested)
> starting value of "DN" between -10^6 and +10^6:
>
> solns = ({#1, FindRoot[{u*BesselJ[1, u]*BesselK[0, w] ==
> w*BesselK[1, w]*BesselJ[0, u], u^2 + w^2 == g,
> Re[g] == input\[Breve]value,
>
> Re[w] == 0}, {{u, -2.39 + 0.17*I}, {w,
> 14.34*I}, {g, -200 + 0.8*I},
> {input\[Breve]value, #1}}]} & ) /@
> Range[-10^6, 10^6, 10^4]
>
>
> Perhaps things will converge to different root values for radically different
> starting values, but this seems to handle the system adequately.
I believe that Curtis and I now agree that this solution does not work
because the "input\[Breve]value" quantity that he introduced is treated
by FindRoot, not as a *fixed* parameter or constraint as desired in the
problem, but as just another variable to be solved for by FindRoot.
So, when you run this code, Re[g] wanders off to new values as FindRoot
goes thru its paces, instead of being held fixed at a specified value as
desired. It only wanders a little ways in the above example, because
the other initial values I supplied are close to the real root.
But, change the initial value 14.34 to 16.0 in the above, and Re[g]
wanders away from -200 by a substantially larger amount.
I received one or two other proposed solutions by email having this same
problem.
I'm beginning to think that FindRoot _really_ can't handle mixed real
and complex quantities -- all the variables that appear in the "vars"
list and that you solve for must either be purely real, or _all_ of them
will be treated as complex????
And if any explicit "I"'s appear in the equations, they're all complex???
And you can put explicit Re[] or Im[] constraints in the equations???
But it will take someone above my pay grade to give authoritative
answers on this. [Meanwhile, I'm getting the numerical answers I need
by other methods.]
- References:
- FindRoot can NOT handle mixed real and complex variables
- From: AES <siegman@stanford.edu>
- FindRoot can NOT handle mixed real and complex variables