用数字代替参与微分的变量
Substitute number for a variable that is involved in differentiation
我有一些表达式涉及 y(x)
关于 x
的导数。下面是一个例子。我需要在这些表达式中替换 x = 0
,以去掉零项。
P: x*%e^x*y+%e^x*y-
%e^x*log(x+1)*('diff(y(x),x,2))-
%e^x*log(x+1)*('diff(y(x),x,1))-
(%e^x*('diff(y(x),x,1)))/(x+1);
但是当我尝试
P, x = 0;
或
subst(x = 0, P);
我收到错误
diff: variable must not be a number; found: 0
所以它不想把x = 0
放在diff(y(x), x)
中。有什么办法可以用 x = 0
代替 x
外微分 的出现吗?我的表达式非常复杂,所以我真的需要去掉这些为 0 的项。
at
表示表达式的值,但要小心避免将字面量值替换为对其无效的表达式,例如 diff
。来自问题陈述:
(%i2) P: x*%e^x*y+%e^x*y-
%e^x*log(x+1)*('diff(y(x),x,2))-
%e^x*log(x+1)*('diff(y(x),x,1))-
(%e^x*('diff(y(x),x,1)))/(x+1);
2
x x x d
(%o2) x %e y + %e y - %e log(x + 1) (--- (y(x)))
2
dx
x d
%e (-- (y(x)))
x d dx
- %e log(x + 1) (-- (y(x))) - ---------------
dx x + 1
(%i3) at(P, x = 0);
!
d !
(%o3) y - -- (y(x))!
dx !
!x = 0
澄清一下,除了 diff
、integrate
和其他包含虚拟变量的表达式外,at
实际上只是替换字面值。
(%i4) at(sin(x) + cos(x), x = a);
(%o4) sin(a) + cos(a)
我发现原始问题陈述有问题——它同时包含 y
和 y(x)
——这使得以后很难用某些实际函数替换 y
。如果这很重要,您可能希望始终使用 y(x)
,或者说 depends(y, x)
然后始终使用 y
。
我有一些表达式涉及 y(x)
关于 x
的导数。下面是一个例子。我需要在这些表达式中替换 x = 0
,以去掉零项。
P: x*%e^x*y+%e^x*y-
%e^x*log(x+1)*('diff(y(x),x,2))-
%e^x*log(x+1)*('diff(y(x),x,1))-
(%e^x*('diff(y(x),x,1)))/(x+1);
但是当我尝试
P, x = 0;
或
subst(x = 0, P);
我收到错误
diff: variable must not be a number; found: 0
所以它不想把x = 0
放在diff(y(x), x)
中。有什么办法可以用 x = 0
代替 x
外微分 的出现吗?我的表达式非常复杂,所以我真的需要去掉这些为 0 的项。
at
表示表达式的值,但要小心避免将字面量值替换为对其无效的表达式,例如 diff
。来自问题陈述:
(%i2) P: x*%e^x*y+%e^x*y-
%e^x*log(x+1)*('diff(y(x),x,2))-
%e^x*log(x+1)*('diff(y(x),x,1))-
(%e^x*('diff(y(x),x,1)))/(x+1);
2
x x x d
(%o2) x %e y + %e y - %e log(x + 1) (--- (y(x)))
2
dx
x d
%e (-- (y(x)))
x d dx
- %e log(x + 1) (-- (y(x))) - ---------------
dx x + 1
(%i3) at(P, x = 0);
!
d !
(%o3) y - -- (y(x))!
dx !
!x = 0
澄清一下,除了 diff
、integrate
和其他包含虚拟变量的表达式外,at
实际上只是替换字面值。
(%i4) at(sin(x) + cos(x), x = a);
(%o4) sin(a) + cos(a)
我发现原始问题陈述有问题——它同时包含 y
和 y(x)
——这使得以后很难用某些实际函数替换 y
。如果这很重要,您可能希望始终使用 y(x)
,或者说 depends(y, x)
然后始终使用 y
。