在MATLAB中数值计算导数?

时间:2017-10-17 02:17:09

标签: matlab

所以我有一个MATLAB赋值,我们需要使用

来计算函数的导数
  

d f(x)/ dx =(f(x0 + h) - f(x0-h))/ 2h

所以我把它变成了一个新函数,想要传递我想要的衍生函数。

我对MATLAB很新,所以非常感谢帮助。这是我得到的,试图计算x = 0.6的衍生物:

%% Problem 2
syms x;
funct1 = @(x) (x^3)*exp(2*x)
x0     = 0.6;
der1   = FunDer(@funct1,x0);

%% The saved function in a separate file
function [ der ] = FunDer(@funct1,x0)
    % function to calculate derivative
    h   = 1e-5;
    x1  = x0+h;
    x2  = x0-h;
    der = (subs(@funct1,x,x1) - subs(@funct1,x,x2)) / (2*h);
end

1 个答案:

答案 0 :(得分:1)

由于您使用了匿名函数,因此无需使用 sym 。检查以下修改后的代码:

%% Problem 2
% syms x;
funct1 = @(x) (x^3)*exp(2*x)
x0=0.6;
der1=FunDer(funct1,x0)

%%The saved function in a separate file
function [ der ] = FunDer(funct1,x0)
%function to calculate derivative
h=0.00001;
x1=x0+h;
x2=x0-h;
der = (funct1(x1)-funct1(x2))/(2*h);
end