2015-02-26 5 views
0

Я пытаюсь решить ODE 1-го порядка в Maxima (а именно wxMaxima). От ode2, я получаю выражение, которое содержит неопределенные интегралы, которые я хочу оценить в пределах, которые я определяю, а именно (0,t).Преобразование неопределенных интегралов в определенные интегралы и оценка внутри выражения в Maxima

pta: 'diff(q,t)+(1/taub)*q = 1/(c0+c1)*'diff(Q,t)+1/(c0*taub)*Q; 
Qproblem: (Q1/t1)*t; 
ptap: ev(pta,Q=Qproblem); 
assume(t1>0, Q1>0, t>0); 
sol: ode2(ptap,q,t); 
grind(sol); 

Если я применяю grind на выражение решения, я получаю следующее

q = %e^-(t/taub)*((c0*t1*taub*'integrate(%e^(t/taub)*'diff(t*Q1/t1,t,1),t) 
       +c1*(t*taub-taub^2)*%e^(t/taub)*Q1 
       +c0*(t*taub-taub^2)*%e^(t/taub)*Q1) 
       /((c0*c1+c0^2)*t1*taub) 
       +%c)$ 

Это выражение не может быть правильно, если эти интегралы не превращаются в определенные из них. Поэтому я хочу их каким-то образом преобразовать. Я упомянул о требуемых лимитах выше.

Какой подход следует использовать? Есть ли флаг для ode2 Мне не известно, что это помогает? Или есть функция, которая может извлекать и заменять детали из выражения, так что я могу добавить еще 2 параметра в 'integrate s, сохраняя при этом первый параметр?

ответ

0

Вы можете оценить ev(sol, nouns), чтобы сообщить Maxima об оценке существительных 'integrate и 'diff. После этого попробуйте ratsimp, чтобы упростить результат.