2

枫有一些行为,我不明白。假设我想分解多项式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)的更好做法是什么?

4

1 回答 1

1

问题是 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)));
于 2015-09-18T18:26:56.310 回答