Re: Error when working with a derivative

*To*: mathgroup at smc.vnet.net*Subject*: [mg104959] Re: Error when working with a derivative*From*: Helen Read <hpr at together.net>*Date*: Sun, 15 Nov 2009 05:54:55 -0500 (EST)*References*: <hdlk4k$hcb$1@smc.vnet.net>*Reply-to*: HPR <read at math.uvm.edu>

Vicent wrote: > Hello. > > This is my first message to the list. > > I work with Mathematica 7.0.0 on Windows. > > I work with a multiple-variable function, say "MuVaF", and I want to > define a function which is the partial derivative with respect to one > of the variables. I tried with this: > > MuVaF[ex_, ey_] := ex^2 + ey^2 + ex*ey + ex + ey > > Then, if I try to derivate it with respect to "ex": > > D[MuVaF[ex, ey], ex] > > I get this: > > 1 + 2 ex + ey > > Which sound OK to me. But if I try this: > > DerivMuVaF[ex_, ey_] := D[MuVaF[ex, ey], ex] > > And then this (trying to evaluate the function for a given point): > > DerivMuVaF[1, 2] > > I get an error message: > > General::ivar: 1 is not a valid variable. >> > > I think that's because Mathematica is understanding I am trying to > perform the derivative on "1"; it is expecting to get a variable and I > am giving a number instead. So, what's the right way to tell > Mathematica I want to work with the derivative function of a > previously defined function?? Use set instead of set-delayed when you define your derivative function. That is, use an equal sign without the colon. derivMuVaF[ex_, ey_] = D[MuVaF[ex, ey], ex] By the way, it's a good habit to begin your function names with a lower case letter, in order to avoid inadvertent conflicts with built-in names and symbols. -- Helen Read University of Vermont