5
$\begingroup$
Solve[(47^(u + 1) + 3^(u + 1))/(u + 1) ==(50^1.5)/1.5,u]

The code I tried is above, but it showed me a message problem

"Solve was unable to solve the system with inexact coefficients or the \ system obtained by direct rationalization of inexact numbers present \ in the system. Since many of the methods used by Solve require exact \ input, providing Solve with an exact version of the system may help."

Anyone has any ideas?

I made a Plot too and it worked. So I don't understand why solve failed.

Plot[(47^(u + 1) + 3^(u + 1))/(u + 1), {u, -50, 50}, 
 PlotRange -> {-1, 236}]
$\endgroup$
  • $\begingroup$ Transcendental equations have no closed-form solutions. en.wikipedia.org/wiki/Transcendental_equation. Try NSolve a numeric solver. $\endgroup$ – Mariusz Iwaniuk Jun 21 '18 at 14:51
  • $\begingroup$ Solve can find the exact solution in terms of Root objects. Just restrict the domain to real numbers and rewrite $1.5$ as $3/2$. Solve[(47^(u + 1) + 3^(u + 1))/(u + 1) == (50^(3/2))/(3/2), u, Reals] $\endgroup$ – roman465 Jun 21 '18 at 16:55
  • $\begingroup$ Why wouldn't you immediately make the substitution $u+1 \to v$ and evaluate the numerical value on the r.h.s. (or call it $C$), to simplify things? $\endgroup$ – David G. Stork Jun 21 '18 at 17:36
  • $\begingroup$ Thank you all for your help,I'm new to the software but with your help I've been able to manage! $\endgroup$ – MarV Jun 24 '18 at 12:45
5
$\begingroup$

See the comment by @MariuszIwaniuk. But you still can get the numbers.

With[
 {
  lhseqn = (47^(u + 1) + 3^(u + 1))/(u + 1),
  rhseqn = (50^1.5)/1.5
  },
 {u, lhseqn} /. Solve@Reduce[
    lhseqn == rhseqn
    , u
    , Reals
    ]
 ]

(* {{-0.99133, 235.702}, {0.524412, 235.702}} *)

Plot[
 {(3^(1 + u) + 47^(1 + u))/(1 + u), 235.70226039551585`}
 , {u, -2, 1}
 , Epilog -> {
   Red,
   PointSize[Large],
   Point[
    {
     {-0.9913301038667653`, 235.702260395515`},
     {0.5244122630164348`, 235.7022603955158`}
     }
    ]
   }]

Mathematica graphics

$\endgroup$
  • $\begingroup$ Thank you for your answer it was very specific and it helped! $\endgroup$ – MarV Jun 24 '18 at 12:41
8
$\begingroup$

Solve can solve this equation:

Solve[(47^(u+1)+3^(u+1))/(u+1)==(50^(3/2))/(3/2) && Abs[u]<1,u, Reals]

(* {{u->Root[{500 Sqrt[2]-3^(2+#1)-3 47^(1+#1)+500 Sqrt[2] #1&,-0.99133010386676537502}]},{u->Root[{500 Sqrt[2]-3^(2+#1)-3 47^(1+#1)+500 Sqrt[2] #1&,0.52441226301643480967}]}} *)

This is an exact solution!

N[%]

(* {{u->-0.99133},{u->0.524412}} *)
$\endgroup$
  • $\begingroup$ You don't even need to add Abs[u]<1. At least in v.11.3 $\endgroup$ – roman465 Jun 21 '18 at 19:00
  • $\begingroup$ @roman465. Good observation, thanks. Sometimes such a restriction is necessary. Compare Solve[5/4 Sin[x] == ArcTan[x] , x, Reals], which Mathematica cannot solve, with Solve[5/4 Sin[x] == ArcTan[x] && Abs[x] < 10 , x, Reals], which returns the three solutions. $\endgroup$ – Fred Simons Jun 22 '18 at 6:27
8
$\begingroup$

I have recently been teaching myself to recast root-finding problems in order to use the NDSolve machinery and find multiple roots of a function numerically in one go, so I am taking the opportunity here to give it a go.

First, we recast the equation as a root-finding problem. In other words, instead of looking for $u$ such that lefthandside == righthandside, we look for u such that f[u_] := lefthandside - righthandside crosses zero, if that can be done safely.

We then build a contrived differential equation for which f[u] is a solution and we use NDSolve to solve it, while monitoring the progress of the integration with WhenEvent, looking for zero crossings, which are Sown and collected with Reap:

Clear[f]
f[u_] := (47^(u + 1) + 3^(u + 1))/(u + 1) - (50^1.5)/1.5

sol =
  Reap@
   NDSolve[{
      D[y[u], u] == D[f[u], u], y[0] == f[0],
      WhenEvent[y[u] == 0, Sow[u]]},
     y, {u, -2, 2}
   ];

Note that we have to have an idea of the range wherein we might find the roots, in order to set appropriate integration boundaries, but then again that would be necessary with any other numerical method. Also, NDSolve rightfully complains about a discontinuity in this case, but soldiers on. The result contains our root estimates:

sol[[2, 1]]
(* Out: {-0.99133, 0.524412} *)

Showing that in a plot together with the f[x] function:

Show[
  Plot[f[u], {u, -2, 2}, PlotRange -> 1000],
  ListPlot[
    Callout[
      {#, 0}, Round[#, 0.001],
      LabelStyle -> Directive[Red, Medium]
    ] & /@ sol[[2, 1]],
    PlotStyle -> {Red, PointSize[0.015]}
  ]
]

Mathematica graphics

The root candidates found with this method can also be further refined using FindRoot, using them as initial conditions for the root search.


This technique has been mentioned before on the site. See e.g. Find all roots of an interpolating function, or How can I find solutions for this equation?, and I am sure in other posts that I might have missed.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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