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