我想计算包含在numpy.array中的函数系统的数字雅可比行列式,以这种方式对我的变量进行索引:
eq1 = lambda t,u : u[1]
eq2 = lambda t,u : u[2]
eq3 = lambda t,u : u[3]
eq4 = lambda t,u : -8*u[0]+ np.sin(t)*u[1]-3*u[3]+t**2
然后:
func1 = np.array([eq1,eq2,eq3,eq4])
而我的导数是通过:
def Df(self,ti,ui):
eps = 10e-12
return ((self.f(ti,ui)+eps) - self.f(ti,ui))/eps
u[i]
是因变量,而t是自变量,我会找到一种方法,以便使用数值微分来计算雅可比行列式(我想为每种类型的系统创建一个一般情况)>
我在Matlab上找到了这个...但是我不知道:(
function [J]=jacobian(func,x)
% computes the Jacobian of a function
n=length(x);
fx=feval(func,x);
eps=1.e-8; % could be made better
xperturb=x;
for i=1:n
xperturb(i)=xperturb(i)+eps;
J(:,i)=(feval(func,xperturb)-fx)/eps;
xperturb(i)=x(i);
end;