在Matlab中不定义符号变量的匿名函数的导数
Derivative of anonymous functions without defining symbolic variables in Matlab
考虑以下代码:
f = @(x) x.^2;
是否可以在不定义符号变量的情况下将函数句柄 f
的导数作为另一个函数句柄求导?
不,要获得导函数,您需要使用符号工具箱。
但是你可以通过创建一个函数来得到一个近似值(有限差分近似值):
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
考虑以下代码:
f = @(x) x.^2;
是否可以在不定义符号变量的情况下将函数句柄 f
的导数作为另一个函数句柄求导?
不,要获得导函数,您需要使用符号工具箱。
但是你可以通过创建一个函数来得到一个近似值(有限差分近似值):
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