所以我有一个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
答案 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