Finite differences of 2th order
%z: position, d: 1st derivative,d2:2th derivative, H: length function[z,d,d2]=finites2thsparse(nz,H) dz = H / (nz - 1); z = 0:dz:H; dx = 0.5 / dz; e=dx*ones(nz,1); d= spdiags([-e e*0 e], -1:1, nz, nz); %BC d(1,1)=-3*dx; %second order d(1,2)=+4*dx; d(1,3)=-dx; d(nz,nz-2)=dx; d(nz,nz-1)=-4*dx; d(nz,nz)=3*dx; dx=1/(dz*dz); e=dx*ones(nz,1); d2= spdiags([e -2*e e], -1:1, nz, nz); d2(nz,nz)=2*dx; d2(nz,nz-1)=-5*dx; d2(nz,nz-2)=+4*dx; d2(nz,nz-3)=-dx; d2(1,1)=2*dx; d2(1,2)=-5*dx; d2(1,3)=+4*dx; d2(1,4)=-dx;