Le vendredi 16 novembre 2018 21:52:18 UTC+1, Michael Beeson a écrit :
>
> Thank you, that was very instructive to see the "right way" to start by
> using an appropriate ring.
> I guess you can go on to divide out by the other linear factor and get the
> quadratic equation,
> and solve it, but I got that far myself, and then could not work with the
> solutions of the quadratic equation.
> But you may be able to do that because then they will belong to some
> algebraic number field which
> will come equipped with useful algorithms.
>
Oops, the last command should have been
print("h = .... in enumerate(h.list())))
instead of
print("h = .... in enumerate(g.list())))
and, really, writing a last pretty_print function for the whole polynomial,
and applying it to h, would have been a better way to go.
So here is the full thing with a last pretty_print function, and applying
it to `h`, not to `g`.
sage: R.<N, M> = QQbar[]
sage: S.<x> = R[]
sage: a = QQbar(3).sqrt() / 2
sage: i = QQbar(I)
sage: b = (x - ~x) / (2 * i)
sage: c = (a * (x + ~x) + b) / 2
sage: X = (M / 3) * (a + b + c)
sage: f = 24 * (X^2 - N * b * c) * x^2
sage: f = S(f)
sage: t = QQbar(exp(-pi*I/3))
sage: # pretty_print functions
sage: def pretty_qqbar(z):
....: a, b = z.real().radical_expression(),
z.imag().radical_expression()
....: return "{} + {}*i".format(a, b)
....:
sage: def pretty_x_coeff(xc):
....: return " + ".join("({})*{}".format(pretty_qqbar(xc[m]), m)
....: for m in xc.monomials())
....:
sage: def pretty_poly_x_MN(p, name='p'):
....: print("\n{} = ".format(name) +"\n + "
....: .join("({})*x^{}".format(pretty_x_coeff(xc), k)
....: for k, xc in enumerate(h.list())) + "\n")
....:
sage: g = f // (x + 1)
sage: h = g // (x - t)
sage: pretty_poly_x_MN(h, name='h')
h = ((2 + 0*i)*M^2 + (-6 + 0*i)*N)*x^0
+ ((1 + -sqrt(3)*i)*M^2 + (3 + -3*sqrt(3)*i)*N)*x^1
+ ((-1 + -sqrt(3)*i)*M^2 + (3 + 3*sqrt(3)*i)*N)*x^2
sage:
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.