FindRoot[] with mixed complex and real variables?
- To: mathgroup at smc.vnet.net
- Subject: [mg79563] FindRoot[] with mixed complex and real variables?
- From: AES <siegman at stanford.edu>
- Date: Sun, 29 Jul 2007 00:15:09 -0400 (EDT)
- Organization: Stanford University
I'd like to find the roots of two complex equations, specifically a fiber dispersion equation u * BesselJ[1,u] BesselK[0,w] == w BesselK[1,w] BesselJ[0,u] and a fiber propagation equation u^2 + w^2 == g which involve three complex variables u, w, g, but with the two constraints that Re[g] == DN (an input constant) and Re[w] == 0 (a constraint on the desired solution) so that there are two complex-valued equations and four real variables to be solved for. I've tried writing these equations in the complex form given above with Re[g] == DN and Re[w] == 0 added to the eqns part of FindRoot[]; and using {{u,u0}, {w,w0}, {g,g0}} as the vars. I've tried writing u, w, g in the form u = ur + I ui, w = 0 + I wi, and g= DN + I gi everywhere in the eqns; splitting the second equation into its real and imaginary parts; and using {ur,ur0}, {ui,ui0}, {wi,wi0}, {gi,gi0} as the vars part of FindRoot[]. Neither of these seems to work -- "Number of variables doesn't match number of equations". Is there a straightforward way to do this? (beyond a more complicated workaround I'm now using). If anyone wants to try this, a reasonable set of initial values for the FindRoot[] process, i.e., a set that is close to but not exactly at the desired solution, for a particular choice of the input variable of DN = -200 would be g0 = DN + 0.8 I = -200 + 0.8 I u0 = 2.39 + 0.17 I w0 = 0 + 14.34 I