2017-01-17 4 views
0

수학 프로젝트의 경우 현재 CAS Maxima (wxMaxima)를 사용하고 있습니다. 프로젝트가 거의 완료됨에 따라 Maxima에 남기를 원하지만 한 가지 문제가 남았습니다.Maxima : 다항식의 모든 계수를 변환하는 방법

문제는 모든 다항식 P를 양수로 변환해야한다는 것입니다. 나는. 예를

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

를 들어, 모든 계수의 절대까지 추가 (그러나 전체 다항식의 절대 값을 복용 여부를)

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

으로 변합니다 나는 나를 도움이 될 구현 된 기능을 찾을 수 없습니다 이. 지도 기능으로 구현하여 해결책을 찾지 못했습니다. 이 문제를 해결할 방법을 알고 있습니까?

도움 주셔서 감사합니다. 조나스

당신은 절대 값의 합 계산할 수

답변

1

:

P2:map(abs,P); 
:

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 

지도와 같은 (불행하게도, 여기 복근 (x)를하지만 subst(x,abs(x),P2)을 사용할 수입니다)

표현을 문자열로 변환하고 "+"를 "+"로 바꿉니다.

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

감사합니다. Maxima가 불필요한 절대 변수를 취 했으므로 (첫 번째 해결책은 도움이되지 않았습니다.) 그러나 P를 String으로 변환하면 결국 도움이되었습니다. – jonas