如何在Mathematica中正确定义含导数与多点求值的复合函数
解决Mathematica中带多点函数求值的算子定义问题
要定义你需要的算子,核心是将L定义为作用在函数上的算子,而非直接作用在y[x]这类具体表达式上。以下是两种可行的实现方式:
方式一:针对函数的延迟定义(推荐)
这种方式最贴合算子的数学定义,直接对函数y进行操作:
L[y_] := D[y[x], x] - (a0 y[x - h] + a1 y[x] + a2 y[x + h])/h
- 调用时,只需传入函数本身即可。比如先定义函数
y[x_] := x^3,再执行L[y],就能得到该函数对应的算子结果:
输出为:y[x_] := x^3; L[y]3 x^2 - (a0 (x - h)^3 + a1 x^3 + a2 (x + h)^3)/h
方式二:针对表达式的替换定义
如果需要直接作用在y[x]这类表达式上,可以通过/.替换x的取值来实现:
L[expr_] := D[expr, x] - (a0 (expr /. x -> x - h) + a1 expr + a2 (expr /. x -> x + h))/h
- 调用时传入具体表达式,比如
L[y[x]],同样能得到目标结果。
内容的提问来源于stack exchange,提问作者Fabio Aratore
相关产品推荐
相关产品推荐

