Re: Error when working with a derivative
- To: mathgroup at smc.vnet.net
- Subject: [mg104954] Re: [mg104947] Error when working with a derivative
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 15 Nov 2009 05:53:55 -0500 (EST)
- Reply-to: hanlonr at cox.net
MuVaF[ex_, ey_] := ex^2 + ey^2 + ex*ey + ex + ey Use Set ( = ) rather than SetDelayed ( := ) in the definition of DerivMuVaF Clear[DerivMuVaF] DerivMuVaF[ex_, ey_] = D[MuVaF[ex, ey], ex]; DerivMuVaF[1, 2] 5 Alternatively, use a temporary variable in a construct such as Clear[DerivMuVaF] DerivMuVaF[ex_, ey_] := Module[{tex}, D[MuVaF[tex, ey], tex] /. tex -> ex] Note : Module is used to make the variable tex local to avoid any possibility of a naming conflict DerivMuVaF[1, 2] 5 Bob Hanlon ---- Vicent <vginer at gmail.com> 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?? I guess the answer should be easy, but I haven't been able to find it out by my own. :-( Thank you in advance for your answers! -- Vicent Giner-Bosch