First we define a differential equations and make sure that the thing desolve will have to warn about is true:
eq1:U_Supply=U_In(t)+L_Cable*diff(I_Cable(t),t);
eq2:I_C(t)=C_In*diff(U_In(t),t);
eq3:U_In(t)=R_Load*(I_Cable(t)-I_C(t));
assume(L_Cable*(4*C_In*R_Load^2-L_Cable)>0);
is(L_Cable*(4*C_In*R_Load^2-L_Cable)>0);
If we now run a desolve() the desolve() asks the thing we told assume(), but the assume() database cannot find it. For some reason I seem to be able to get two questions, one that matches the assume() and one that doesn't.
(%i6) desolve([eq1,eq2,eq3],[U_In(t),I_Cable(t),I_C(t)]);
"Is "L_Cable*4*C_In*R_Load^2-L_Cable" positive, negative or zero?"
or:
(%i6) desolve([eq1,eq2,eq3],[U_In(t),I_Cable(t),I_C(t)]);
Is L_Cable*(4*C_In*R_Load^2-L_Cable) positive, negative or zero?
No idea under which condition I get which of these questions.
If we run an additional expand()
assume(expand(L_Cable*(4*C_In*R_Load^2-L_Cable)>0)));
the assume database will be able to provide desolve with the answer of its question.
One point. You assume that
L_Cable*(4*C_In*R_Load^2-L_Cable)
is positive. But maxima is asking for the sign ofL_Cable*4*C_In*R_Load^2-L_Cable
. These aren't the same.I drag-and-dropped this from a maxima session.
If I do that again I get:
which matches the assume() I did before.