2017-05-23 7 views
0

a는 상수이고 x는 시간에 대한 변수이므로 기본적으로 x (t)라고 가정합시다.Maxima는 diff로 표현식을 단순화합니다.

Maxima에서 'diff(a*x,t)a*'diff(x,t)으로 바꾸는 가장 좋은 방법은 use subst 명령없이 자동으로 무엇입니까?

내가 subst를 사용하지 않는 이유는 많은 변수와 고차의 파생물을 가지고 있기 때문입니다. subst를 사용하여 모든 어커런스를 대체하는 것은 효율적이지 않습니다.

감사합니다.

UPDATE는

나는 depends(x,t) 명령을 시도하지만, 그것은 단지 간단한 예와 함께 작동합니다. 여기 내 상황의 최소한의 예가있다.

depends([x,y],t); 
eq1:diff(x,t)-b=c; 
eq2:subst([x=a*y],eq1); 
sol_dy=solve(eq2,diff(y,t)) 

물론 여기서 a, b, c는 상수이고 x, y는 t의 변수입니다. Maxima는 diff (y, t)를 직접 해결할 수 없습니다. 어떻게 처리할까요?

답변

0

'diff(...) (즉 유도체 명사 식)이 아닌 선형 (+ 위에 분배하지 않고 상수를 반영하지 않는다)하지만 diff(...) (동사 식) 선형임을 알. 그것은 적어도 잘못된 점입니다.

나는 declare(nounify(diff), linear)을 제안하려고했으나 그게 유도체를 당신의 예제에서 0으로 만들었습니다 ... 이것은 아마 버그 일 것이고, 그것에 대해 더 생각해야 할 것입니다.

동사로 파생 상품을 재평가 해보기 위해 ev(eq2, nouns);을 시도해보십시오. 나는 상수가 원인이되어야한다고 생각합니다.