在 Maxima 中从符号分化到适当分化

From symbolic to proper differentiation in Maxima

我正在努力寻找一种方法来从微分运算符的符号声明切换到它的实现

我举个例子

F: (10-'diff(x(t),t)^2 -2*x(t)*'diff(x(t),t) -5*x(t)^2)*%e^(-t);

E: ratsimp(diff(F, x(t)) - diff(diff(F, 'diff(x(t),t)), t));

sol: ode2(E, x(t), t);
sol: ev(sol, [%k1 = C1, %k2=C2]);

trans_cond: diff(F, 'diff(x(t), t));
trans_cond: ev(trans_cond, sol);
trans_cond: at(trans_cond, [t=1]);

相应的输出保持符号表示,而我想评估最后一次替换后获得的 diff()。

给出结果:

% 4*C1-C2^(-2)

找到答案了,ev()带有选项diff,解决了表达式中的所有符号微分

另一种解决方案。 evnouns 选项导致符号导数的计算,以及任何其他名词表达式,如符号积分、符号求和等。

(%i2) 'diff(4*x^2, x);
                            d      2
(%o2)                       -- (4 x )
                            dx
(%i3) ev (%o2, nouns);
(%o3)                          8 x

交互式控制台可以识别 ev(..., nouns) 的缩写形式。您可以输入 ..., nouns

(%i5) %o2, nouns;
(%o5)                          8 x

这里是ev(..., nouns)应用于符号积分:

(%i6) 'integrate (x^2, x);
                             /
                             [  2
(%o6)                        I x  dx
                             ]
                             /
(%i7) %, nouns;
                                3
                               x
(%o7)                          --
                               3

在这里,符号求和:

(%i8) 'sum (f(k), k, 1, 3);
                            3
                           ====
                           \
(%o8)                       >    f(k)
                           /
                           ====
                           k = 1
(%i9) %, nouns;
(%o9)                  f(3) + f(2) + f(1)