0

I am trying to solve an equation for a variable t under some assumptions.

However, the output produced is completely unclear to me. In particular, Mathematica's output says "Assuming a list of rules" and contains stuff like "#1^6 &" which I can't interpret (even though I understand the operators in general). Can anyone help? The expression I am trying to evaluate is as follows:

Assuming[
  omega == 2 && sigma > 0 && sigma <= 1 && t > 0 && t <= 0.5 && 
    sigma ∈ Reals && omega ∈ Reals && t ∈ Reals,
  Solve[
    (omega*sigma*(1/(omega*(t - 1)) + 1) - (sigma*t)/(t - 1)^2)/
        (omega*sigma*t*(1/(omega*(t - 1)) + 1) + 1) - t/(t - 1)^2 -
      1/(t - 1) - omega + log (omega*sigma*t*(1/(omega*(t - 1)) + 1) + 1)*
        (omega*sigma*(1/(omega*(t - 1)) + 1) - (sigma*t)/(t - 1)^2) +
      omega*(1/(omega*(t - 1)) + 1) -
      2*omega^2*sigma*t*(1/(omega*(t - 1)) + 1)^2 +
      (2*omega*sigma*t^2*(1/(omega*(t - 1)) + 1))/(t - 1)^2 == 0,
    t]]

Any help would be very appreciated.

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
  • 1
    Have you seen this? Let me also offer a tip: anything you see in your output that you don't understand, highlight it and press F1. – J. M.'s missing motivation Sep 30 '17 at 14:40
  • 1
    Your output involves Root objects. Think of them as a generalization of radicals, capable of representing any algebraic number. – John Doty Sep 30 '17 at 14:42
  • Thanks for the links. I looked at many of them, however they're dealing with simply outputting a number. What i am looking for is a closed form expression solved for t. Is there any way to do this? I realize there might be no global closed form solution, but is there any way to at least get multiple local ones? Thanks! – Alex Held Sep 30 '17 at 14:50
  • What you get is the list of closed form solutions. – John Doty Sep 30 '17 at 14:55
  • Sorry, I'm really unexperienced with Mathematica and I just don't get it. I get expressions like t->Root(...). Isn't it just an implicit solution saying that t would be equal to the root of a certain polynomial? what i am looking for instead is a certain function f(sigma,omega) = t* , where t* is the root of the implicit expression above – Alex Held Sep 30 '17 at 15:03
  • 3
    Root[polynomial,n] is essentially the same kind of thing as Sqrt[x], but generalizes to cases where radicals can't go. – John Doty Sep 30 '17 at 15:08
  • 2
    Also, did you mean to use log as a variable? The logarithm is Log[], using brackets, not parentheses. – John Doty Sep 30 '17 at 15:10
  • 1
    Another tip for you. Since you're now (somewhat) familiar with Root[], look at the degree of the polynomial in its first argument. If it's 5 or greater, don't count on getting anything more explicit than that, per Abel and Galois. – J. M.'s missing motivation Sep 30 '17 at 15:35
  • Thanks a lot for your comments, John and J.M.! I tried it as you described and replaced log() by Log[]. What I am getting now is "Solve::nsmet: This system cannot be solved with the methods available to Solve." Is there any possible workaround here? The command I am running is as above, just with Log replaced – Alex Held Sep 30 '17 at 16:14
  • If Solve doesn't work, your next stop is usually Reduce. – Sjoerd Smit Sep 30 '17 at 16:56
  • What if both doesnt work? :) – Alex Held Sep 30 '17 at 18:54
  • 1
    That's the situation quaintly referred to in some circles as "SOL". – J. M.'s missing motivation Sep 30 '17 at 20:09
  • When sigma is given a specific value (and keeping in mind omega is set to 2) then Solve can give a solution. It involves Root objects for transcendental solutions but they evaluate numerically just fine... – Daniel Lichtblau Oct 01 '17 at 15:09
  • ...Try e.g. f[sigma_] := Solve[{(2*sigma*(1/(2*(t - 1)) + 1) - (sigma*t)/(t - 1)^2)/(2*sigma* t*(1/(2*(t - 1)) + 1) + 1) - t/(t - 1)^2 - 1/(t - 1) - 2 + Log [2*sigma*t*(1/(2*(t - 1)) + 1) + 1]*(2*sigma*(1/(2*(t - 1)) + 1) - (sigma*t)/(t - 1)^2) + 2*(1/(2*(t - 1)) + 1) - 2*2^2*sigma* t*(1/(2*(t - 1)) + 1)^2 + (2*2*sigma* t^2*(1/(2*(t - 1)) + 1))/(t - 1)^2 == 0, t > 0, t <= 1/2}, t]; f[1/3] – Daniel Lichtblau Oct 01 '17 at 15:10

1 Answers1

2
  1. Mathematica has transformed your problem into finding the roots of a polynomial of degree 6 in t, which has 6 solutions. As always, it returns the solutions as a list of rules. In this case, each of the solutions is expressed as a Root object, because equations of degree 6 can usually not be solved in terms of radicals.

    See Root in the documentation.

  2. One of your terms is

    log (omega*sigma*t*(1/(omega*(t - 1)) + 1) + 1)*
      (omega*sigma*(1/(omega*(t - 1)) + 1) - (sigma*t)/(t - 1)^2)
    

    The symbol log is being interpreted as a complex number. Is that intentional? Or were you trying to write an expression of form Log[...]? If the latter, then you problem is a simple syntax error.

J. M.'s missing motivation
  • 124,525
  • 11
  • 401
  • 574
m_goldberg
  • 107,779
  • 16
  • 103
  • 257
  • Thanks for your reply! No, it wasn't intentional. However, when I replace log by "Log[...]", the problem persists... – Alex Held Oct 01 '17 at 20:45