Menu

#4793 Solve: incorrect answer

None
not-a-bug
nobody
None
5
2026-06-21
2026-06-21
John Oliver
No

Here is the following maxima system info from bug_report():
Maxima-version: "5.49.0"

Maxima build date: "2026-01-02 21:27:51"

Host type: "x86_64-w64-mingw32"

Lisp implementation type: "SBCL"

Lisp implementation version: "2.6.0"

User dir: "C:/Users/johno/maxima"

Temp dir: "C:/Users/johno/AppData/Local/Temp"

Object dir: "C:/Users/johno/maxima/binary/5_49_0/sbcl/2_6_0"

Frontend: false

Error as follows:

g:48*x^3 - 1;

solve(g,x) gives as the real root

x = (1/26)^(1/3), when the obvious answer is (1/48)^(1/3)

This result occurs with both terminal execution and wxmaxima using 5.49.0. I have inculded the .wxmx and .mac (Not familiar with proper bug reporting, as this is new to me; apologies if this is incorrect.)

1 Attachments

Related

Bugs: #4793

Discussion

  • Stavros Macrakis

    In display2d:false mode, I see

    x = 1/(2*6^(1/3))

    I think you are interpreting the display form2 6^(1/3) as 26^(1/3).

    You can also use the string function to see the linear form.

     
  • Stavros Macrakis

    • status: open --> not-a-bug
     
  • Stavros Macrakis

    In display2d:false mode, I get

    x = 1/(2*6^(1/3))

    I think you are interpreting "2 6^(1/3)" as 26^(1/3).

    On Sun, Jun 21, 2026, 03:30 John Oliver via Maxima-bugs maxima-bugs@lists.sourceforge.net wrote:


    [bugs:#4793] https://sourceforge.net/p/maxima/bugs/4793/ Solve:
    incorrect answer

    Status: open
    Group: None
    Created: Sun Jun 21, 2026 07:29 AM UTC by John Oliver
    Last Updated: Sun Jun 21, 2026 07:29 AM UTC
    Owner: nobody
    Attachments:

    Here is the following maxima system info from bug_report():
    Maxima-version: "5.49.0"

    Maxima build date: "2026-01-02 21:27:51"

    Host type: "x86_64-w64-mingw32"

    Lisp implementation type: "SBCL"

    Lisp implementation version: "2.6.0"

    User dir: "C:/Users/johno/maxima"

    Temp dir: "C:/Users/johno/AppData/Local/Temp"

    Object dir: "C:/Users/johno/maxima/binary/5_49_0/sbcl/2_6_0"

    Frontend: false

    Error as follows:

    g:48*x^3 - 1;

    solve(g,x) gives as the real root

    x = (1/26)^(1/3), when the obvious answer is (1/48)^(1/3)

    This result occurs with both terminal execution and wxmaxima using 5.49.0.
    I have inculded the .wxmx and .mac (Not familiar with proper bug reporting,
    as this is new to me; apologies if this is incorrect.)


    Sent from sourceforge.net because maxima-bugs@lists.sourceforge.net is
    subscribed to https://sourceforge.net/p/maxima/bugs/

    To unsubscribe from further messages, a project admin can change settings
    at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a
    mailing list, you can unsubscribe from the mailing list.


    Maxima-bugs mailing list
    Maxima-bugs@lists.sourceforge.net
    https://lists.sourceforge.net/lists/listinfo/maxima-bugs

     

    Related

    Bugs: #4793

    • Stavros Macrakis

      Here's a little trick to make multiplication visible.

      sols: solve(48*x^3-1,x)
          =>
      
            sqrt(3) %i - 1        sqrt(3) %i + 1        1
       [x = ──────────────, x = - ──────────────, x = ──────]
                   1/3                   1/3             1/3
                4 6                   4 6             2 6
      
      nary("·",120)$    /* added precedence */
      subst("·","*",sols);
      
            1      1
      [x = () · (────) · (sqrt(3) · %i - 1), 
            4      1/3
                  6
      
             1      1
      x = (- ) · (────) · (sqrt(3) · %i + 1), 
             4      1/3
                   6
      
           1      1
      x = () · (────)]
           2      1/3
                 6
      

      That shows the internal structure of the Maxima expression (where division is multiplication by an inverse). Here is how to get a view that follows the usual Maxima external form:

      nary("·",120)$
      show_mult(ex):=
        if mapatom(ex) then ex
        elseif op(ex)="*" then funmake("·",maplist(show_mult,ex))
        else map('show_mult,ex)$
      
      show_mult(sols);
      
           sqrt(3) · %i - 1
      [x = ────────────────, 
                    1/3
              4 · (6   )
      
            sqrt(3) · %i + 1
      x = - ────────────────, 
                     1/3
               4 · (6   )
      
              1
      x = ──────────]
                1/3
          2 · (6   )
      
       

      Last edit: Stavros Macrakis 2026-06-21

Log in to post a comment.

Auth0 Logo