Re: R: Problem with circles in complex plane
- To: mathgroup at smc.vnet.net
- Subject: [mg61128] Re: R: [mg61095] Problem with circles in complex plane
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Tue, 11 Oct 2005 03:20:21 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 10 Oct 2005, at 19:05, Daniele Lupo wrote: >> >> > > The fact is that I must to find a symbolic solution: for every P, > Q, G that > satisfy myu conditions (absolute value, real number and so on), I > want to > find the g value that define the tangent circle. > > I hope that's more clear... > What is not clear is how you managed to get a symbolic formula, if you did. I have not tried it very hard, but on quick glance I do not think there is any way to do so "reliably". Solve will only give you reliable general solutions for algebraic equations: basically polynomial and rational functions. It can also solve equations with radicals but this is much harder and time consuming and may produce extraneous solutions. Now, the equation that you get if you apply Solve without any massaging is transcendental (it involves the function Abs) and when Mathematica solves such equations it can fail to find all solutions. This is normal. So if you want to get all solutions you need to convert the equation to a basically algebraic form. This can be done, if you make some assumptions. I will assume that we know that there exists an real solution between 0 and 1. Once we do that we can proceed as follows. We start with your definitions: In[1]:= CF = G/(Q + 1); In[2]:= RF = Sqrt[Q^2 + (1 - Abs[G]^2)*Q]/(Q + 1); In[3]:= Cg = (g*Conjugate[P])/(1 - Abs[P]^2*(1 - g)); In[4]:= Rg = (Sqrt[1 - g]*(1 - Abs[P]^2))/(1 - Abs[P]^2*(1 - g)); In[5]:= rul = {G -> -0.4608904699810983 + 0.11491290040984217*I, Q -> 0.3, P -> -0.8363463602974097 + 0.16256926406081632*I} Out[5]= {G -> -0.4608904699810983 + 0.11491290040984217*I, Q -> 0.3, P -> -0.8363463602974097 + 0.16256926406081632*I} Now, I am assuming that g is a solution of the equation Abs[CF - Cg]^2 - (RF + Rg)^2==0 (I am trying to minimize the number of square roots) and moreover than it is a real solution and that it lies between 0 and 1. This makes it possible to transform the equation as follows: eq = Simplify[ComplexExpand[Abs[CF - Cg]^2 - (RF + Rg)^2, {P, G}, TargetFunctions -> {Re, Im}], 0 < g < 1] /. rul ((0.16256926406081632*g)/(0.7259040000000001*(g - 1) + 1) + 0.08839453877680166)^2 + ((0.8363463602974097*g)/(0.7259040000000001*(g - 1) + 1) - 0.35453113075469095)^2 + (0.07512861721599995*(g - 1))/ (0.7259040000000001*(g - 1) + 1)^2 - (0.2394020778504835*((g - 1)^2)^(1/4))/ (0.7259040000000001*(g - 1) + 1) - 0.19071745562130174 As you can see this is now an algebraic equation. We can now use NSolve: In[7]:= NSolve[eq == 0, g] Out[7]= {{g -> 0.9136201753885588}} > but, as I said, but I think that a symbolic solution > must exist. In this case, I don't understand why with FindRoot I > find the > solution (considering numeric approximation), while with Solve, that's > symbolic method, I obtain wrong values, because Solve gives me > solutions. > Maybe I think that Solve gives a wrong result in this case? A Solve > bug? I > don't want to think this. > Solve does not find all solutions because it can't reliably solve transcendental equations. It gives you some solutions, which may be actually extraneous. > equations cannot be solved, I use FindRoot but, if Solve gives me > solutions, > I don't understand why these don't match my problem. If solution is > symbolic, why I don't obtain the right solution? It's not a numeric > problem... > > You are right, it is not a problem with numerical stability, it is just a problem with transcendental equations. You have ot be able to produce an algebraic equation first before you can use Solve reliably. Andrzej Kozlowski