Maxima:如何将多项式的所有系数变为正数

Maxima: How to turn all coefficients of a polynomial positive

对于一个数学项目,我目前正在使用 CAS Maxima (wxMaxima)。由于项目即将完成,我想留在 Maxima,但还有一个问题:

问题是我必须通过使所有系数为正来转换某个多项式 P。 IE。将所有系数的绝对值相加(但不取整个多项式的绝对值),例如

P(...)=-15x^3+3y^2-4x^2

转为

P'(...)=15x^3+3y^2+4x^2

我找不到可以帮助我解决此问题的已实现函数。并且无法通过使用地图功能实现它来找到解决方案。你知道解决这个问题的方法吗?

感谢您的帮助! 乔纳斯

您可以计算绝对值之和:

P:-15*x^3+3*y^2-4*x^2;
P2:sum(abs(args(P)[i]),i,1,length(args(P)));
>> 3*y^2+15*x^2*abs(x)+4*x^2

(不幸的是,这里是 abs(x) 但你可以使用 subst(x,abs(x),P2)

与地图相同:

P2:map(abs,P);

或将表达式转换为字符串并将“-”替换为“+”:

s:string(P);
s2:ssubst("+","-",s);
P2:eval_string(s2);
>> 3*y^2+15*x^3+4*x^2