Tôi đang sử dụng sympy để giải quyết một đa thức:Bỏ qua rễ tưởng tượng trong sympy
x = Symbol('x')
y = solve(int(row["scaleA"])*x**3 + int(row["scaleB"])*x**2 + int(row["scaleC"])*x + int(row["scaleD"]), x)
y là một danh sách các giải pháp khả thi. Tuy nhiên, tôi cần phải bỏ qua những hình ảnh ảo và chỉ sử dụng các giải pháp thực tế. Ngoài ra, tôi muốn giải pháp như một giá trị không phải là một biểu thức. Ngay bây giờ có vẻ như:
[-2/3 - 55**(1/3)*(-1/2 - sqrt(3)*I/2)/3, -2/3 - 55**(1/3)*(-1/2 + sqrt(3)*I/2)/3, -55**(1/3)/3 - 2/3]
Tôi cần giá trị của biểu thức cuối cùng (-2.22756). Có chức năng nào trong sympy để đơn giản hóa điều này không?
SymPy có lẽ không phải là thư viện phù hợp để sử dụng nếu bạn chỉ quan tâm đến tính tương đối float/double của gốc. Nếu bạn sử dụng numpy/scipy, bạn có thể sẽ nhận được hiệu suất tốt hơn và mã đơn giản hơn. Và nếu bạn chọn sympy over numpy/scipy vì nó nhỏ hơn bạn có thể nhỏ hơn với mpmath được sử dụng bên trong sympy cho số học (độ chính xác tùy ý không bị giới hạn bởi máy) – Krastanov