【发布时间】:2019-07-02 07:35:01
【问题描述】:
考虑以下代码:
f = @(x) x.^2;
是否可以得到函数句柄f的导数作为另一个函数句柄,而不定义符号变量?
【问题讨论】:
标签: matlab anonymous-function derivative function-handle
考虑以下代码:
f = @(x) x.^2;
是否可以得到函数句柄f的导数作为另一个函数句柄,而不定义符号变量?
【问题讨论】:
标签: matlab anonymous-function derivative function-handle
不,要获得导函数,您需要使用符号工具箱。
但是你可以通过创建如下函数得到一个近似值(有限差分近似值):
f = @(x) x.^2;
d = 1e-6;
df = @(x) (f(x+d)-f(x))/d;
d 在这里确定近似的精度。如果你把它弄得太小,你最终会进入浮点舍入误差域,所以要小心!
测试:
x = -2:0.01:2;
max(abs(df(x) - 2*x)) % returns 1.0006e-06
【讨论】:
@(x) (f(x+d)-f(x-d))/(2*d) - 允许您提高相同d 的准确性。这是正确的方法