Ask Your Question

Revision history [back]

The solve() function is not very reliable, since your symbolic expression is actually a polynomial with complex floating-point numbers, you should try to solve it as a polynomial in coefficients in the complex double field:

sage: f.roots(ring=CDF,multiplicities=True)
[(0.0, 3),
 (-1.191972591427096 - 0.28413903550287783*I, 1),
 (-1.1743480625420737 + 0.3499146727612495*I, 1),
 (-0.890209027039199 - 0.8420579186658486*I, 1),
 (-0.8420579186658483 + 0.8902090270391965*I, 1),
 (-0.6340537082641291 + 0.01762452888502273*I, 1),
 (-0.5579188831629702 - 0.3017635643879002*I, 1),
 (-0.5402943542779471 + 0.3322901438762252*I, 1),
 (-0.3499146727612478 - 1.174348062542074*I, 1),
 (-0.33229014387622674 - 0.5402943542779496*I, 1),
 (-0.30176356438790053 + 0.5579188831629717*I, 1),
 (-0.2841390355028776 + 1.1919725914270973*I, 1),
 (-0.01762452888502295 - 0.6340537082641262*I, 1),
 (0.017624528885023357 + 0.6340537082641253*I, 1),
 (0.2841390355028785 - 1.1919725914270978*I, 1),
 (0.3017635643879007 - 0.5579188831629712*I, 1),
 (0.33229014387622596 + 0.5402943542779489*I, 1),
 (0.34991467276124755 + 1.1743480625420706*I, 1),
 (0.5402943542779484 - 0.33229014387622385*I, 1),
 (0.5579188831629713 + 0.30176356438789853*I, 1),
 (0.6340537082641249 - 0.017624528885023315*I, 1),
 (0.8420579186658516 - 0.8902090270392002*I, 1),
 (0.8902090270391929 + 0.8420579186658462*I, 1),
 (1.1743480625420755 - 0.34991467276124694*I, 1),
 (1.1919725914271002 + 0.28413903550287595*I, 1)]