# Solve multiple equations in one go

Consider the following code:

a1 := 2
b1 := 1
a2 := 1
b2 := 1/2
x1 := 0
y1 := 1
x2 := 0
y2 := 4

cSol = Solve[
a1 (a1^2 b2^2 m^2 + b1^2 (b2^2 - (c + m x1 - y1)^2)) ==
b2 (a1^2 (a2^2 m^2 + b2^2) - a2^2 (c + m x2 - y2)^2), c];
cc = cSol[[All, 1, 2]];
FullSimplify[TableForm[Table[cc[[i]], {i, 1, 2}]]]


which gives the two values $-2$ and $2$ as output.

I then want to do the following equation solving

Solve[(a1^2 m (cc[] - y1) - b1^2 x1)^2 ==
(a1^2 m^2 + b1^2)*(b1^2 x1^2 + a1^2 (cc[] - y1)^2 - a1^2 b2^2), m]
Solve[(a1^2 m (cc[] - y1) - b1^2 x1)^2 ==
(a1^2 m^2 + b1^2)*(b1^2 x1^2 + a1^2 (cc[] - y1)^2 - a1^2 b2^2), m]


for both values of $c$, in one sweep go, and thereby giving me four values for $m$ as output.

How do I do that without having to solve the equation for both c[] and c[] one at the time, but instead do it in one sweep go?

P.S. I used more or less the same technique as when solving for $c$, before I delete my code by mistake, and now I can't figure out how to do it again. :-(

First of all you may use the solutions for $c$ in their original Rule form as this is more elegant than using parts:

Solve[
(a1^2 m (c - y1) - b1^2 x1)^2 == (a1^2 m^2 + b1^2)*(b1^2 x1^2 +
a1^2 (c - y1)^2 - a1^2 b2^2), m
] /. cSol // Flatten


{m -> -(Sqrt/2), m -> Sqrt/2, m -> -(Sqrt/2), m -> Sqrt/2}

But to do it in one sweep, why not simply do:

eq1 =  a1 (a1^2 b2^2 m^2 + b1^2 (b2^2 - (c + m x1 - y1)^2)) ==
b2 (a1^2 (a2^2 m^2 + b2^2) - a2^2 (c + m x2 - y2)^2);
eq2 = (a1^2 m (c - y1) - b1^2 x1)^2 == (a1^2 m^2 + b1^2)*(b1^2 x1^2 +
a1^2 (c - y1)^2 - a1^2 b2^2);

sol = Solve[ eq1 && eq2, {m, c} ]


{{m -> -(Sqrt/2), c -> -2}, {m -> Sqrt/2, c -> -2}, {m -> -(Sqrt/2), c -> 2}, {m -> Sqrt/2, c -> 2}}

To get the $m$ values you simply do:

m /. sol


$\left\{-\frac{\sqrt{35}}{2},\frac{\sqrt{35}}{2},-\frac{\sqrt{3}}{2},\frac{\sqrt{3}}{2}\right\}$

• Awesome! (I'm a novice when it comes to using Mathematica.) – Svend Tveskæg Apr 15 '17 at 17:44

"In one go": Subtract one side from the other, multiply the sides, set equal to zero, and solve:

Solve[0 == Times @@ ((a1^2 m (cc - y1) - b1^2 x1)^2 == (a1^2 m^2 +
b1^2)*(b1^2 x1^2 + a1^2 (cc - y1)^2 - a1^2 b2^2) /.
Equal -> Subtract),
m]
(*  {{m -> -(Sqrt/2)}, {m -> Sqrt/2}, {m -> -(Sqrt/2)}, {m -> Sqrt/2}}  *)


But it might be better to solve each and join the solutions:

Join @@ Table[
Solve[(a1^2 m (ci - y1) - b1^2 x1)^2 == (a1^2 m^2 +
b1^2)*(b1^2 x1^2 + a1^2 (ci - y1)^2 - a1^2 b2^2), m],
{ci, cc}]
(*  {{m -> -(Sqrt/2)}, {m -> Sqrt/2}, {m -> -(Sqrt/2)}, {m -> Sqrt/2}}  *)