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
对于一个数学项目,我目前正在使用 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