python计算函数numpy.array的雅各布

时间:2018-07-31 15:34:07

标签: python differential-equations differentiation

我想计算包含在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;

0 个答案:

没有答案