# Solving a symbolic inequality

I'm trying to solve the inequality $18bcd - 4b^3d + b^2c^2 - 4c^3 - 27d^2 > 0$ with ${b,c,d} \in \mathbb{R}$ and $c < 0$. The goal is to obtain an expression for $d$.

My guess would be to use solve_ineq() and perhaps assume() for the additional condition, but I can't figure out how. In case of a symbolic equation I'd use

b,c,d = var('b,c,d')
Delta = (18*b*c*d - 4*b^3*d + b^2*c^2 - 4*c^3 - 27*d^2 == 0)
solve(Delta,d)

edit retag close merge delete

Sort by » oldest newest most voted

What version is this? I get with 6.8beta8

sage: b,c,d = var('b,c,d')
sage: Delta = (18*b*c*d - 4*b^3*d + b^2*c^2 - 4*c^3 - 27*d^2 == 0)
sage: solve(Delta,d)
[d == -2/27*b^3 + 1/3*b*c + 2/27*(b^2 - 3*c)^(3/2), d == -2/27*b^3 + 1/3*b*c - 2/27*(b^2 - 3*c)^(3/2)]


which is fine.

more

Your question is unclear: do you want to solve the inequality, or do you want to express $d$ in terms of the other variables, knowing $f(a,b,c,d) > 0$ and $c < 0$?

In the first case, you have a polynomial expression $f(a,b,c,d)$ which you want to be positive. The usual way to solve that is to understand where the expression is zero.

Since $f$ is continuous, it has a fixed sign on each connected component of the complement of this zero locus, so all that remains to understand is on which components $f$ is positive.

In the second case, calling $\Delta$ the fixed value of $f(a,b,c,d)$, notice that the equation $f(a,b,c,d) = \Delta$ can be rewritten as $A * d^2 + B * d + C = 0$, where $A$, $B$, $C$ are expressions in $a$, $b$, $c$, $d$, $\Delta$.

more

In the first case your solution is fine:

var('b,c,d')

assume(c<0)

solve(18bcd - 4b^3d + b^2c^2 - 4c^3 - 27d^2==0,d)

But I would like to know if there is a way to have a solution without "trying to understand" where the sign change. I think is the main point to use a math software. Furthermore it'll be pretty annoying if there is anything like that implemented already as with Mathematica is a one line command

Reduce[{b^2 c^2-4 c^3-4 b^3 d+18 b c d-27 d^2>0,c<0},d]