Bill Allombert on Fri, 26 Sep 2014 10:05:10 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Two questions


On Fri, Sep 26, 2014 at 04:16:22PM +1000, Alasdair McAndrew wrote:
> My questions are:
>
>    2. (More generic) - is there any way to solve, over the rationals or
>    over the algebraic numbers, a system of polynomial equations?  I'm applying
>    a Tschirnhaus transformation to a particular set of sixth degree
>    polynomials (which I know to be solvable by an analysis of their Galois
>    groups), but in order to eliminate powers, I need to set several of the
>    coefficients to be zero.
>
>    For example:
>
>    > L1 = 9*t^6 - 35*t^4 + 288*t^3 - 5*t^2 - 1
>    > res = polresultant(L1,x-t^2-p*t-q,t)
>    > r4 = polcoeff(res,4,x)
>    > r5 = polcoeff(res,5,x)
> How can I solve the equations [r4=0,r5=0] for the variables p and q?

PARI does not provide high-level functionality for solving systems of equation
directly, so you have to eliminate variables until you have a univariate equation.

In this instance, you system is triangular:
r4 = -315*p^2+7776*p+(1215*q^2+3150*q+1135)
r5 = -486*q-630

So you can first solve r5=0 to get q=-35/27
and then substitute q in r4=0.

polroots(subst(r4,'q,-35/27))
%10 = [0.11715407224919055597974779708294428191+0.E-38*I,24.568560213465095158305966488631341432+0.E-38*I]~

In the general case, you can use
polresultant(r4,r5,'q) to eliminate q and then solve for p.

? raux=polresultant(r4,r5,'q)
%7 = -74401740*p^2+1836660096*p-214151040
? polroots(raux)
%8 = [0.11715407224919055597974779708294428191+0.E-38*I,24.568560213465095158305966488631341432+0.E-38*I]~

Cheers,
Bill.