如何用枫树分解这个三阶多项式
How to factorize this 3rd order polynomial with maple
maple 有一些行为,我不明白。假设我想分解多项式 1-z-z^3
,所以我使用
计算它的根
z0 := solve(1-z-z^3=0,z);
给出(只是为了完整性...)
z0 := 1/6*(108+12*93^(1/2))^(1/3)-2/(108+12*93^(1/2))^(1/3), -1/12*(108+12*93^(1/2))^(1/3)+1/(108+12*93^(1/2))^(1/3)+1/2*I*3^(1/2)*(1/6*(108+12*93^(1/2))^(1/3)+2/(108+12*93^(1/2))^(1/3)), -1/12*(108+12*93^(1/2))^(1/3)+1/(108+12*93^(1/2))^(1/3)-1/2*I*3^(1/2)*(1/6*(108+12*93^(1/2))^(1/3)+2/(108+12*93^(1/2))^(1/3))
现在,如果我尝试分解第一个根,
factor(1-z-z^3,z0[1]);
我得到
Error, (in factor) 2nd argument, 1/6*(108+12*93^(1/2))^(1/3)-2/(108+12*93^(1/2))^(1/3),
is not a valid algebraic extension
这是什么意思?这是一个错误,还是 z0[1]
的表达式太复杂了?如果第二个为真,那么分解阶多项式(例如 3 到 4)的更好做法是什么?
问题是 Maple 想要,特别是 RootOf
或有理幂表达式,或它们的集合,作为它的第二个参数。例如,
factor(x^2-2, 1+sqrt(2))
将不起作用,而
factor(x^2-2, sqrt(2))
确实如此。同样,在您的示例中,您将希望从您解决的表达式中提取理性力量。您可以按如下方式进行:
factor(1-z-z^3, indets(z0[1], anything^And(rational, Non(integer))))
或者可能不那么做作:
with_rootof := convert(z0[1], RootOf);
factor(1-z-z^3, indets(with_rootof, specfunc(RootOf)));
maple 有一些行为,我不明白。假设我想分解多项式 1-z-z^3
,所以我使用
z0 := solve(1-z-z^3=0,z);
给出(只是为了完整性...)
z0 := 1/6*(108+12*93^(1/2))^(1/3)-2/(108+12*93^(1/2))^(1/3), -1/12*(108+12*93^(1/2))^(1/3)+1/(108+12*93^(1/2))^(1/3)+1/2*I*3^(1/2)*(1/6*(108+12*93^(1/2))^(1/3)+2/(108+12*93^(1/2))^(1/3)), -1/12*(108+12*93^(1/2))^(1/3)+1/(108+12*93^(1/2))^(1/3)-1/2*I*3^(1/2)*(1/6*(108+12*93^(1/2))^(1/3)+2/(108+12*93^(1/2))^(1/3))
现在,如果我尝试分解第一个根,
factor(1-z-z^3,z0[1]);
我得到
Error, (in factor) 2nd argument, 1/6*(108+12*93^(1/2))^(1/3)-2/(108+12*93^(1/2))^(1/3),
is not a valid algebraic extension
这是什么意思?这是一个错误,还是 z0[1]
的表达式太复杂了?如果第二个为真,那么分解阶多项式(例如 3 到 4)的更好做法是什么?
问题是 Maple 想要,特别是 RootOf
或有理幂表达式,或它们的集合,作为它的第二个参数。例如,
factor(x^2-2, 1+sqrt(2))
将不起作用,而
factor(x^2-2, sqrt(2))
确实如此。同样,在您的示例中,您将希望从您解决的表达式中提取理性力量。您可以按如下方式进行:
factor(1-z-z^3, indets(z0[1], anything^And(rational, Non(integer))))
或者可能不那么做作:
with_rootof := convert(z0[1], RootOf);
factor(1-z-z^3, indets(with_rootof, specfunc(RootOf)));