在 Maple 中,如果我们想在下面的表达式中将函数 f(x) 替换为 f(x)+a*f1(x),我们可以这样做
expr:=f(x)+diff(f(x),x);
subs(f(x)=f(x)+a*f1(x),expr);
但是,如果我们想在这个表达式中进行相同的替换
expr:=f(x)+D(V)(f(x))+D(f)(x);
D(f)(x) 项不会改变。是否有一种方便的方法可以在涉及 D(f)(x) 或更高级导数的表达式中进行替换?
在 Maple 中,如果我们想在下面的表达式中将函数 f(x) 替换为 f(x)+a*f1(x),我们可以这样做
expr:=f(x)+diff(f(x),x);
subs(f(x)=f(x)+a*f1(x),expr);
但是,如果我们想在这个表达式中进行相同的替换
expr:=f(x)+D(V)(f(x))+D(f)(x);
D(f)(x) 项不会改变。是否有一种方便的方法可以在涉及 D(f)(x) 或更高级导数的表达式中进行替换?
以下两种方式中的第一种可能更符合您的要求。第二种方法包含一个修复,强制它a
是恒定的x
(即a(x)
不依赖于x
)。
expr:=f(x)+D(V)(f(x))+D(f)(x);
f(x) + D(V)(f(x)) + D(f)(x)
eval( expr, f=(t->f(t)+a*f1(t)) );
f(x) + a f1(x) + D(V)(f(x) + a f1(x)) + D(f)(x) + a D(f1)(x)
eval( eval(expr,f=f+a*f1), [D(a)(x)=0, a(x)=a] );
f(x) + a f1(x) + D(V)(f(x) + a f1(x)) + D(f)(x) + a D(f1)(x)