I have a function of the form:

function r=d(f,j)

if (j==1)

r=3*f(1)+f(3)*f(2)-3;

elseif(j==2)

r=f(1)+2*f(2)-4;

else

r=f(1)*f(2)*f(3)-1;

end

and I would like to be able to numerically compute the Jacobian for such a function. I have a method of computing the Jacobian but I am not convinced that it is giving the right answer though.

for i=1:3

for j=1:3

T=zeros(3,1);

T(j)=dd;

J(i,j)=(d(f+T,i)-d(f,i))/dd; %This is the jacobian

end

end

Does anyone have anything better?