Differentiation Of A Function.

Hi
I have a symbolic function,
S=sqrt(8).*(3.*X.^3+3.*Y.^2.*X-2.*X);
I need to differentiate it w.r.t X and Y. I did this by-
Tx=diff(S,X);
Ty=diff(S,Y);
I simply got the expression of the differentiation but I need to find the value of the differentiation w.r.t X and Y where X and Y varies from -1 to +1 in steps of 128 (i.e.X=-1:2/127:+1; Y=-1:2/127:+1;[X ,Y]=meshgrid(-1:2/127:+1,-1:2/127:+1);). So, can anyone please help me in finding out the value of the differentiation at all those mentioned points?
Thanking You!

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 12 Jan 2012

1 vote

syms X Y real
S=sqrt(8).*(3.*X.^3+3.*Y.^2.*X-2.*X);
F = jacobian(S,[X,Y]);
Fun = arrayfun(@(i1)matlabFunction(F(i1)),1:2,'un',0);
solution
[x,y] = meshgrid(linspace(-1,1,128));
p = cellfun(@(z)z(x,y),Fun,'un',0);
[dSdx,dSdy] =p{:};

Plus de réponses (1)

Andrew Newell
Andrew Newell le 10 Jan 2012

1 vote

You could do the following (I tack num onto the name to indicate it is numerical, not symbolic):
Xnum = linspace(-1,1,128); Ynum = Xnum;
[Xnum,Ynum] = meshgrid(Xnum,Ynum);
Txnum = double(subs(Tx,[X,Y],{Xnum,Ynum}));
Tynum = double(subs(Ty,[X,Y],{Xnum,Ynum}));

Catégories

En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by