Menu

#3030 solve entering endless loop on a kind of simple task

None
open
nobody
5
2015-09-29
2015-09-27
Lutz Vieweg
No

Upon entering this not-too-difficult task, Maxima (and also Sage) enter never-ending loops:

m1:0.1593017578125;
m2:78.84375;
c1:0.8359375;
c2:18.8515625;
c3:18.6875;

assume(L>0);
assume(N>0);

solve( L= ((N^(1/m2)-c1) / (c2-c3*N^(1/m2)))^(1/m1), N); 

Discussion

  • Lutz Vieweg

    Lutz Vieweg - 2015-09-27

    I should mention that I expected a result like N = ( (c1+c2 * L^m1) / (1+c3 * L^m1))^m2

     

    Last edit: Lutz Vieweg 2015-09-27
  • sslavi

    sslavi - 2015-09-28

    Hi Lutz,
    it is probably true that Maxima should not hang but rather return an error message. But it is also true that a simple re-arrangement of the equation allows Maxima to give the solution. So rather than bug, I would call this a misunderstanding of Maxima's capabilities and what it is supposed to do.
    We should imo never forget that Maxima is just a tool. It still requires a human guide in order to perform the correct flow of calculations. We cannot just write an arbitrarily complex equation and say "ok Maxima, now solve this". We need to work it out a bit before calling the "solve" function.
    While it might look like a limit, it is actually a very positive feature because it allows us to have a control over the calculation process. So, whenever Maxima seem to be unable to return an answer, the first thing to do is to try to re-arrange the problem and see if it helps. For example, I have noticed that by performing the following steps:
    1) reducing the number of fractions and power terms in the equation, and
    2) separating the variables (avoiding mixed-variable terms)
    in order to increase the probability of getting a useful result from the Maxima.
    See the attachment, with a re-arrangement of your problem which yields a required solution. Notice how the equation appears muche more neat (a single-liner with a clear separation between L and N variables) at the end of the re-writing, just before the "solve" command was used.
    Hope it helps
    Cheers

     

    Last edit: sslavi 2015-09-28
  • sslavi

    sslavi - 2015-09-29

    Or like the attached example, which finds a symbolic solution for N.
    Cheers

     
  • sslavi

    sslavi - 2015-09-29

    I would rather call a bug the way Maxima behaves in the latest example.
    When the solve() command is launched, it asks some questions about the type and sign of variables, but then gives the same solution regardless of the answer to these questions.

     

Log in to post a comment.

Auth0 Logo