对于数学项目,我目前正在使用CAS Maxima(wxMaxima)。由于项目即将完成,我希望继续使用Maxima,但还有一个问题:
问题是我必须通过使其所有系数为正而转换某个多项式P.即将所有系数的绝对值相加(但不取整个多项式的绝对值),例如
P(...)=-15x^3+3y^2-4x^2
转向
P'(...)=15x^3+3y^2+4x^2
我找不到可以帮助我的实现功能。并且通过使用map函数实现它无法找到解决方案。你知道解决这个问题的方法吗?
感谢您的帮助! 纳斯
答案 0 :(得分:1)
您可以计算绝对值之和:
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