我正在努力寻找一种从微分运算符的符号声明转换为其实现的方法
我举一个例子。
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)
答案 0 :(得分:3)
另一种解决方案。 nouns
的{{1}}选项引起对符号导数以及任何其他名词表达式(如符号积分,符号求和等)的求值。
ev
交互式控制台可以识别较短形式的(%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
答案 1 :(得分:0)
找到答案后,ev()带有选项diff,可以解决表达式中的所有符号差异。