Message Boards Message Boards


Problems with Assumptions for Integrate and Reduce

Posted 9 years ago
6 Replies
2 Total Likes

Hi - Im using Mathematica 9 Home edition and having some trouble. This is kind of a messy equation, but maybe there is something simple I am missing. The problem came about with the following equation. All parameters are positive, and I know that (1 + [Alpha]) (1 - [Alpha] (t/[Lambda])^k) must be positive for everything to be "nice", but I don't get what Mathematica is doing here:

In[87]:= Assuming[x > 0 && ? > 0 && k > 0 && ? > 0, 
   k (1 + ?) (1 - ? (t/?)^k)^(
    1/?) (t/?)^k)/t, {t, 0, x}]]]

Out[87]= ConditionalExpression[?^-k (?^k + 
    E^((I ?)/?) (-1 + ? (x/?)^k)^(
     1/?) (x^k ? - ?^k)), (?/x)^
   k < ? && x ?^(1/k) <= ?]

Which I know is wrong, there should be no E^((I [Pi])/[Alpha]) in there. Also, the two constraints at the answer are mutually contradictory, they can never evaluate to true. Furthermore, if I set [Lambda]==1 in the assumptions, the E^((I [Pi])/[Alpha]) disappears and I get a correct answer. I think it might have to do with this:

Assuming[x > 0 && ? > 0 && k > 0 && ? > 0, Reduce[x ?^(1/k) <= ?, ?]]

During evaluation of In[101]:= Reduce::nsmet: This system cannot be solved with the methods available to Reduce. >>

I don't see what the problem is - it should be easily reduced, all parameters are positive.

Thanks for any help -

POSTED BY: Paul Reiser
6 Replies
Posted 9 years ago

I have tried to narrow things down. The E^((I [Pi])/\a) term does not make things complex, necessarily. My problem boils down to

Assuming[k > 0 && a > 0 && y > 1/a, FullSimplify[Exp[I [Pi]/a] (-1 + a y)^(1/a) == (1 - a y)^(1/a)]]

yields True, but when I substitute y^k for y in the above expression, it returns unsimplifed. I think that for k>0 there should be no problem. Do I have the mathematics wrong, or is Mathematica dropping the ball here?

Thanks Paul Reiser

POSTED BY: Paul Reiser
Posted 9 years ago

Hi - Thanks for the good info - I'm sorry I didn't check the equation after I copied and pasted it, and I thought maybe it would display properly if cut and pasted from the post. I am using Mathematica 9 Home Edition, and the equation is (in plain letters):

Assuming[x>0&&a>0&&k>0&&m>0,FullSimplify[Integrate[(k(1+a)(1-a (t/m)^k)^(1/a)(t/m)^k)/t,{t, 0, x}]]]

I cut and pasted the above, just to be sure it survived the process, and then I quit the kernel before evaluating, and I get the answer:

ConditionalExpression[1 + E^((I [Pi])/a) (a - (m/x)^k)^(1 + 1/a) (m/x)^(-(1 + 1/a) k), (m/x)^k < a && a^(1/k) x <= m]

(copying and pasting the output looks good on my Mathematica) I'm fairly sure the Exp[i [Pi]/a] term should not be there, but what really concerns me is the condition. Since all parameters are positive, it appears to be invariably False.

To Sean Clarke - Thanks for the note on Reduce - I did not know that, and that solves some puzzles I have been dealing with. However, using Solve as you suggests gives me "Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>" and I am very interested in everything about this equation.

I don't expect anyone to obsess over the mathematical intricacies of the equation, just to see if the outputs match on other versions, or some obvious syntax problem I am having.

  • Paul
POSTED BY: Paul Reiser

Does seem to be a strange result. Will take a look.

POSTED BY: Daniel Lichtblau

There seems to be an issue again with how your code is being posted on the forum. If you can see, there's square brackets around Alpha and Lambda and some of it is a hyperlink.

So we know exactly what you're seeing, can you copy the code, run it as plaintext, and then code as plaintext the output?

What version of Mathematica are you using?

POSTED BY: Sean Clarke

In[2]:= FullSimplify[ Integrate(k (1 + [Alpha]) (1 - [Alpha^ k)^(1/[Alpha]) (t/[Lambda])^k)/t, {t, 0, x}]]

Out[2]= ConditionalExpression[ 1 - (1 - [Alpha] (x/[Lambda])^k)^( 1/[Alpha]) + [Alpha] (1 - [Alpha] (x/[Lambda])^k)^( 1/[Alpha]) (x/[Lambda])^k, Re[k] > 0]

POSTED BY: S M Blinder

I'm not seeing the same issue. Most likely this is being caused by something else that has been defined at some point.

Save any work you have and then restart Mathematica so that it has a fresh kernel. After that try evaluating the following code:

Assuming[x > 0 && Alpha > 0 && k > 0 && Lambda > 0, 
  Integrate[(k (1 + Alpha) (1 - Alpha^k)^(1/Alpha) (t/Lambda)^k)/t, {t, 0, x}]]

This is essentially the same syntax above but without any special characters. Does this work for you? It should give:

(1 + Alpha) (1 - Alpha^k)^(1/Alpha) (x/Lambda)^k

Concerning this piece of code:

Assuming[x > 0 && Alpha > 0 && k > 0 && Lambda > 0, Reduce[x Alpha^(1/k) <= Lambda, Alpha]]

Assuming[...., SomeFunction[....]] is syntactic sugar for SomeFunction[.....,Assumptions->....]. Reduce in this case doesn't have an assumptions option, so Assuming effectively does nothing here.

The operation might be best done an equality instead and done with Solve. (x Alpha^(1/k) == Lambda)

Assuming[x > 0 && Alpha > 0 && k > 0 && Lambda > 0, 
 Solve[x Alpha^(1/k) == Lambda, Alpha]]

Once you have where they're equal, you can label which regions satisfy the original inequality.

POSTED BY: Sean Clarke
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract