Re: Factor[1+x^4]

• To: mathgroup at smc.vnet.net
• Subject: [mg26889] Re: Factor[1+x^4]
• Date: Fri, 26 Jan 2001 01:27:32 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

By default Factor[] factors over integers. If you want Factor[]
to factor into Sqrt[2] and I you have to give this to the
Extension option:

In[1]:= f = Factor[1 + z^4, Extension -> {I, Sqrt[2]}]

Out[1]= (1/4)*(Sqrt[2] - (1 + I)*z)*
(Sqrt[2] - (1 - I)*z)*
(Sqrt[2] + (1 - I)*z)*
(Sqrt[2] + (1 + I)*z)

In[2]:= Expand[f]

Out[2]= 1 + z^4

Of course, in general you don't know what Extension to pick beforehand.
So one thing you can do is the following:

In[1]:= poly = 1 + z^4

Out[1]= 1 + z^4

The find the extension you want by looking at the roots of the
polynomial:

In[2]:= extension[poly_, z_] :=
ComplexExpand[
Roots[poly == 0, z] /. {_ == a_ -> a} /. {Or -> List}
]

In[3]:= extension[poly, z]

Out[3]= {(1 + I)/Sqrt[2],
-((1 - I)/Sqrt[2]),
-((1 + I)/Sqrt[2]),
(1 - I)/Sqrt[2]}

In[4]:= Factor[poly, Extension -> extension[poly, z]]

Out[4]= (1/4)*(Sqrt[2] - (1 + I)*z)*
(Sqrt[2] - (1 - I)*z)*
(Sqrt[2] + (1 - I)*z)*
(Sqrt[2] + (1 + I)*z)

I hope this helps a bit. Perhaps someone knows a better way to