function f=my_numerical_derivative(fun,parameter,varargin)
n=length(parameter);
for i=1:n
a=zeros(n,1);
a(i)=max(parameter(i)*1e-6,1e-6);
y1(:,i)=feval(fun,parameter+a,varargin{:});
y2(:,i)=feval(fun,[arameter-a,varargin{:});
f(:,i)=(y1(:,i)-y2(:,i))/2/a(i)
end
然后就是用于
d=my_numerical_deviative(fun,para,1,varargin{:});
standard_deviative=sqrt(diag(pinv(d'*d)))
这是摘录与曹广志的《金融计算与编程—基于matlab的应用》一文中P160的最大似然估计那段,前面那一段是用于数值方法来计算导数,然后用于标准偏差的计算,但是不明白是什么原理,请教一下大神!能给讲解一下吗?