PDA

View Full Version : Symbolic Differentiation in Matlab


calt3ch
Aug3-10, 06:35 AM
Hi, quick question.

I have an inline function I would like to differentiate symbolically in Matlab, however when I do it I get the following:

say

x = inline('cos(t.^2)','t') ;
xp = inline(char(diff(x(t),sym('t'))),'t') ;

xp(t) becomes

-sin(t^2)*t

however I really want:

-sin(t.^2).*t (vectorial notation)

I've looked at the diff function help, and it's a bit bare (as I would expect any symbolic manipulation functions to be in Matlab lol) and doesn't seem to say how I get this derivative to handle vectors the way I want it to...

Thank you.

calt3ch
Aug4-10, 06:15 AM
Haha I just found the function 'vectorize' (which I had never used before).

Pretty much you take any inline function and it will vectorize it for you.

Thus:

x = inline('cos(t.^2)','t') ;
xp = inline(char(diff(x(t),sym('t'))),'t') ;

vectorize(xp)

gives

-sin(t.^2).*t

Thanks and sorry to bother you guys :)