Re: Re: Strange empty set of solutions

*To*: mathgroup at smc.vnet.net*Subject*: [mg71862] Re: [mg71814] Re: Strange empty set of solutions*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Fri, 1 Dec 2006 06:22:16 -0500 (EST)*References*: <ekh7pg$sgs$1@smc.vnet.net> <ekjfrf$d7h$1@smc.vnet.net> <200611301105.GAA08424@smc.vnet.net> <16F47A50-AA6E-4277-859D-A8736BD95BEC@mimuw.edu.pl>

Rereading my post below I find that something that I wrote sounds misleading. Namely: > Second, you have three equations and 5 "unknowns". which you can > arbitrarily divide into "variables" (in your case x,y,z} and > parameters (s,c}. This means that you will only get solutions > provided certain relations hold between the parameters. But Solve > gives only "generic" solutions for the variables, where generic > means solutions valid for any values of the parameters. But your > equation obviously has no such solutions. Of course, "in general", in other words, "in most cases", three equations with 3 unknowns and 2 parameters will have solutions valid for all values of the parameters. These are called the "generic cases". But in some "special" cases, there will be solutions only provided the parameters satisfy certain relations. In such "non- generic" cases Solve returns the empty set of solutions, and one needs either to use Reduce to obtain both the relations and the corresponding solutions, or to include one of the parameters among the variables in Solve. I hope this is now clear. Andrzej Kozlowski On 30 Nov 2006, at 21:55, Andrzej Kozlowski wrote: > > On 30 Nov 2006, at 20:05, José Carlos Santos wrote: > >> On 29-11-2006 8:19, Jens-Peer Kuska wrote: >> >>> and we can't read you mind and the memory of your computer >>> so we must imagine a matrix M and write down >> >> Do you want an example? Here it is: >> >> M = {{4/5(c - 1), -2/Sqrt[5]s, 2/5(1 - c)}, >> {2/5(1 - c), -1 + s/Sqrt[5], 4/5 + c/5}, >> {-2s/Sqrt[5], -c, -1 + s/Sqrt[5]}} // N >> >> with c = Cos[Sqrt[5]] and s = Sin[Sqrt[5]]. >> >> If I type >> >> Solve[{M.{x, y, z} == {0, 0, 0}}, {x, y, z}] >> >> I get >> >> {{x -> 0. - 0.0438861 z, y -> 0. + 1. z}} >> >> but if I type >> >> Solve[{M.{x, y, z} == {0, 0, 0}, x^2 + y^2 + z^2 == 1}, {x, y, z}] >> >> then I get the empty set. Why is that? >> >> Best regards, >> >> Jose Carlos Santos >> > > First, is a bad idea to mix arbitrary precision numbers with > algebraic functions such as Solve. Use the definition: > > M = {{4/5(c - 1), -2/Sqrt[5]s, 2/5(1 - c)}, > {2/5(1 - c), -1 + s/Sqrt[5], 4/5 + c/5}, > {-2s/Sqrt[5], -c, -1 + s/Sqrt[5]}} ; > > > Second, you have three equations and 5 "unknowns". which you can > arbitrarily divide into "variables" (in your case x,y,z} and > parameters (s,c}. This means that you will only get solutions > provided certain relations hold between the parameters. But Solve > gives only "generic" solutions for the variables, where generic > means solutions valid for any values of the parameters. But your > equation obviously has no such solutions. > > There are two things you can do. One is to use Reduce: > > Reduce[{M.{x, y, z} == {0, 0, 0}, x^2 + y^2 + z^2 == 1}, {x, y, z}] > > will show you also the relations that have to hold between the > parameters. The other possibility is to treat one of the > "parameters" as a variable: > > Solve[{M.{x, y, z} == {0, 0, 0}, x^2 + y^2 + z^2 == 1}, {x, y, z, c}] > > will give you a (pretty awful) list of solutions for the > "variables" x, y, z and c in terms of the "parameter" s. > > Andrzej Kozlowski > Tokyo, Japan