Re: What is the difference between z[x_]:= D[y[x],x] and z[x_]:=y'[x]?
- To: mathgroup at smc.vnet.net
- Subject: [mg27467] Re: What is the difference between z[x_]:= D[y[x],x] and z[x_]:=y'[x]?
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Tue, 27 Feb 2001 00:37:20 -0500 (EST)
- References: <97cdfc$d6m@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
ClearAll["`*"] Q1}) > I want to know the difference between > z[x_]:=D[y[x],x] and z[x_]:=y'[x] This is a a problem that often hits students hard when they start multivariable calculus.. The underlying difference is between differentiating a formula with respect to a variable: D[x^2 y^3, {x,2},{y,1}] 6*y^2 and differentiating a function with respect to a position,or slot. Derivative[2,1][#1^2 #2^3&] 6*#2^2 & %[x,y] 6*y^2 A variant of the latter is Derivative[2,1][Function[{x,y}, x^2 y^3]] Function[{x, y}, 6*y^2] %[x,y] 6*y^2 Let's return to the original question. Define a function, different notation, f[x_]:= Sin[t x ] The following give the same result D[f[x],x] t*Cos[t*x] f'[x] t*Cos[t*x] But the evaluation steps are very different: D[f[x],x] D[Sin[t x],x] t Cos[t x] f'[x] Derivative[f][x] Derivative[1][Sin[t #1]&],{1}[x] (*derivative of a pure functon for f with respect to slot 1*) Evaluate[D[Sin[t #1],#1]]&[x] a Cos[a#]&[x] The derivative of a function can be calculated independently: f' t*Cos[t*#1] & %[x] t*Cos[t*x] If we give x value then differences show up: x=a; D[f[x],x] t*Cos[a*t] The value of x has already been used above. But with f' t*Cos[t*#1] & the value of x has not been used. Of course, if we find the value of this function at x, before redefining or clearing x then this difference seems innocuous %[x] t*Cos[a*t] But a more serious difference shows up with a numerical value for x x=7; D[f[x],x] General::ivar: 7 is not a valid variable. D[Sin[7*t], 7] Whereas f'[x] t*Cos[7*t] %[x] (t*Cos[7*t])[7] Q2) Two routines Clear["`*"] (r1[t_]=93/(1+0.12*Cos[3*t]); d1[t_]:=ArcTan[r1[t]/D[r1[t],t]]; Block[{t},u[t_]:=If[(Pi/3\[GreaterEqual]t>0),d1[t]]];) u[0.5] General::ivar: 0.5 is not a valid variable. ArcTan[92.21721745103183/D[92.21721745103183, 0.5]] Above, Mathematica stores ?d1 Global`d1 d1[t_] := ArcTan[r1[t]/D[r1[t], t]] So that in finding u[0.5 ] it tries to differentiate with respect to the real number 0.5 But after (r1[t_]=93/(1+0.12*Cos[3*t]); d1[t_]=ArcTan[r1[t]/D[r1[t],t]]; Block[{t},u[t_]:=If[(Pi/3\[GreaterEqual]t>0),d1[t]]];) it stores ?d1 Global`d1 d1[t_] = ArcTan[2.777777777777778*(1 + 0.12*Cos[3*t])* Csc[3*t]] So that differentiation with respect to a 0.5 is avoided in calculating u[0.5] 1.22872 -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "liwen liwen" <gzgear at yahoo.com> wrote in message news:97cdfc$d6m at smc.vnet.net... > Dear friends, > How are you! > I want to know the difference between z[x_]:= > D[y[x],x] and z[x_]:=y'[x]. > > Also,I want to why I can not find the answer for the > u[0.5] by the following routine: > > (r1[t_] = 93/(1 + 0.12*Cos[3*t]); > d1[t_] := ArcTan[r1[t]/D[r1[t], t]]; > Block[{t}, u[t_] := If[(Pi/3 >= t > 0), d1[t]]]; > ) > > u[0.5] > General::"ivar": "\!\(0.5`\) is not a valid variable." > > But it is available by the following routine: > > (r1[t_] = 93/(1 + 0.12*Cos[3*t]); > d1[t_] = ArcTan[r1[t]/D[r1[t], t]]; > Block[{t}, u[t_] := If[(Pi/3 >= t > 0), d1[t]]]; > ) > > u[0.5] > 1.22872 > (* ------------------------ *) > > Please help. > > Bets Regards, > > > Liwen 2/26/2001 > > E-mail: gzgear at yahoo.com > > __________________________________________________ > Do You Yahoo!? > Get email at your own domain with Yahoo! Mail. > http://personal.mail.yahoo.com/ >