2
$\begingroup$

Could anyone help me solve this probably simple equation?

Solve[{1 + Cos[s1] Sin[r1] + Cos[s2] Sin[r2] + Sin[r3], 
       Sin[r1] Sin[s1] + Sin[r2] Sin[s2], 
       Cos[r1] + Cos[r2] + Cos[r3]} == {0, 0, 0},
      {s1, r1, s2, r2,  r3}]

Thanks a lot!

$\endgroup$
2
  • $\begingroup$ Three equations and six unknowns? Maybe Reduce could help here. $\endgroup$ Commented Jul 6, 2020 at 14:47
  • $\begingroup$ Thank you for your comment, but it has been changed to 5 variables now. So can you use Reduce and solve the new equation? Thanks a lot. $\endgroup$
    – Tanger
    Commented Jul 6, 2020 at 14:53

2 Answers 2

4
$\begingroup$

Looking at the equations, there are exact solutions when $r_1,r_2,r_3 = \pi/2$ and $s1=s2=(2n-1)\pi$ for $n\in\mathbb{Z}$:

Table[({e1, e2, e3} /. {
    r1 -> π/2, r2 -> π/2, r3 -> π/2, 
    s1 -> (2 n - 1) π, s2 -> (2 n - 1) π}), {n, 0, 5}]

In fact you can go further. Let $p_i=(4m_i+1)$ and $m_i\in\mathbb{Z}$ for $i=1,2,3$, then it appears solutions exist for any combination of integers $m_1,m_2,m_3,n_1,n_2$ where: $$r_1=p_1\pi/2,\ r_2=p_2\pi/2,\ r_3=p_3\pi/2,\ s_1=(2n_1-1)\pi,\ s_2=(2n_2-1)\pi$$

You can generate lots of them like this and all e1,e2,e3 should be zero:

sols = {
     r1 -> (4 #[[1]] + 1) π/2,
     r2 -> (4 #[[2]] + 1) π/2,
     r3 -> (4 #[[3]] + 1) π/2,
     s1 -> (2 #[[4]] - 1) π,
     s2 -> (2 #[[5]] - 1) π} & /@ 
   RandomInteger[{-20, 20}, {100, 5}];
{e1, e2, e3} /. sols

You can get a numerical one by minimizing the sum of squares of each equation:

{e1, e2, e3} = {
   1 + Cos[s1] Sin[r1] + Cos[s2] Sin[r2] + Sin[r3],
   Sin[r1] Sin[s1] + Sin[r2] Sin[s2],
   Cos[r1] + Cos[r2] + Cos[r3]
   };

{error, sol} = NMinimize[e1^2 + e2^2 + e3^2, {r1, r2, r3, s1, s2},
  Method -> {"RandomSearch", "RandomSeed" -> 1234}]

{e1, e2, e3} /. sol

(* {3.27531*10^-32, {r1 -> -2.56633, r2 -> 0.575263, r3 -> -1.5708, 
  s1 -> -0.460101, s2 -> -0.460101}} *)

If you change the "RandomSeed" in NMinimize you can find other solutions. If we use seed 8888 instead we get a different solution:

{6.85631*10^-32, {r1 -> -2.45484, r2 -> 1.77734, r3 -> 0.208308, 
  s1 -> -0.941719, s2 -> -2.5903}}
$\endgroup$
6
  • $\begingroup$ That is some nice thinking. May I ask if you could point to some reference describing the principle behind this ? $\endgroup$
    – Avrana
    Commented Jul 6, 2020 at 14:54
  • $\begingroup$ Thank you for your answer, but the solution to the old equation should not be unique. However, could you find all the solutions to the new and simpler equation in the updated question? Thanks a lot! $\endgroup$
    – Tanger
    Commented Jul 6, 2020 at 15:01
  • 3
    $\begingroup$ @IndrasisMitra it's intuitive. If you have an equation over the reals $f(x)=0$ then you can also solve by minimizing $(f(x))^2$ because it's never negative. $\endgroup$
    – flinty
    Commented Jul 6, 2020 at 15:02
  • $\begingroup$ Thank you for the update, but could you find any other solution that is significantly different from the one you found? Thanks a lot! $\endgroup$
    – Tanger
    Commented Jul 6, 2020 at 15:12
  • $\begingroup$ @Tanger I've updated it - you can find other solutions by changing the "RandomSeed" in the NMinimize's Method option. However do not expect to be able to find all of the solutions this way - only a sample of them. $\endgroup$
    – flinty
    Commented Jul 6, 2020 at 15:17
3
$\begingroup$

You can set any two of the parameters and solve for the other three.

eq = {1 + Cos[s1] Sin[r1] + Cos[s2] Sin[r2] + Sin[r3], 
   Sin[r1] Sin[s1] + Sin[r2] Sin[s2], 
   Cos[r1] + Cos[r2] + Cos[r3]} == {0, 0, 0}

Solve[eq /. {s1 -> π, r1 -> 0}, {s2, r2, r3}]

One solution

Solve[eq /. {s1 -> 1, r1 -> 2}, {s2, r2, r3}] /. {C[1] -> 0, C[2] -> 0, C[3] -> 0} // Simplify

A second solution

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.