最大分级分化
maxima gradef differentiation
我尝试根据函数定义标准正态pdf的导数:
φ(x) := exp (-x^2/2)/sqrt(2 * %pi);
gradef(φ(x),-x*φ(x));
但是如果我输入那么:
diff(φ(x),x);
我得到:
-(x*%e^(-x^2/2))/(sqrt(2)*sqrt(%pi))`
不是我想要的那样-x*φ(x)
。
我做错了什么?
谢不
卡尔
EDiT :
不幸的是,这两个建议都没有工作。
我觉得没什么问题; Maxima 只是根据您在调用 gradef
.
时给出的定义来评估 phi
我能想到一些可以尝试的事情。 (1) 在定义phi之前调用gradef
。然后,当您调用 diff
时,您可能会在输出中得到 phi。不确定这是否有效。
(2) 用名词表达式定义gradef
,即gradef(φ(x),-x*'φ(x))
。注意 φ(x)
之前的单引号 '
;这构成了一个所谓的名词表达式,其中可以计算参数 x
但不会调用函数 φ
。稍后为了计算函数,当你想要的时候,你可以说 ev(someexpression, nouns)
来计算 someexpression
.
中的所有名词表达式
编辑:这是另一个想法。这对我有用。之前的想法没有奏效,因为 φ 被评估得太早了;这个新想法用了更大的篇幅来阻止评估。请注意,gradef 是为 'φ(x)
定义的,因此您必须编写 diff('φ(x), x)
才能应用 gradef。
(%i12) gradef('φ(x), -x*'φ(x));
(%o12) φ(x)
(%i13) diff('φ(x), x);
(%o13) - x φ(x)
gradef 产生一个名词表达式-x*'φ(x)
,所以要动词它你可以说:
(%i14) ev(%, nouns);
2
x
- --
2
x %e
(%o14) - -----------------
sqrt(2) sqrt(%pi)
看起来链式规则已按预期应用:
(%i15) diff('φ(x/a), x);
x
x φ(-)
a
(%o15) - ------
2
a
(%i16) ev(%, nouns);
2
x
- ----
2
2 a
x %e
(%o16) - --------------------
2
sqrt(2) sqrt(%pi) a
我尝试根据函数定义标准正态pdf的导数:
φ(x) := exp (-x^2/2)/sqrt(2 * %pi);
gradef(φ(x),-x*φ(x));
但是如果我输入那么:
diff(φ(x),x);
我得到:
-(x*%e^(-x^2/2))/(sqrt(2)*sqrt(%pi))`
不是我想要的那样-x*φ(x)
。
我做错了什么?
谢不
卡尔
EDiT :
不幸的是,这两个建议都没有工作。
我觉得没什么问题; Maxima 只是根据您在调用 gradef
.
我能想到一些可以尝试的事情。 (1) 在定义phi之前调用gradef
。然后,当您调用 diff
时,您可能会在输出中得到 phi。不确定这是否有效。
(2) 用名词表达式定义gradef
,即gradef(φ(x),-x*'φ(x))
。注意 φ(x)
之前的单引号 '
;这构成了一个所谓的名词表达式,其中可以计算参数 x
但不会调用函数 φ
。稍后为了计算函数,当你想要的时候,你可以说 ev(someexpression, nouns)
来计算 someexpression
.
编辑:这是另一个想法。这对我有用。之前的想法没有奏效,因为 φ 被评估得太早了;这个新想法用了更大的篇幅来阻止评估。请注意,gradef 是为 'φ(x)
定义的,因此您必须编写 diff('φ(x), x)
才能应用 gradef。
(%i12) gradef('φ(x), -x*'φ(x));
(%o12) φ(x)
(%i13) diff('φ(x), x);
(%o13) - x φ(x)
gradef 产生一个名词表达式-x*'φ(x)
,所以要动词它你可以说:
(%i14) ev(%, nouns);
2
x
- --
2
x %e
(%o14) - -----------------
sqrt(2) sqrt(%pi)
看起来链式规则已按预期应用:
(%i15) diff('φ(x/a), x);
x
x φ(-)
a
(%o15) - ------
2
a
(%i16) ev(%, nouns);
2
x
- ----
2
2 a
x %e
(%o16) - --------------------
2
sqrt(2) sqrt(%pi) a